Brevo Payments API
The payments API from Brevo — 2 operation(s) for payments.
Operations 3
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
The payments API from Brevo — 2 operation(s) for payments.
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/brevo:brevo-payments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Ecommerce Payments API
version: 1.0.0
servers:
- url: https://api.brevo.com/v3
description: https://api.brevo.com/v3
tags:
- name: Payments
paths:
/payments/requests:
post:
operationId: createPaymentRequest
summary: Create a payment request
description: Create a new payment request for a Brevo contact. The request requires a reference (displayed on the payment page), a contact ID, and a cart with currency and amount in cents. You can optionally configure a custom success redirect URL and enable email notifications with reminders. Returns the payment request ID and its public payment URL. A `403` error is returned if Brevo Payments is not activated or the account is not validated.
tags:
- Payments
parameters:
- name: api-key
in: header
description: The API key should be passed in the request headers as `api-key` for authentication.
required: true
schema:
type: string
responses:
'201':
description: Payment request created.
content:
application/json:
schema:
$ref: '#/components/schemas/Payments_createPaymentRequest_Response_201'
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentRequestRequestBadRequestError'
'401':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentRequestRequestUnauthorizedError'
'403':
description: Permission denied. Either you don't have access to Brevo Payments or your Brevo Payments account is not validated.
content:
application/json:
schema:
$ref: '#/components/schemas/errorModel'
requestBody:
description: 'Create a payment request
'
content:
application/json:
schema:
type: object
properties:
cart:
$ref: '#/components/schemas/cart'
configuration:
$ref: '#/components/schemas/configuration'
contactId:
type: integer
format: int64
description: 'Brevo ID of the contact requested to pay.
'
description:
type: string
description: 'Description of payment request.
'
notification:
$ref: '#/components/schemas/notification'
reference:
type: string
description: 'Reference of the payment request, it will appear on the payment page.
'
required:
- cart
- contactId
- reference
/payments/requests/{id}:
get:
operationId: getPaymentRequest
summary: Get payment request details
description: Retrieve the details of a specific payment request by its ID. The response includes the reference, status (created, sent, reminderSent, or paid), cart details, notification configuration, contact ID, and the number of reminders sent. Returns a `404` error if no payment request matches the provided ID.
tags:
- Payments
parameters:
- name: id
in: path
description: Id of the payment Request
required: true
schema:
type: string
- name: api-key
in: header
description: The API key should be passed in the request headers as `api-key` for authentication.
required: true
schema:
type: string
responses:
'200':
description: Payment request details
content:
application/json:
schema:
$ref: '#/components/schemas/Payments_getPaymentRequest_Response_200'
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/GetPaymentRequestRequestBadRequestError'
'401':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/GetPaymentRequestRequestUnauthorizedError'
'403':
description: Permission denied. Either you don't have access to Brevo Payments or your Brevo Payments account is not validated.
content:
application/json:
schema:
$ref: '#/components/schemas/errorModel'
'404':
description: Payment request not found.
content:
application/json:
schema:
$ref: '#/components/schemas/errorModel'
delete:
operationId: deletePaymentRequest
summary: Delete a payment request
description: Delete a payment request by its UUID. Once deleted, the payment request can no longer be accessed or paid. Returns a `404` error if no payment request matches the provided ID, and a `403` error if Brevo Payments is not activated or the account is not validated.
tags:
- Payments
parameters:
- name: id
in: path
description: ID of the payment request.
required: true
schema:
type: string
format: uuid
- name: api-key
in: header
description: The API key should be passed in the request headers as `api-key` for authentication.
required: true
schema:
type: string
responses:
'204':
description: Payment request deleted successfully.
content:
application/json:
schema:
type: object
properties: {}
'401':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePaymentRequestRequestUnauthorizedError'
'403':
description: Permission denied. Either you don't have access to Brevo Payments or your Brevo Payments account is not validated.
content:
application/json:
schema:
$ref: '#/components/schemas/errorModel'
'404':
description: Payment request not found.
content:
application/json:
schema:
$ref: '#/components/schemas/errorModel'
components:
schemas:
PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaStatus:
type: string
enum:
- created
- sent
- reminderSent
- paid
description: Status of the payment request.
title: PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaStatus
DeletePaymentRequestRequestUnauthorizedError:
type: object
properties:
code:
$ref: '#/components/schemas/PaymentsRequestsIdDeleteResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: DeletePaymentRequestRequestUnauthorizedError
PaymentsRequestsIdDeleteResponsesContentApplicationJsonSchemaCode:
type: string
enum:
- invalid_parameter
- missing_parameter
- out_of_range
- campaign_processing
- campaign_sent
- document_not_found
- not_enough_credits
- permission_denied
- duplicate_parameter
- duplicate_request
- method_not_allowed
- unauthorized
- account_under_validation
- not_acceptable
- bad_request
- unprocessable_entity
- Domain does not exist
- Contact email not found
- Attribute not found
- Category id not found
- Invalid parameters passed
- Record(s) for identifier not found
- Returned when query params are invalid
- Returned when invalid data posted
- Feed not found
- Campaign ID not found
- api-key not found
- DMARC policy requires domain authentication
- DNS records not properly configured
- Invalid OTP code provided
- OTP code has expired
- Domain already exists in your account
- The sum of all IP weights must equal 100
- Authentication failed
- Insufficient credits
- Request already processed
description: Error code displayed in case of a failure
title: PaymentsRequestsIdDeleteResponsesContentApplicationJsonSchemaCode
NotificationChannel:
type: string
enum:
- email
description: 'Channel used to send the notifications.
'
title: NotificationChannel
Payments_getPaymentRequest_Response_200:
type: object
properties:
cart:
$ref: '#/components/schemas/cart'
configuration:
$ref: '#/components/schemas/configuration'
contactId:
type: integer
format: int64
description: 'Brevo ID of the contact requested to pay.
'
notification:
$ref: '#/components/schemas/notification'
numberOfRemindersSent:
type: integer
format: int64
description: 'number of reminders sent.
'
reference:
type: string
description: 'Reference of the payment request, it will appear on the payment page.
'
status:
$ref: '#/components/schemas/PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaStatus'
description: Status of the payment request.
required:
- cart
- notification
- reference
- status
title: Payments_getPaymentRequest_Response_200
CreatePaymentRequestRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/PaymentsRequestsPostResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: CreatePaymentRequestRequestBadRequestError
PaymentsRequestsPostResponsesContentApplicationJsonSchemaCode:
type: string
enum:
- invalid_parameter
- missing_parameter
- out_of_range
- campaign_processing
- campaign_sent
- document_not_found
- not_enough_credits
- permission_denied
- duplicate_parameter
- duplicate_request
- method_not_allowed
- unauthorized
- account_under_validation
- not_acceptable
- bad_request
- unprocessable_entity
- Domain does not exist
- Contact email not found
- Attribute not found
- Category id not found
- Invalid parameters passed
- Record(s) for identifier not found
- Returned when query params are invalid
- Returned when invalid data posted
- Feed not found
- Campaign ID not found
- api-key not found
- DMARC policy requires domain authentication
- DNS records not properly configured
- Invalid OTP code provided
- OTP code has expired
- Domain already exists in your account
- The sum of all IP weights must equal 100
- Authentication failed
- Insufficient credits
- Request already processed
description: Error code displayed in case of a failure
title: PaymentsRequestsPostResponsesContentApplicationJsonSchemaCode
configuration:
type: object
properties:
customSuccessUrl:
type: string
format: url
description: 'Absolute URL of the custom success page.
'
required:
- customSuccessUrl
description: 'Optional. Redirect contact to a custom success page once payment is successful. If empty the default Brevo page will be displayed once a payment is validated
'
title: configuration
CartCurrency:
type: string
enum:
- EUR
description: 'Currency code for the payment amount.
'
title: CartCurrency
Payments_createPaymentRequest_Response_201:
type: object
properties:
id:
type: integer
format: int64
description: ID of the object created
url:
type: string
description: URL of the payment request created
required:
- id
title: Payments_createPaymentRequest_Response_201
CreatePaymentRequestRequestUnauthorizedError:
type: object
properties:
code:
$ref: '#/components/schemas/PaymentsRequestsPostResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: CreatePaymentRequestRequestUnauthorizedError
errorModel:
type: object
properties:
code:
type: string
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- message
title: errorModel
notification:
type: object
properties:
channel:
$ref: '#/components/schemas/NotificationChannel'
description: 'Channel used to send the notifications.
'
text:
type: string
description: 'Use this field if you want to give more context to your contact about the payment request.
'
required:
- channel
- text
description: 'Optional. Use this object if you want to let Brevo send an email to the contact, with the payment request URL. If empty, no notifications (message and reminders) will be sent.
'
title: notification
cart:
type: object
properties:
currency:
$ref: '#/components/schemas/CartCurrency'
description: 'Currency code for the payment amount.
'
specificAmount:
type: integer
format: int64
description: 'Payment amount, in cents. e.g. if you want to request €12.00, then the amount in cents is 1200.
'
required:
- currency
- specificAmount
description: 'Specify the payment currency and amount.
'
title: cart
GetPaymentRequestRequestUnauthorizedError:
type: object
properties:
code:
$ref: '#/components/schemas/PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: GetPaymentRequestRequestUnauthorizedError
PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaCode:
type: string
enum:
- invalid_parameter
- missing_parameter
- out_of_range
- campaign_processing
- campaign_sent
- document_not_found
- not_enough_credits
- permission_denied
- duplicate_parameter
- duplicate_request
- method_not_allowed
- unauthorized
- account_under_validation
- not_acceptable
- bad_request
- unprocessable_entity
- Domain does not exist
- Contact email not found
- Attribute not found
- Category id not found
- Invalid parameters passed
- Record(s) for identifier not found
- Returned when query params are invalid
- Returned when invalid data posted
- Feed not found
- Campaign ID not found
- api-key not found
- DMARC policy requires domain authentication
- DNS records not properly configured
- Invalid OTP code provided
- OTP code has expired
- Domain already exists in your account
- The sum of all IP weights must equal 100
- Authentication failed
- Insufficient credits
- Request already processed
description: Error code displayed in case of a failure
title: PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaCode
GetPaymentRequestRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/PaymentsRequestsIdGetResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: GetPaymentRequestRequestBadRequestError
securitySchemes:
api-key:
type: apiKey
in: header
name: api-key
description: The API key should be passed in the request headers as `api-key` for authentication.