{
  "openapi": "3.0.1",
  "info": {
    "title": "Osie outbound webhooks",
    "description": "Events this platform sends to registered endpoints.\n\nEvery delivery is a POST with a JSON body of the shape below. Deliveries are at-least-once and unordered: deduplicate on the `webhook-id` header, which is stable across retries of the same delivery. Answer 2xx within the response timeout to acknowledge; anything else is retried with backoff, and `410 Gone` retires the endpoint.\n\nWhen payload signing is enabled the request carries a `webhook-signature` header following the Standard Webhooks specification (https://www.standardwebhooks.com): HMAC-SHA256 over `{webhook-id}.{webhook-timestamp}.{raw body}`, base64, prefixed `v1,`. During a secret rotation the header holds several space-delimited signatures; accept the delivery if any one verifies.\nNOTE ON THIS DOCUMENT'S SHAPE. These are events this platform SENDS to your endpoint — they are not operations you can call here. OpenAPI 3.0 has no place for outbound calls, so each event appears as a path whose POST body is the payload you will receive. The path is the event type, not a URL. Point your own handler at whatever URL you registered.",
    "version": "2026-08-17"
  },
  "servers": [
    {
      "url": "https://webhooks.mycompany.com",
      "description": "Your webhook receiver"
    }
  ],
  "paths": {
    "/bill.created": {
      "post": {
        "summary": "bill.created",
        "operationId": "bill_created",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "bill.created"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "bill"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/Bill"
                      },
                      "attributes": {
                        "type": "object",
                        "properties": {
                          "billingEmail": {
                            "type": "string",
                            "description": "Billing contact on the profile. Not part of the bill model, and the one thing a notification consumer routinely wants that a bill lookup would not give it."
                          }
                        },
                        "additionalProperties": false,
                        "description": "Facts about the transition rather than the resource. Optional ones are omitted, never null."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when bill.created occurs."
      }
    },
    "/bill.issued": {
      "post": {
        "summary": "bill.issued",
        "operationId": "bill_issued",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "bill.issued"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "bill"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/Bill"
                      },
                      "attributes": {
                        "type": "object",
                        "properties": {
                          "billingEmail": {
                            "type": "string",
                            "description": "Billing contact on the profile. Not part of the bill model, and the one thing a notification consumer routinely wants that a bill lookup would not give it."
                          }
                        },
                        "additionalProperties": false,
                        "description": "Facts about the transition rather than the resource. Optional ones are omitted, never null."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when bill.issued occurs."
      }
    },
    "/bill.paid": {
      "post": {
        "summary": "bill.paid",
        "operationId": "bill_paid",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "bill.paid"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "bill"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/Bill"
                      },
                      "attributes": {
                        "type": "object",
                        "properties": {
                          "billingEmail": {
                            "type": "string",
                            "description": "Billing contact on the profile. Not part of the bill model, and the one thing a notification consumer routinely wants that a bill lookup would not give it."
                          }
                        },
                        "additionalProperties": false,
                        "description": "Facts about the transition rather than the resource. Optional ones are omitted, never null."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when bill.paid occurs."
      }
    },
    "/payment.succeeded": {
      "post": {
        "summary": "payment.succeeded",
        "operationId": "payment_succeeded",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "payment.succeeded"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "collect_transaction"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/CollectTransaction"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when payment.succeeded occurs."
      }
    },
    "/payment.failed": {
      "post": {
        "summary": "payment.failed",
        "operationId": "payment_failed",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "payment.failed"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "collect_transaction"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/CollectTransaction"
                      },
                      "attributes": {
                        "required": [
                          "errorMessage"
                        ],
                        "type": "object",
                        "properties": {
                          "errorMessage": {
                            "type": "string",
                            "description": "Why the payment gateway declined the attempt."
                          }
                        },
                        "additionalProperties": false,
                        "description": "Facts about the transition rather than the resource. Optional ones are omitted, never null."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when payment.failed occurs."
      }
    },
    "/payment.refunded": {
      "post": {
        "summary": "payment.refunded",
        "operationId": "payment_refunded",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "payment.refunded"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "account_credit_transaction"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/AccountCreditTransaction"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when payment.refunded occurs."
      }
    },
    "/project.created": {
      "post": {
        "summary": "project.created",
        "operationId": "project_created",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "project.created"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "project"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/Project"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when project.created occurs."
      }
    },
    "/project.suspended": {
      "post": {
        "summary": "project.suspended",
        "operationId": "project_suspended",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "project.suspended"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "project"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/Project"
                      },
                      "attributes": {
                        "required": [
                          "previousStatus"
                        ],
                        "type": "object",
                        "properties": {
                          "previousStatus": {
                            "type": "string",
                            "description": "The status the project moved from, or UNKNOWN."
                          }
                        },
                        "additionalProperties": false,
                        "description": "Facts about the transition rather than the resource. Optional ones are omitted, never null."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when project.suspended occurs."
      }
    },
    "/project.resumed": {
      "post": {
        "summary": "project.resumed",
        "operationId": "project_resumed",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "project.resumed"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "project"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      },
                      "object": {
                        "$ref": "#/components/schemas/Project"
                      },
                      "attributes": {
                        "required": [
                          "previousStatus"
                        ],
                        "type": "object",
                        "properties": {
                          "previousStatus": {
                            "type": "string",
                            "description": "The status the project moved from, or UNKNOWN."
                          }
                        },
                        "additionalProperties": false,
                        "description": "Facts about the transition rather than the resource. Optional ones are omitted, never null."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when project.resumed occurs."
      }
    },
    "/webhook_endpoint.test": {
      "post": {
        "summary": "webhook_endpoint.test",
        "operationId": "webhook_endpoint_test",
        "parameters": [
          {
            "name": "webhook-id",
            "in": "header",
            "description": "Unique id of this delivery. Stable across retries — use it to deduplicate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-timestamp",
            "in": "header",
            "description": "Unix seconds when the delivery was signed. Reject anything outside your tolerance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhook-signature",
            "in": "header",
            "description": "Space-delimited `v1,<base64>` signatures. Absent when payload signing is disabled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-event-type",
            "in": "header",
            "description": "The event type, matching the body's `type`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "osie-attempt",
            "in": "header",
            "description": "1 for the first try, incrementing on each retry.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "api_version",
                  "created_at",
                  "data",
                  "id",
                  "type"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique id of this event."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "webhook_endpoint.test"
                    ]
                  },
                  "api_version": {
                    "type": "string",
                    "description": "Payload contract version."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "When the event occurred.",
                    "format": "date-time"
                  },
                  "organization_id": {
                    "type": "string",
                    "description": "The customer this event belongs to.",
                    "nullable": true
                  },
                  "project_id": {
                    "type": "string",
                    "description": "The project this event belongs to, when it has one.",
                    "nullable": true
                  },
                  "data": {
                    "required": [
                      "id",
                      "type"
                    ],
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id of the resource the event is about."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "webhook_endpoint"
                        ]
                      },
                      "name": {
                        "type": "string",
                        "description": "Human-readable label for the resource."
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "required": true
        },
        "responses": {
          "410": {
            "description": "The endpoint is retired. Delivery stops and the endpoint is disabled."
          },
          "2XX": {
            "description": "Acknowledged. Any other status, including 3xx, is treated as a failure and retried."
          }
        },
        "description": "Sent when webhook_endpoint.test occurs."
      }
    }
  },
  "components": {
    "schemas": {
      "Bill": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "OPEN",
              "SENT",
              "PAID"
            ]
          },
          "currency": {
            "type": "string"
          },
          "billing_profile_id": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillItem"
            }
          },
          "item_categories": {
            "type": "array",
            "description": "Net totals grouped by resource category (Compute, Networking, Block Storage, Object Storage, Backup, DBaaS, Other). Present when the bill has items.",
            "items": {
              "$ref": "#/components/schemas/ItemCategory"
            }
          },
          "start_date": {
            "type": "string",
            "description": "Start of the billing cycle.",
            "format": "date-time"
          },
          "end_date": {
            "type": "string",
            "description": "End of the billing cycle.",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BillItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "resource_id": {
            "type": "string",
            "description": "ID of the actual resource being billed."
          },
          "correlation_id": {
            "type": "string",
            "description": "ID of the source resource shared by all items split from it (e.g. a datastore). Use it to group related items on the bill statement. Null when the resource is not split."
          },
          "project_id": {
            "type": "string",
            "description": "The project ID of the resource."
          },
          "resource_type": {
            "type": "string",
            "description": "The type of the resource"
          },
          "category": {
            "type": "string",
            "description": "The resource category this item belongs to (Compute, Networking, Block Storage, Object Storage, Backup, DBaaS, Other).",
            "enum": [
              "COMPUTE",
              "NETWORKING",
              "BLOCK_STORAGE",
              "OBJECT_STORAGE",
              "BACKUP",
              "DBAAS",
              "OTHER"
            ]
          },
          "attributes": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "description": "Attributes of the resource"
            },
            "description": "Attributes of the resource"
          },
          "currency": {
            "type": "string"
          },
          "amount": {
            "type": "number",
            "description": "The amount  this item was billed, represented in the item currency. If the Bill is still OPEN, this is the amount from the Bill startDate till the current moment."
          },
          "applied_price_plan_rules": {
            "type": "array",
            "description": "Per-attribute price breakdown of this item — how each priced attribute contributed to the amount. Empty when the item has no displayable breakdown (e.g. it is billed solely by existence).",
            "items": {
              "$ref": "#/components/schemas/BillItemAppliedPricePlanRule"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "description": "Updates every time there is a new change on this item, such as amount or attributes.",
            "format": "date-time"
          }
        }
      },
      "BillItemAppliedPricePlanRule": {
        "type": "object",
        "properties": {
          "price_plan_rule_id": {
            "type": "string",
            "description": "Id of the price plan rule that produced this charge, for correlation via the pricing APIs."
          },
          "attribute_name": {
            "type": "string",
            "description": "Machine-readable key of the priced attribute."
          },
          "last_attribute_value": {
            "type": "object",
            "description": "Resource units of this attribute that were priced — its last known value (e.g. the number of vcpus or GB of ram)."
          },
          "amount": {
            "type": "number",
            "description": "The amount this attribute contributed to the item total, in the item currency."
          }
        },
        "description": "Per-attribute price breakdown of this item — how each priced attribute contributed to the amount. Empty when the item has no displayable breakdown (e.g. it is billed solely by existence)."
      },
      "ItemCategory": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "The resource category.",
            "enum": [
              "COMPUTE",
              "NETWORKING",
              "BLOCK_STORAGE",
              "OBJECT_STORAGE",
              "BACKUP",
              "DBAAS",
              "OTHER"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Net amount billed for this category, in the bill currency."
          },
          "currency": {
            "type": "string"
          }
        },
        "description": "Net totals grouped by resource category (Compute, Networking, Block Storage, Object Storage, Backup, DBaaS, Other). Present when the bill has items."
      },
      "CollectTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "PENDING, SUCCESS, FAILED or CANCELLED.",
            "enum": [
              "PENDING",
              "SUCCESS",
              "FAILED",
              "CANCELLED"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Net amount collected."
          },
          "gross_amount": {
            "type": "number",
            "description": "Amount including tax."
          },
          "currency": {
            "type": "string"
          },
          "billing_profile_id": {
            "type": "string",
            "description": "The billing profile that was charged."
          },
          "bill_id": {
            "type": "string",
            "description": "Set when the payment settles a bill."
          },
          "order_id": {
            "type": "string",
            "description": "Set when the payment settles an order."
          },
          "external_invoice_id": {
            "type": "string",
            "description": "Invoice raised for this payment at the invoice gateway."
          },
          "error_message": {
            "type": "string",
            "description": "Why the payment gateway declined it. Set only on a failure."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "AccountCreditTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "PENDING, SUCCESS, FAILED, REFUNDED or CANCELLED.",
            "enum": [
              "PENDING",
              "SUCCESS",
              "FAILED",
              "REFUNDED",
              "CANCELLED"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Net amount."
          },
          "gross_amount": {
            "type": "number",
            "description": "Amount including tax."
          },
          "currency": {
            "type": "string"
          },
          "billing_profile_id": {
            "type": "string",
            "description": "The billing profile the credit belongs to."
          },
          "external_invoice_id": {
            "type": "string",
            "description": "The reversed invoice at the invoice gateway, for a refund."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Member": {
        "type": "object",
        "properties": {
          "sub": {
            "type": "string"
          }
        }
      },
      "OpenStackProjectProvisioningDetails": {
        "type": "object",
        "properties": {
          "openstack_project_id": {
            "type": "string"
          },
          "openstack_domain_id": {
            "type": "string"
          }
        }
      },
      "Project": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED",
              "SCHEDULED_FOR_DELETION",
              "DELETE_IN_PROGRESS"
            ]
          },
          "organization_id": {
            "type": "string"
          },
          "realm_id": {
            "type": "string"
          },
          "billing_profile_id": {
            "type": "string"
          },
          "provisioned_services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProvisionedService"
            }
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Member"
            }
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          }
        }
      },
      "ProvisionedService": {
        "type": "object",
        "properties": {
          "service_id": {
            "type": "string"
          },
          "openstack": {
            "$ref": "#/components/schemas/OpenStackProjectProvisioningDetails"
          }
        }
      }
    },
    "securitySchemes": {
      "WebhookSignature": {
        "type": "apiKey",
        "description": "Standard Webhooks signature over the raw request body.",
        "name": "webhook-signature",
        "in": "header"
      }
    }
  }
}
