Skip to main content

Pay charge (SDK)

POST/api/v1/bank/public/charge/{uuid}/pay
Public endpoint

This endpoint is called by the A55Pay SDK from the payer's browser. It does not require a Bearer token — the charge UUID acts as the authorization context. Your backend creates the charge first, then the frontend SDK calls this endpoint.


Request headers

HeaderValueRequired
Content-Typeapplication/jsonYes

Path parameters

FieldTypeRequiredDescription
uuidstring (UUID)YesCharge UUID returned by Create charge

Request body

FieldTypeRequiredDescription
card_numberstringYesCard PAN
card_namestringYesCardholder name
card_expiry_monthstringYesExpiry month MM
card_expiry_yearstringYesExpiry year YYYY
card_cvvstringYesCard verification value
payer_tax_idstringYesPayer tax ID (CPF, RFC, RUT)
device_infoobjectNoBrowser fingerprint for 3DS (see Create charge)

Response fields

FieldTypeDescription
charge_uuidstringCharge identifier
statusstringconfirmed, pending (3DS required), or error
url_3dsstring3DS challenge redirect URL (when status: "pending")
messagearray/nullError details when status: "error"

HTTP status codes

StatusDescription
200Payment processed or 3DS challenge initiated
400Invalid card data or missing required fields
404Charge not found or expired
409Charge already paid or cancelled
422Validation error (invalid card, expired)
429Rate limit exceeded
500Internal server error

Code examples

curl -s -X POST "https://core-manager.a55.tech/api/v1/bank/public/charge/a1b2c3d4-e5f6-7890-abcd-ef1234567890/pay" \
-H "Content-Type: application/json" \
-d '{
"card_number": "4024007153763191",
"card_name": "MARIA SILVA",
"card_expiry_month": "12",
"card_expiry_year": "2030",
"card_cvv": "123",
"payer_tax_id": "123.456.789-09"
}'

Error response example

{
"charge_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "error",
"message": [
{
"code": "CARD_DECLINED",
"source": "acquirer",
"description": "Transaction declined by issuing bank"
}
]
}