Create a new Payment Authorization
Changed onCreate a Payment Authorization. The request body depends on the payment_method. At present, only Smart Transfers (PIX_OF_SMART_TRANSFERS) is available. The Immediate (PIX_OF_IMMEDIATE) and Scheduled (PIX_OF_SCHEDULED) payment methods aren't available yet.
For Smart Transfers (PIX_OF_SMART_TRANSFERS):
- Create the authorization. The response includes payment_method_configuration.authorization_url.
- Redirect your user to the authorization_url to approve the authorization at their institution.
- Wait for the PAYMENT_AUTHORIZATION webhook with the status set to AUTHORIZED.
- Create each transfer with the Create a Charge endpoint.
To create a Smart Transfers authorization against a specific payer account, send payer.account_details (together with the required payer.institution). Your user can then only approve the authorization for that account. If you do not send it, your user selects the account at their institution.
{% admonition type="warning" name="Smart Transfers: same holder only" %} The beneficiary bank account must be held by the payer (the same CPF, or the same CNPJ root for businesses). Otherwise, the Payment Authorization is created with the FAILED status and the API returns a 500 error. {% /admonition %}
Request
- Base URLhttps://sandbox.belvo.com
- AuthHTTP basic
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Headers
Header indicating which version of the Payment API you want to use. Currently this is only applicable for Bank Accounts, Customers, and Payment Authorizations in Brazil. In the case that you are using our Payment Authorizations product (including Smart Transfers authorizations and their Charges), then you must send through this header set to Payments-BR.V2.
Request body
Example request
{
"payment_method": "PIX_OF_IMMEDIATE",
"description": "Blue Suede Shoes - Premium 3429123",
"external_id": "c169a8a9-e9f5-48db-9f4a-818caef9356b",
"return_url": "https://merchant.com/return",
"payer": {
"customer": {
"identifier": "12345678901",
"name": "João da Silva",
"external_id": "4b8a81a0-e33c-45a6-8567-479efb105f73"
},
"institution": "ef685cf7-d143-4671-a1e5-4d1d019a3f5c",
"representative_identifier": "12345678901234"
},
"beneficiary": {
"type": "BANK_ACCOUNT",
"target": {
"holder": {
"identifier": "12345678901122",
"name": "Frangos Enlatados"
},
"details": {
"account_type": "CHECKINGS",
"agency": "0444",
"institution": "f512d996-583a-4a91-8b5b-eba2e103b068",
"number": "457220"
},
"external_id": "4b8a81a0-e33c-45a6-8567-479efb105f73",
"metadata": {
"internal_reference_id": "GGq73487w2"
}
}
},
"payment_method_configuration": {
"amount": 10000.05,
"statement_description": "Blue Suede Shoes - Premium"
},
"metadata": {
"internal_reference_id": "GGq73487w2"
}
}Response
OK - Payment Authorization created
Example response
{
"id": "9fc68b84-f2d6-4142-b2ad-9d2d1ad70432",
"created_at": "2025-05-20T09:55:02Z",
"updated_at": "2025-05-20T09:55:02Z",
"status": "AWAITING_AUTHORIZATION",
"status_updated_at": "2025-05-20T09:55:02Z",
"authorized_at": "2025-05-20T09:55:02Z",
"external_id": "c169a8a9-e9f5-48db-9f4a-818caef9356b",
"description": "Internal description used by the merchant only",
"return_url": "https://merchant.com/return",
"expiration_date_time": "2027-10-31T23:59:59Z",
"payment_method": "PIX_OF_IMMEDIATE",
"payer": {
"customer": "533e7a9b-e6c7-4bd4-be79-3a3c3bd78044",
"institution": "770932b4-8f1f-4b0f-8470-1c605903fdb2",
"representative_identifier": "12345678901122",
"bank_account": {
"holder": {
"identifier": "***456789**"
},
"details": {
"account_type": "CHECKINGS",
"agency": "0001",
"code": "12345678",
"number": "***4567"
}
}
},
"beneficiary": {
"type": "BANK_ACCOUNT",
"target": "b6278377-f710-4d1a-a026-7bab757256d0"
},
"payment_method_configuration": {
"amount": "10000.05",
"statement_description": "Blue Suede Shoes - Premium",
"authorization_url": "https://auth.belvo.com/authorize?token=abc123def456"
},
"charges": [
"7d159b21-9f25-4365-9fa2-734d20797819"
],
"metadata": {
"internal_reference_id": "GGq73487w2"
}
}Changes
- breaking
the response property
/became nullable for the status - warning
added the new
PIX_OF_SMART_TRANSFERSenum value to theresponse property for the response status - info
added to the request body
oneOflist - info
added the optional property
to the response with the status - info
added the optional property
/to the response with the status - info
added to the
response propertyanyOflist for the response status - info
removed from the
response propertyoneOflist for the response status
- breaking