Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.3",
"info": {
"title": "webhook",
"description": "Provides support for managing webhook subscriber's events by allowing them to query, and ultimately replay past failed events.",
"version": "2.0.0",
"contact": {
"email": "Core-Eng@breadfinancial.com"
}
},
"servers": [
{
"url": "https://api-preview.platform.breadpayments.com/",
"description": "Preview environment"
},
{
"url": "https://api.platform.breadpayments.com/",
"description": "Production environment"
}
],
"paths": {
"/api/webhook/subscription": {
"get": {
"security": [
{
"bearerAuthWebhook": [
"r:webhook.subscription"
]
}
],
"tags": [
"Subscription Management"
],
"summary": "List subscriptions",
"description": "Allows a user to retrieve all subscriptions they have created and are current. Upon success, the list of subscriptions will be returned.",
"operationId": "getAllSubscriptions",
"parameters": [
{
"in": "query",
"name": "limit",
"description": "The maximum number of records that will be returned in a result set.",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 10
},
"example": 50
},
{
"in": "query",
"name": "offset",
"description": "The number of records to skip before starting to collect the result set. Used in conjunction with limit query parameter for pagination support",
"required": false,
"schema": {
"type": "integer",
"minimum": 0,
"default": 0
},
"example": 20
}
],
"responses": {
"200": {
"description": "A subscription search response",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "contains list of subscription and pagination info",
"required": [
"subscriptions",
"keys",
"pagination"
],
"properties": {
"subscriptions": {
"type": "array",
"items": {
"type": "object",
"description": "Object containing subscription data returned for successful requests",
"required": [
"name",
"subscriptionURL",
"eventSubscriptions"
],
"properties": {
"name": {
"type": "string",
"description": "Name of subscription",
"example": "SubscriptionEndpoint-dbef2daf-f94a-41f3-8d07-52eb17cc17b3"
},
"subscriptionURL": {
"type": "string",
"description": "Subscriber endpoint to call with event",
"example": "https://example.com/callback",
"format": "uri"
},
"eventSubscriptions": {
"type": "array",
"items": {
"type": "string",
"description": "Events subscribed to by subscriber",
"example": "breadpayments.webhooks.my.super-rev1"
}
}
}
}
},
"keys": {
"type": "array",
"items": {
"type": "object",
"properties": {
"k": {
"type": "string",
"description": "base64 URL encoded key"
},
"kty": {
"type": "string",
"description": "key type"
},
"kid": {
"type": "string",
"description": "key id"
},
"use": {
"type": "string",
"description": "intended use"
},
"alg": {
"type": "string",
"description": "algorithm used to encode signature"
}
},
"required": [
"k",
"kty",
"kid",
"use",
"alg"
]
}
},
"pagination": {
"type": "object",
"description": "pagination for response",
"required": [
"limit",
"offset",
"total"
],
"properties": {
"limit": {
"type": "integer",
"description": "number or records to return",
"example": 10
},
"offset": {
"type": "integer",
"description": "first record to return",
"example": 10
},
"total": {
"type": "integer",
"description": "total records to be queried",
"example": 1500
}
}
}
}
}
}
}
},
"400": {
"description": "Default error response for any errors in the API",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"required": [
"code",
"domain",
"message"
],
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "The underlying http status code",
"format": "int32",
"example": 500
},
"message": {
"type": "string",
"description": "A simple message in english describing the error and can be returned to the consumer",
"example": "Age cannot be less than 18"
},
"domain": {
"type": "string",
"description": "The domain where the error is originating from as defined by the service",
"example": "Payments"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Any additional details to be conveyed as determined by the service. If present, will return map of key value pairs",
"example": {
"propertyName": "propertyName is required"
}
}
}
}
],
"required": [
"code",
"domain",
"message",
"reason"
],
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A reason code specific to the service and can be used to identify the exact issue. Should be unique within a domain",
"example": "Reason_Code"
}
}
}
}
}
},
"500": {
"description": "Default error response for any errors in the API",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"required": [
"code",
"domain",
"message"
],
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "The underlying http status code",
"format": "int32",
"example": 500
},
"message": {
"type": "string",
"description": "A simple message in english describing the error and can be returned to the consumer",
"example": "Age cannot be less than 18"
},
"domain": {
"type": "string",
"description": "The domain where the error is originating from as defined by the service",
"example": "Payments"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Any additional details to be conveyed as determined by the service. If present, will return map of key value pairs",
"example": {
"propertyName": "propertyName is required"
}
}
}
}
],
"required": [
"code",
"domain",
"message",
"reason"
],
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A reason code specific to the service and can be used to identify the exact issue. Should be unique within a domain",
"example": "Reason_Code"
}
}
}
}
}
}
}
},
"post": {
"security": [
{
"bearerAuthWebhook": [
"c:webhook.subscription"
]
}
],
"tags": [
"Subscription Management"
],
"summary": "Create a subscription",
"description": "Allows a user to create a webhook subscription. Upon successful creation, the user will receive a 201 response with the subscription details.",
"operationId": "createSubscription",
"requestBody": {
"description": "The subscription create request",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Object containing data to make a request to create a subscription",
"required": [
"eventSubscriptions",
"subscriptionURL",
"name",
"auth"
],
"properties": {
"eventSubscriptions": {
"type": "array",
"items": {
"type": "string",
"description": "Events subscribed to by subscriber",
"example": "breadpayments.webhooks.my.super-rev1"
}
},
"subscriptionURL": {
"type": "string",
"description": "Subscriber endpoint to call with event",
"example": "https://example.com/callback",
"format": "uri"
},
"name": {
"type": "string",
"description": "Name of subscription",
"example": "SubscriptionEndpoint-dbef2daf-f94a-41f3-8d07-52eb17cc17b3"
},
"auth": {
"title": "Auth Union",
"allOf": [
{
"oneOf": [
{
"title": "Auth None",
"type": "object",
"description": "Represents sending of no Authorization header to the subscription endpoint",
"required": [
"authType"
],
"properties": {
"authType": {
"type": "string",
"enum": [
"NONE"
]
}
}
},
{
"title": "Auth Basic",
"type": "object",
"description": "Represents sending of an Authorization header in format of https://www.ietf.org/rfc/rfc2617.txt. Will be sent in the format of \"Basic base64(username:password)\" to the subscription endpoint",
"required": [
"authType",
"username",
"password"
],
"properties": {
"authType": {
"type": "string",
"enum": [
"BASIC"
]
},
"username": {
"type": "string",
"description": "username to be sent in the Authorization header"
},
"password": {
"type": "string",
"description": "password to be sent in the Authorization header"
}
}
},
{
"title": "Auth Static Bearer Token",
"type": "object",
"description": "Represents sending of an Authorization header in format of https://www.ietf.org/rfc/rfc6750.txt. Will be sent in the format of \"Bearer token\" to the subscription endpoint",
"required": [
"authType",
"token"
],
"properties": {
"authType": {
"type": "string",
"enum": [
"STATIC_BEARER_TOKEN"
]
},
"token": {
"type": "string",
"description": "token to be sent in the Authorization header"
}
}
}
]
},
{
"type": "string",
"required": [
"authType"
],
"properties": {
"authType": {
"type": "string",
"enum": [
"NONE",
"BASIC",
"STATIC_BEARER_TOKEN"
]
}
}
}
]
}
}
}
}
}
},
"responses": {
"201": {
"description": "A subscription response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"description": "Object containing subscription data returned for successful requests",
"required": [
"name",
"subscriptionURL",
"eventSubscriptions"
],
"properties": {
"name": {
"type": "string",
"description": "Name of subscription",
"example": "SubscriptionEndpoint-dbef2daf-f94a-41f3-8d07-52eb17cc17b3"
},
"subscriptionURL": {
"type": "string",
"description": "Subscriber endpoint to call with event",
"example": "https://example.com/callback",
"format": "uri"
},
"eventSubscriptions": {
"type": "array",
"items": {
"type": "string",
"description": "Events subscribed to by subscriber",
"example": "breadpayments.webhooks.my.super-rev1"
}
}
}
},
{
"type": "object",
"description": "Object containing subscription data returned for successful requests",
"required": [
"eventSubscriptions",
"subscriptionURL",
"name",
"keys"
],
"properties": {
"keys": {
"type": "array",
"items": {
"type": "object",
"properties": {
"k": {
"type": "string",
"description": "base64 URL encoded key"
},
"kty": {
"type": "string",
"description": "key type"
},
"kid": {
"type": "string",
"description": "key id"
},
"use": {
"type": "string",
"description": "intended use"
},
"alg": {
"type": "string",
"description": "algorithm used to encode signature"
}
},
"required": [
"k",
"kty",
"kid",
"use",
"alg"
]
}
}
}
}
]
}
}
}
},
"400": {
"description": "Default error response for any errors in the API",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"required": [
"code",
"domain",
"message"
],
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "The underlying http status code",
"format": "int32",
"example": 500
},
"message": {
"type": "string",
"description": "A simple message in english describing the error and can be returned to the consumer",
"example": "Age cannot be less than 18"
},
"domain": {
"type": "string",
"description": "The domain where the error is originating from as defined by the service",
"example": "Payments"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Any additional details to be conveyed as determined by the service. If present, will return map of key value pairs",
"example": {
"propertyName": "propertyName is required"
}
}
}
}
],
"required": [
"code",
"domain",
"message",
"reason"
],
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A reason code specific to the service and can be used to identify the exact issue. Should be unique within a domain",
"example": "Reason_Code"
}
}
}
}
}
},
"401": {
"description": "Unauthorized. Indicates that provided credentials is not valid",
"content": {
"text/plain": {
"schema": {
"type": "string",
"example": "Jwt is expired"
}
},
"application/json": {
"schema": {
"allOf": [
{
"required": [
"code",
"domain",
"message"
],
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "The underlying http status code",
"format": "int32",
"example": 500
},
"message": {
"type": "string",
"description": "A simple message in english describing the error and can be returned to the consumer",
"example": "Age cannot be less than 18"
},
"domain": {
"type": "string",
"description": "The domain where the error is originating from as defined by the service",
"example": "Payments"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Any additional details to be conveyed as determined by the service. If present, will return map of key value pairs",
"example": {
"propertyName": "propertyName is required"
}
}
}
}
],
"required": [
"code",
"domain",
"message",
"reason"
],
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A reason code specific to the service and can be used to identify the exact issue. Should be unique within a domain",
"example": "Reason_Code"
}
}
},
"example": {
"code": 401,
"domain": "Auth",
"message": "Invalid authentication",
"reason": "Invalid_Authentication"
}
}
}
},
"403": {
"description": "Forbidden. Indicates that request cannot be authorized",
"content": {
"text/plain": {
"schema": {
"type": "string",
"example": "RBAC: Access Denied"
}
},
"application/json": {
"schema": {
"allOf": [
{
"required": [
"code",
"domain",
"message"
],
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "The underlying http status code",
"format": "int32",
"example": 500
},
"message": {
"type": "string",
"description": "A simple message in english describing the error and can be returned to the consumer",
"example": "Age cannot be less than 18"
},
"domain": {
"type": "string",
"description": "The domain where the error is originating from as defined by the service",
"example": "Payments"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Any additional details to be conveyed as determined by the service. If present, will return map of key value pairs",
"example": {
"propertyName": "propertyName is required"
}
}
}
}
],
"required": [
"code",
"domain",
"message",
"reason"
],
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A reason code specific to the service and can be used to identify the exact issue. Should be unique within a domain",
"example": "Reason_Code"
}
}
},
"example": {
"code": 403,
"domain": "Auth",
"message": "RBAC: Access Denied",
"reason": "Access_Denied"
}
}
}
},
"500": {
"description": "Default error response for any errors in the API",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"required": [
"code",
"domain",
"message"
],
"type": "object",
"properties": {
"code": {
"type": "integer",
"description": "The underlying http status code",
"format": "int32",
"example": 500
},
"message": {
"type": "string",
"description": "A simple message in english describing the error and can be returned to the consumer",
"example": "Age cannot be less than 18"
},
"domain": {
"type": "string",
"description": "The domain where the error is originating from as defined by the service",
"example": "Payments"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Any additional details to be conveyed as determined by the service. If present, will return map of key value pairs",
"example": {
"propertyName": "propertyName is required"
}
}
}
}
],
"required": [
"code",
"domain",
"message",
"reason"
],
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "A reason code specific to the service and can be used to identify the exact issue. Should be unique within a domain",
"example": "Reason_Code"
}
}
}
}
}
}
}
}
},
"/api/webhook/subscription/{name}": {
"get": {
"security": [
{
"bearerAuthWebhook": [
"r:webhook.subscription"
]
}
],
"tags": [
"Subscription Management"
],
"summary": "Get a subscription",
"description": "Allows a user to retrieve a subscription by supplying the subscription name. Upon success, the requested subscription information will be returned.",
"operationId": "getSubscription",
"parameters": [
{
"name": "name",
"description": "Name of the subscription",
# --- truncated at 32 KB (257 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bread-financial/refs/heads/main/openapi/bread-webhook-openapi.json