Cash App Pay Management API
REST API that controls scoped API keys and webhooks, automating key aspects of a Cash App Pay integration including least-privileged microservice access.
REST API that controls scoped API keys and webhooks, automating key aspects of a Cash App Pay integration including least-privileged microservice access.
{"openapi":"3.1.0","info":{"title":"Management API","version":"1.0.0"},"paths":{"/api-keys":{"get":{"operationId":"list-api-keys","summary":"List API keys","description":"Returns a list of active API keys matching the given query parameters.\n\n**This endpoint is rate limited to 5 QPS.**\n\nScopes: `API_KEYS_READ`","tags":["apiKeys"],"parameters":[{"name":"cursor","in":"query","description":"A pagination cursor returned by a previous call to this endpoint. Provide this cursor to retrieve the next set of results for the original query.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of API keys to return.","required":false,"schema":{"type":"integer","default":50}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiKeys_list-api-keys_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"operationId":"create-api-key","summary":"Create API key","description":"Creates a new API key and secret to use in the `Authorization` and `X-Signature` headers for requests to the Cash App Pay API. This key will automatically expire at the date and time specified in the `expires_at` field in the response payload.\n\n<Note title=\"Note\">\n The `secret` returned in the response payload is what you use to calculate the `X-Signature` header. The API key ID is only used to keep track of which API keys are active, and isn't considered secret.\n Keep in mind that the `secret` can never be retrieved in subsequent requests to the API, so make sure to store it immediately!\n</Note>\n**This endpoint is rate limited to 5 QPS.**\n\nScopes: `API_KEYS_WRITE`","tags":["apiKeys"],"parameters":[{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiKeys_create-api-key_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"$ref":"#/components/schemas/IdempotencyKey"},"api_key":{"$ref":"#/components/schemas/ApiKeysPostRequestBodyContentApplicationJsonSchemaApiKey","description":"Details about the API key to create."}},"required":["idempotency_key","api_key"]}}}}}},"/api-keys/{api_key_id}":{"get":{"operationId":"retrieve-api-key","summary":"Retrieve API key","description":"Retrieves an API key by ID.\n\n**This endpoint is rate limited to 10 QPS.**\n\nScopes: `API_KEYS_READ`","tags":["apiKeys"],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiKeys_retrieve-api-key_Response_200"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"operationId":"delete-api-key","summary":"Delete API key","description":"Deletes an API key. After an API key is deleted, it can no longer be used for authentication. All API clients using the secret associated with this API key will immediately be forbidden from talking to the Cash App Pay API.\n\n<Note title=\"Note\">\n There is no way to un-delete an API key, so treat this endpoint with caution in production environments.\n</Note>\n\n**This endpoint is rate limited to 5 QPS.**\n\nScopes: `API_KEYS_WRITE`","tags":["apiKeys"],"parameters":[{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiKeys_delete-api-key_Response_200"}}}}}}},"/webhook-endpoints":{"get":{"operationId":"list-webhook-endpoints","summary":"List webhook endpoints","description":"Returns a list of webhook endpoints matching the query parameters provided.\n\nScopes: `WEBHOOK_CONFIG_READ`","tags":["Webhooks"],"parameters":[{"name":"cursor","in":"query","description":"A pagination cursor returned by a previous call to this endpoint. Provide this cursor to retrieve the next set of results for the original query.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of webhook endpoints to return.","required":false,"schema":{"type":"integer","default":50}},{"name":"reference_id","in":"query","description":"A user-defined identifier for this webhook endpoint, typically used to associate the webhook endpoint with a record in an external system.","required":false,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/webhooks_list-webhook-endpoints_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"operationId":"create-webhook-endpoint","summary":"Create webhook endpoint","description":"Creates a new webhook endpoint which Cash App can send events to.\n\n<Note title=\"Note\">\n Webhook events will not be successfully delivered for new domains until the new domain is allow-listed. New domains must be manually reviewed and allow-listed. It will typically take 1 business day to allow-list new domains.\n</Note>\n\nScopes: `WEBHOOK_CONFIG_WRITE`","tags":["Webhooks"],"parameters":[{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/webhooks_create-webhook-endpoint_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"$ref":"#/components/schemas/IdempotencyKey"},"webhook_endpoint":{"$ref":"#/components/schemas/WebhookEndpointsPostRequestBodyContentApplicationJsonSchemaWebhookEndpoint"}},"required":["idempotency_key","webhook_endpoint"]}}}}}},"/webhook-endpoints/{webhook_endpoint_id}":{"get":{"operationId":"retrieve-webhook-endpoint","summary":"Retrieve webhook endpoint","description":"Returns the webhook endpoint matching the `webhook_endpoint_id` provided.\n\nScopes: `WEBHOOK_CONFIG_READ`","tags":["Webhooks"],"parameters":[{"name":"webhook_endpoint_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/webhooks_retrieve-webhook-endpoint_Response_200"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"operationId":"update-webhook-endpoint","summary":"Update webhook endpoint","description":"Updates the webhook endpoint matching the `webhook_endpoint_id` provided.\n\nScopes: `WEBHOOK_CONFIG_WRITE`","tags":["Webhooks"],"parameters":[{"name":"webhook_endpoint_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/webhooks_update-webhook-endpoint_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_endpoint":{"$ref":"#/components/schemas/WebhookEndpointsWebhookEndpointIdPatchRequestBodyContentApplicationJsonSchemaWebhookEndpoint"}},"required":["webhook_endpoint"]}}}}},"delete":{"operationId":"delete-webhook-endpoint","summary":"Delete webhook endpoint","description":"Deletes the webhook endpoint matching the `webhook_endpoint_id` provided. Note: Events that are created before the webhook endpoint was deleted will still be delivered after the webhook endpoint gets deleted.\n\nScopes: `WEBHOOK_CONFIG_WRITE`","tags":["Webhooks"],"parameters":[{"name":"webhook_endpoint_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/webhooks_delete-webhook-endpoint_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/webhook-events":{"get":{"operationId":"list-webhook-events","summary":"List webhook events","description":"Returns a list of all webhook events matching the query parameters provided. Expired events are not included.\n\nScopes: `WEBHOOK_EVENTS_READ`","tags":["Webhooks"],"parameters":[{"name":"webhook_endpoint_id","in":"query","description":"Events delivered to this webhook endpoint ID.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"The status of an event that was delivered to a webhook endpoint. The status can either be PENDING, SUCCESS, or FAILED.","required":false,"schema":{"$ref":"#/components/schemas/WebhookEventsGetParametersStatus"}},{"name":"event_type","in":"query","description":"The type of event that will be sent to the webhook endpoint.","required":false,"schema":{"$ref":"#/components/schemas/WebhookEventsGetParametersEventType"}},{"name":"cursor","in":"query","description":"A pagination cursor returned by a previous call to this endpoint. Provide this cursor to retrieve the next set of results for the original query.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of webhook events to return.","required":false,"schema":{"type":"integer","default":100}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/webhooks_list-webhook-events_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/request-chains":{"post":{"operationId":"create-request-chain","summary":"Create request chain","description":"Executes multiple requests, grouped into \"chains\", in a single call. The API Client (Client) can use multiple chains and specify sub-requests within each chain to run sequentially or in parallel. However the chains, themselves, will only run sequentially.\n\n### Accessing a previous response's value\n\nClients can access a previous response's value by using the format: `$[previous request's uid]:[key path]`. Clients can use this in the value fields of:\n- `requests[].body`\n- `requests[].path_params`\n- `requests[].query_params`\n\nThe request's path `requests[].path` has an extra step to access a previous response's value. In the request's path, the Client will first refer to a key in the `requests[].path_params` field using the format: `{[path_params key name]}`. From there `requests[].path_params` can use the pattern described in **Accessing a previous response's value** to obtain a previous response's value.\n\n<Warning>\nThe initial security headers will be passed to all requests.\n\nScopes are not required for this endpoint. However, the API key must contain the appropriate scopes required by the individual requests to execute.\n</Warning>\n\nFor FAQs and performance improvement details, visit [Optimizing Performance with Request Chaining](../docs/partner-onboarding/optimizing-performance-with-request-chaining.md).\n","tags":["requestChains"],"parameters":[{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Region","in":"header","required":true,"schema":{"type":"string"}},{"name":"X-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/requestChains_create-request-chain_Response_201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/RequestChainsPostRequestBodyContentApplicationJsonSchemaRequestsItems"},"description":"Requests to execute"},"chains":{"type":"array","items":{"$ref":"#/components/schemas/RequestChainsPostRequestBodyContentApplicationJsonSchemaChainsItems"},"description":"Chains control the order and execution modes of requests"}},"required":["requests","chains"]}}}}}}},"servers":[{"url":"https://api.cash.app/management/v1","description":"Production"},{"url":"https://sandbox.api.cash.app/management/v1","description":"Sandbox"}],"components":{"schemas":{"ScopesItems":{"type":"string","enum":["PAYMENTS_READ","PAYMENTS_WRITE","PAYOUTS_READ","PAYOUTS_WRITE","REFUNDS_READ","REFUNDS_WRITE","DISPUTES_READ","DISPUTES_WRITE","CUSTOMERS_READ","FEE_PLANS_READ","GRANTS_READ","GRANTS_WRITE","API_KEYS_READ","API_KEYS_WRITE","BRANDS_READ","BRANDS_WRITE","MERCHANTS_READ","MERCHANTS_WRITE","WEBHOOK_CONFIG_READ","WEBHOOK_CONFIG_WRITE","WEBHOOK_EVENTS_READ"],"title":"ScopesItems"},"Scopes":{"type":"array","items":{"$ref":"#/components/schemas/ScopesItems"},"description":"An array of permissions granted to the API key.\n\nCurrent values:\n\n- `API_KEYS_READ`: Permits listing API keys and retrieving individual keys.\n- `API_KEYS_WRITE`: Permits creating and deleting API keys.\n- `BRANDS_READ`: Permits listing brands and retrieving individual brands.\n- `BRANDS_WRITE`: Permits creating, upserting, and updating brands.\n- `CUSTOMERS_READ`: Permits listing customers and retrieving individual customers.\n- `DISPUTES_READ`: Permits listing disputes / dispute evidence and retrieving details about individual disputes / dispute evidence.\n- `DISPUTES_WRITE`: Permits uploading dispute evidence, accepting disputes, and challenging disputes.\n- `FEE_PLANS_READ`: Permits listing fee plans and retrieving individual fee plans.\n- `GRANTS_READ`: Permits listing grants for a customer and retrieving individual grants.\n- `GRANTS_WRITE`: Permits revoking a grant.\n- `MERCHANTS_READ`: Permits listing merchants and retrieving individual merchants.\n- `MERCHANTS_WRITE`: Permits creating, upserting, and updating merchants.\n- `PAYMENTS_READ`: Permits listing payments and retrieving individual payments.\n- `PAYMENTS_WRITE`: Permits taking payments, capturing payments, and voiding payments.\n- `PAYOUTS_READ`: Permits listing payouts and retrieving individual payouts.\n- `PAYOUTS_WRITE`: Permits creating payouts.\n- `REFUNDS_READ`: Permits listing refunds and retrieving individual refunds.\n- `REFUNDS_WRITE`: Permits issuing refunds, capturing refunds, and voiding refunds.\n- `WEBHOOK_CONFIG_READ`: Permits listing webhook delivery settings and retrieving individual configurations.\n- `WEBHOOK_CONFIG_WRITE`: Permits creating and updating webhook delivery settings.\n- `WEBHOOK_EVENTS_READ`: Permits listing webhook events and retrieving individual events.\n\nMin number of items: `1`","title":"Scopes"},"ApiKey":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this API key issued by Cash App. This is the API key value that is passed in the `Authorization` header."},"created_at":{"type":"string","format":"date-time","description":"When this API key was created, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"expires_at":{"type":"string","format":"date-time","description":"When this API key will be automatically deleted and become unusable, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"scopes":{"$ref":"#/components/schemas/Scopes"},"reference_id":{"type":"string","description":"A user-defined identifier for this API key, typically used to associate the API key with a record in an external system.\n\nMin length: `1`\nMax length: `1024`"}},"required":["id","created_at","expires_at","scopes"],"title":"ApiKey"},"apiKeys_list-api-keys_Response_200":{"type":"object","properties":{"api_keys":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"},"description":"List of API keys for the given query parameters."},"cursor":{"type":"string","description":"The pagination cursor to be used in a subsequent request. If empty, this is the final response."}},"required":["api_keys"],"title":"apiKeys_list-api-keys_Response_200"},"ErrorCategory":{"type":"string","enum":["API_ERROR","AUTHENTICATION_ERROR","BRAND_ERROR","DISPUTE_ERROR","MERCHANT_ERROR","INVALID_REQUEST_ERROR","PAYMENT_PROCESSING_ERROR","RATE_LIMIT_ERROR","WEBHOOK_ERROR","API_KEY_ERROR","GRANT_ERROR"],"description":"The high-level reason the error occurred","title":"ErrorCategory"},"Error":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/ErrorCategory","description":"The high-level reason the error occurred"},"code":{"type":"string","description":"A unique identifier for the specific type of error that occurred. See the Error Code Reference for more information.\n\nMin length: `1`"},"detail":{"type":"string","description":"Human-readable description of why the error occurred and how to resolve it.\n\nMin length: `1`"},"field":{"type":"string","description":"The field in the request that caused the error, using array and object dot notation.\n\nMin length: `1`"}},"required":["category","code"],"description":"Represents an error encountered during a request to the API.","title":"Error"},"ErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"},"description":"A list of errors that occurred while processing the request.\n\nMin number of items: `1`"}},"required":["errors"],"title":"ErrorResponse"},"IdempotencyKey":{"type":"string","description":"A unique identifier which can be used by Cash App to de-duplicate retries of this request, making it idempotent. Learn more about [idempotency](../docs/api/technical-documentation/api-fundamentals/idempotency) in the API.","title":"IdempotencyKey"},"ApiKeysPostRequestBodyContentApplicationJsonSchemaApiKey":{"type":"object","properties":{"scopes":{"$ref":"#/components/schemas/Scopes"},"reference_id":{"type":"string","description":"A user-defined identifier for this API key, typically used to associate the API key with a record in an external system.\n\nMin length: `1`\nMax length: `1024`"}},"required":["scopes"],"description":"Details about the API key to create.","title":"ApiKeysPostRequestBodyContentApplicationJsonSchemaApiKey"},"apiKeys_create-api-key_Response_201":{"type":"object","properties":{"api_key":{"$ref":"#/components/schemas/ApiKey"},"secret":{"type":"string","description":"Secret value to use when calculating the `X-Signature` header of requests.\n\nThis value is not returned when retrieving an API key, so make sure to store it immediately.\n\nMin length: `32`\nMax length: `256`"}},"required":["api_key","secret"],"title":"apiKeys_create-api-key_Response_201"},"apiKeys_retrieve-api-key_Response_200":{"type":"object","properties":{"api_key":{"$ref":"#/components/schemas/ApiKey"}},"required":["api_key"],"title":"apiKeys_retrieve-api-key_Response_200"},"apiKeys_delete-api-key_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"apiKeys_delete-api-key_Response_200"},"EventType":{"type":"string","enum":["customer.created","customer.deleted","customer.updated","customer_request.state.updated","dispute.created","dispute.state.updated","grant.created","grant.status.updated","merchant.status.updated","payment.status.updated","refund.status.updated"],"description":"The type of event that will be sent to the webhook endpoint.","title":"EventType"},"ApiVersion":{"type":"string","enum":["v1"],"description":"Represents the API version. ","title":"ApiVersion"},"EventConfiguration":{"type":"object","properties":{"event_type":{"$ref":"#/components/schemas/EventType"},"api_version":{"$ref":"#/components/schemas/ApiVersion"}},"required":["event_type","api_version"],"description":"Represents a supported event type and the API version that the event of this type should be serialized to.","title":"EventConfiguration"},"WebhookEndpointStatus":{"type":"string","enum":["APPROVED","ENDPOINT_URL_UNDER_REVIEW"],"description":"The approval status of a webhook endpoint. Once a webhook endpoint is approved, Cash App will deliver events to that webhook endpoint.","title":"WebhookEndpointStatus"},"WebhookEndpoint":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID for a webhook endpoint issued by Cash App."},"api_key_id":{"type":"string","description":"The API key ID which will be used to sign requests made to this webhook endpoint."},"reference_id":{"type":"string","description":"A user-defined identifier for this webhook endpoint, typically used to associate the webhook endpoint with a record in an external system."},"url":{"type":["string","null"],"format":"uri","description":"The events are delivered to this endpoint URL. If NULL, events will be not be delivered to an endpoint but will still be persisted and accessible via the List Webhook Events API."},"event_configurations":{"type":"array","items":{"$ref":"#/components/schemas/EventConfiguration"},"description":"The list of supported event types for this webhook endpoint. Events of a particular type will only be sent to endpoints that contain the type in this list."},"created_at":{"type":"string","format":"date-time","description":"The timestamp of when this webhook endpoint was created."},"updated_at":{"type":"string","format":"date-time","description":"The timestamp of when this endpoint was last updated."},"delivery_timeout":{"type":"number","format":"double","default":5000,"description":"The duration, in milliseconds, that Cash App will take to deliver an event to this endpoint before timing out."},"max_delivery_frequency":{"type":["number","null"],"format":"double","description":"The maximum number of events per second that will be delivered to this endpoint before rate limiting kicks in. The default for this field is unset (NULL) which means no rate limiting. However, if you enable rate limiting, the values can range from 1 to 100000."},"status":{"$ref":"#/components/schemas/WebhookEndpointStatus"}},"required":["id","api_key_id","url","event_configurations","created_at","updated_at","delivery_timeout","status"],"description":"The events will be sent to this webhook endpoint.","title":"WebhookEndpoint"},"webhooks_list-webhook-endpoints_Response_200":{"type":"object","properties":{"webhook_endpoints":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"cursor":{"type":"string","description":"The pagination cursor to be used in a subsequent request. If empty, this is the final response."}},"required":["webhook_endpoints"],"title":"webhooks_list-webhook-endpoints_Response_200"},"WebhookEndpointsPostRequestBodyContentApplicationJsonSchemaWebhookEndpoint":{"type":"object","properties":{"api_key_id":{"type":"string","description":"The API key ID which will be used to sign requests made to this webhook endpoint."},"event_configurations":{"type":"array","items":{"$ref":"#/components/schemas/EventConfiguration"},"description":"The list of supported event types for this webhook endpoint. Events of a particular type will only be sent to endpoints that contain the type in this list."},"url":{"type":["string","null"],"description":"The URL of the endpoint which events will be delivered to. If NULL is specified, events will be not be delivered to an endpoint but will still be persisted and accessible via the List Webhook Events API."},"reference_id":{"type":"string","description":"A user-defined identifier for this webhook endpoint, typically used to associate the webhook endpoint with a record in an external system."},"delivery_timeout":{"type":"number","format":"double","default":5000,"description":"The duration, in milliseconds, that Cash App will take to deliver an event to this endpoint before timing out."},"max_delivery_frequency":{"type":"number","format":"double","description":"The maximum number of events per second that will be delivered to this endpoint before rate limiting kicks in. The default for this field is unset (NULL) which means no rate limiting. However, if you enable rate limiting, the values can range from 1 to 100000."}},"required":["api_key_id","event_configurations","url"],"title":"WebhookEndpointsPostRequestBodyContentApplicationJsonSchemaWebhookEndpoint"},"webhooks_create-webhook-endpoint_Response_201":{"type":"object","properties":{"webhook_endpoint":{"$ref":"#/components/schemas/WebhookEndpoint"}},"required":["webhook_endpoint"],"title":"webhooks_create-webhook-endpoint_Response_201"},"webhooks_retrieve-webhook-endpoint_Response_200":{"type":"object","properties":{"webhook_endpoint":{"$ref":"#/components/schemas/WebhookEndpoint"}},"required":["webhook_endpoint"],"title":"webhooks_retrieve-webhook-endpoint_Response_200"},"WebhookEndpointsWebhookEndpointIdPatchRequestBodyContentApplicationJsonSchemaWebhookEndpoint":{"type":"object","properties":{"url":{"type":["string","null"],"format":"uri","description":"The events are delivered to this endpoint URL."},"reference_id":{"type":["string","null"],"description":"A user-defined identifier for this webhook endpoint, typically used to associate the webhook endpoint with a record in an external system."},"api_key_id":{"type":"string","description":"The API key ID which will be used to sign requests made to this webhook endpoint."},"event_configurations":{"type":"array","items":{"$ref":"#/components/schemas/EventConfiguration"},"description":"The list of supported event types for this webhook endpoint. Events of a particular type will only be sent to endpoints that contain the type in this list."},"delivery_timeout":{"type":"number","format":"double","default":5000,"description":"The duration, in milliseconds, that Cash App will take to deliver an event to this endpoint before timing out."},"max_delivery_frequency":{"type":["number","null"],"format":"double","description":"The maximum number of events per second that will be delivered to this endpoint before rate limiting kicks in. The default for this field is unset (NULL) which means no rate limiting. However, if you enable rate limiting, the values can range from 1 to 100000."}},"title":"WebhookEndpointsWebhookEndpointIdPatchRequestBodyContentApplicationJsonSchemaWebhookEndpoint"},"webhooks_update-webhook-endpoint_Response_200":{"type":"object","properties":{"webhook_endpoint":{"$ref":"#/components/schemas/WebhookEndpoint"}},"required":["webhook_endpoint"],"title":"webhooks_update-webhook-endpoint_Response_200"},"webhooks_delete-webhook-endpoint_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"webhooks_delete-webhook-endpoint_Response_200"},"WebhookEventsGetParametersStatus":{"type":"string","enum":["PENDING","SUCCESS","FAILED"],"title":"WebhookEventsGetParametersStatus"},"WebhookEventsGetParametersEventType":{"type":"string","enum":["customer.created","customer.deleted","customer.updated","customer_request.state.updated","dispute.created","dispute.state.updated","grant.created","grant.status.updated","merchant.status.updated","payment.status.updated","refund.status.updated"],"title":"WebhookEventsGetParametersEventType"},"EventStatus":{"type":"string","enum":["PENDING","FAILED","SUCCESS"],"description":"The status of an event that was delivered to a webhook endpoint. The status can either be PENDING, SUCCESS, or FAILED.\n\nPENDING: The webhook event has been dispatched and is in the process of being delivered to the endpoint. If the event has failed and is being retried, it will continue to be in the PENDING status.\n\nSUCCESS: The webhook event has been delivered to the endpoint and we've received receipt of the delivery from the client's endpoint (e.g. 200OK).\n\nFAILED: The webhook event has failed all delivery attempts for 72 hours. No more deliveries will be attempted.","title":"EventStatus"},"Customer":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this customer issued by Cash App.\n\nMin length: `1`\nMax length: `128`"},"cashtag":{"type":"string","description":"Public identifier for the customer on Cash App. [Learn more](https://cash.app/help/us/en-us/3123-cashtags).\n\nMin length: `1`\nMax length: `1024`"},"reference_id":{"type":"string","description":"A user-defined identifier for this customer, typically used to associate the customer with a record in an external system. This value can be provided via the `CustomerRequest.customer_metadata.reference_id` attribute. Upon approval of the CustomerRequest, a corresponding customer resource is created with the `reference_id` attribute."}},"required":["id","cashtag"],"title":"Customer"},"EventDataDataObject0":{"type":"object","properties":{"customer":{"$ref":"#/components/schemas/Customer"}},"title":"EventDataDataObject0"},"Country":{"type":"string","enum":["US"],"description":"Indicates the country associated with an entity. Values are from the [ISO-3166 Alpha-2](https://www.iso.org/iso-3166-country-codes.html) specification.\n\nCurrent values:\n\n- `US`: United States of America","title":"Country"},"Currency":{"type":"string","enum":["USD"],"description":"Indicates the country associated with an entity. Values are from the [ISO-4217 Alpha-3](https:/
# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cash-app/refs/heads/main/openapi/cash-app-management-api-openapi.json