Brazil Local Acquiring
Integrate Brazil Local Acquiring and have access to a consumer base of over 200 million in Latin America's largest economy. PPRO processes all major domestic and international card brands on local payment rails offering both local and international settlement options for wherever your business is located. Learn more.
Payment method properties
| Markets (consumer) | BR |
| Processing currencies | BRL |
| Consumer currencies | BRL |
| Minimum payment amount | 0.00 BRL |
| Maximum payment amount | Varies by card issuer |
| Payment instrument | CARD_PPRO_VAULTED |
| Network tokens | Yes |
| Recurring payments | Yes |
| Separate captures | Yes |
| Installments | Yes |
| Validation | Yes |
| Refund | Full - Partial - Multiple |
| Refund validity | 180 days |
| Authorization reversal | Yes |
| Authorization validity | 7 days |
| EMV 3-D Secure | No |
| Disputes | Yes |
| Settlement risk | No |
Make a card payment
To create a one-time card payment, you'll need to provide the following data when calling our payment charges api:
| Data Field | Description |
|---|---|
paymentMethod | CARD |
amount.value | The amount to be paid in the smallest units of the currency used. |
amount.currency | BRL |
consumer.name | Full name of the consumer. |
consumer.country | The country where the consumer is shopping. |
consumer.taxIdentification | The consumer’s tax identification number. See the section Consumer Tax Identification for more details. |
instrument.type | RAW_CARD |
instrument.details.brand(optional) |
The |
instrument.details.number | The primary account number (PAN) of the card used for payment. |
instrument.details.cvv | Card verification value (CVV) A security code used to verify that the card is in the consumer's possession and to authenticate the card during authorization. |
instrument.details.holderName | The full name of the cardholder as it appears on the card. |
instrument.details.expiryMonth | The one to two-digit expiration month of the card. |
instrument.details.expiryYear | The four-digit expiration year of the card. |
Request
POST /v1/payment-charges
{
"paymentMethod": "CARD",
"amount": {
"value": 10000,
"currency": "BRL"
},
"consumer": {
"country": "BR",
"name": "John Smith",
"taxIdentification": "12345678909"
},
"instrument": {
"type": "RAW_CARD",
"details": {
"brand": "VISA",
"number": "4444333322221111",
"cvv": "1213",
"holderName": "John Smith",
"expiryMonth": 2,
"expiryYear": 2030
}
}
}Response:
{
"id": "charge_fSGy2fA1VrUqcvHguzhs2",
"paymentMethod": "CARD",
"paymentMedium": "ECOMMERCE",
"scheduleType": "UNSCHEDULED",
"instrumentId": "instr_W25IqhYRKibOc50fSeiF7",
"instrumentUpdated": false,
"currency": "BRL",
"country": "BR",
"status": "CAPTURE_PENDING",
"consumer": {
"name": "John Smith",
"country": "BR",
"taxIdentification": "12345678909"
},
"authorizations": [
{
"id": "authz_nEhc9PhEZ0kBEtG2hyv01",
"amount": 10000,
"status": "AUTHORIZED",
"schemeAuthorizationReference": "060720116005060",
"createdAt": "2025-10-24T13:17:06.799Z",
"updatedAt": "2025-10-24T13:17:06.799Z"
}
],
"captures": [],
"refunds": [],
"discards": [],
"voids": [],
"createdAt": "2025-10-24T13:17:06.179Z",
"updatedAt": "2025-10-24T13:17:06.799Z",
"_links": {
"authorizations": {
"href": "/v1/payment-charges/charge_fSGy2fA1VrUqcvHguzhs2/authorizations"
},
"captures": {
"href": "/v1/payment-charges/charge_fSGy2fA1VrUqcvHguzhs2/captures"
},
"refunds": {
"href": "/v1/payment-charges/charge_fSGy2fA1VrUqcvHguzhs2/refunds"
},
"discards": {
"href": "/v1/payment-charges/charge_fSGy2fA1VrUqcvHguzhs2/discards"
},
"voids": {
"href": "/v1/payment-charges/charge_fSGy2fA1VrUqcvHguzhs2/voids"
}
}
}Consumer Tax Identification
Requires customer ID: CPF or CNPJ
CPF
- CPF (Cadastro de Pessoas Físicas – Natural Persons Register) is a number attributed by the Brazilian revenue agency (Receita Federal ‐ Federal Revenue) to both Brazilians and foreigners who pay taxes or take part directly or indirectly in activities resulting in revenues.
- The CPF has a format of 9-2 digits, separated by dots and hyphen “- “.
Examples of valid CPF numbers:
123.456.789‐09
284.763.786‐96
804.654.341‐18
NotePlease note that dots and hyphen must not be sent, otherwise it will be considered invalid.
The parameter where the CPF information must be sent is:
Credit card:
customer.taxIdentification=12345678909
Validation
Validating the CPF results in higher authorization rates, therefore it is recommended to validate on merchants billing page before submitting to PPRO.
The following pseudocode can be used for validation:
function ValidateCPF(cpf: int[11])
var v: int[2]
//Note: compute 1st verification digit.
v[1] \:= 10×cpf[1] + 9×cpf[2] + 8×cpf[3]
v[1] += 7×cpf[4] + 6×cpf[5] + 5×cpf[6]
v[1] += 4×cpf[7] + 3×cpf[8] + 2×cpf[9]
v[1] \:= 11 ‐ v[1] mod 11 v[1] \:= 0 if v[1] ≥ 10
//Note: compute 2nd verification digit.
v[2] \:= 11×cpf[1] + 10×cpf[2] + 9×cpf[3]
v[2] += 8×cpf[4] + 7×cpf[5] + 6×cpf[6]
v[2] += 5×cpf[7] + 4×cpf[8] + 3×cpf[9]
v[2] += 2×v[1]
v[2] \:= 11 ‐ v[2] mod 11
v[2] \:= 0 if v[2] ≥ 10
//Note: True if verification digits are as expected.
return v[1] = cpf[10] and v[2] = cpf[11]CNPJ
- The CNPJ (Cadastro Nacional da Pessoa Juridica – National Legal Person Register) is a unique Identification number attributed by the Brazilian revenue agency (Receita Federal). The registry is mandatory and entitles the entity to conclude contracts and legal proceedings. The CNPJ is stated on all receipts as well as packages of industrial products.
Examples of a typical CNPJ number:
03.847.655/0001-98
74.880.010/0001-04
58.520.485/0001-24
The parameter where the CNPJ information must be sent is:
Credit card:
customer.taxIdentification=03847655000128
Validation
Validating the CNPJ results in higher authorization rates, therefore it is recommended to validate on merchants billing page before submitting to PPRO.
The following pseudocode can be used for validation:
function ValidarCNPJ(cnpj: int[14]) ‐ bool
var v: int[2]
//Note: Compute first verification digit.
v[1] \:= 5×cnpj[1] + 4×cnpj[2] + 3×cnpj[3] + 2×cnpj[4]
v[1] += 9×cnpj[5] + 8×cnpj[6] + 7×cnpj[7] + 6×cnpj[8]
v[1] += 5×cnpj[9] + 4×cnpj[10] + 3×cnpj[11] + 2×cnpj[12]
v[1] \:= 11 ‐ v[1] mod 11
v[1] \:= 0 if v[1] ≥ 10
//Note: Compute second verification digit.
v[2] \:= 6×cnpj[1] + 5×cnpj[2] + 4×cnpj[3] + 3×cnpj[4]
v[2] += 2×cnpj[5] + 9×cnpj[6] + 8×cnpj[7] + 7×cnpj[8]
v[2] += 6×cnpj[9] + 5×cnpj[10] + 4×cnpj[11] + 3×cnpj[12]
v[2] += 2×v[1]
v[2] \:= 11 ‐ v[2] mod 11
v[2] \:= 0 if v[2] ≥ 10
// Note: True if verification digits are as expected.
return v[1] = cnpj[13] and v[2] = cnpj[14]Handling the payment response
- Once the payment has been successfully
AUTHORIZEDyou can present the payment outcome to the consumer. - The payment charge status will be in
CAPTURE_PENDINGorCAPTUREDdepending ifautoCapturewas applied or not. If required, Capture the payment charge.
Updated about 10 hours ago