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 currenciesBRL
Consumer currenciesBRL
Minimum payment amount0.00 BRL
Maximum payment amountVaries by card issuer
Payment instrumentCARD_PPRO_VAULTED
Network tokensYes
Recurring paymentsYes
Separate capturesYes
InstallmentsYes
ValidationYes
RefundFull - Partial - Multiple
Refund validity180 days
Authorization reversalYes
Authorization validity7 days
EMV 3-D SecureNo
DisputesYes
Settlement riskNo

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 FieldDescription
paymentMethodCARD
amount.valueThe amount to be paid in the smallest units of the currency used.
amount.currencyBRL
consumer.nameFull name of the consumer.
consumer.countryThe country where the consumer is shopping.
consumer.taxIdentificationThe consumer’s tax identification number. See the section Consumer Tax Identification for more details.
instrument.typeRAW_CARD
instrument.details.brand
(optional)

AMEX DINERS DISCOVER ELO HIPERCARD MASTER VISA

The brand field is optional. Only use one of the values listed above. If the card’s brand is not included in this list or is unknown, do not include the brand field.

instrument.details.numberThe primary account number (PAN) of the card used for payment.
instrument.details.cvvCard 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.holderNameThe full name of the cardholder as it appears on the card.
instrument.details.expiryMonthThe one to two-digit expiration month of the card.
instrument.details.expiryYearThe 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

📘

Note

Please 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

  1. Once the payment has been successfully AUTHORIZED you can present the payment outcome to the consumer.
  2. The payment charge status will be in CAPTURE_PENDING or CAPTURED depending if autoCapture was applied or not. If required, Capture the payment charge.