Brazil / Food vouchers
Support food voucher payments for Brazil’s benefit card programs.
Food vouchers acceptance in Brazil
Brazil has a well-established market for employee benefit cards linked to the PAT Program (Programa de Alimentação do Trabalhador). The program encourages companies to provide prepaid cards for food-related expenses, offering tax advantages and supporting employee well-being.
Acceptance of these cards is restricted by a merchant's business type, which is validated by their tax ID (CNPJ). dLocal's platform supports processing these cards for marketplaces, but each individual restaurant or supermarket must be onboarded through dLocal platform API.
Onboarding a client
To enable a sub-merchant (restaurant, supermarket, etc.) to accept benefit cards, they must first be created on the dLocal platform via the Create a Client API. Each successful creation returns a unique dLocal client ID, which must be used for all subsequent payment processing for that sub-merchant.
Create a client
This endpoint is used to create a new sub-merchant client on the dLocal platform.
Request fields
Field | Required | Type | Description |
---|---|---|---|
tax_id | Yes | String | The client's Brazilian tax number (CNPJ). |
external_reference | Yes | String | A unique ID for the client from your internal system (Length ≤ 100). |
name | Yes | String | The client's name (Length ≤ 100). |
country | Yes | String | The client's country. Must be BR. |
set_up.payment_methods.payment_method_id | Yes | String | The ID of the benefit card provider to enable. Possible values: LO , VR , UL , TI . |
set_up.payment_methods.enabled | Yes | Boolean | Set to true to enable the payment method. |
notification_url | No | String | URL for dLocal to send client status and payment method status notifications. |
Example request
{
"tax_id": "27327331561",
"external_reference": "rest12345",
"name": "Restaurant Name",
"country": "BR",
"set_up": {
"payment_methods": [
{
"payment_method_id": "VR",
"enabled": true
},
{
"payment_method_id": "LO",
"enabled": true
}
]
},
"notification_url": "http://merchantsite.com/notifications"
}
Onboarding Status
The client and their payment methods will have statuses that change as the onboarding process progresses. Webhooks will be sent to the notification_url
upon these changes.
Client statuses
CREATING
(300)APPROVED
(200): When at least one provider is approved.CANCELLED
(601, 602)
Payment method statuses
CREATING
(300)PENDING
(103)APPROVED
(200): The client is ready to process payments with this method.REJECTED
(500)
Example client status notification:
{
"id": "CL-84e33f3f-e89b-4450-9098-242edb6a0fb7",
"event_type": "CLIENT_STATUS_UPDATE",
"payload": {
"status": "APPROVED",
"status_code": 200,
"status_detail": "approved"
}
}
Processing payments
dLocal acts as a gateway, routing payment details and the sub-merchant's credentials to the corresponding benefit card company.
Request parameters
The following parameters are used when submitting a payment request to the dLocal Payments API.
Field | Required | Type | Description |
---|---|---|---|
amount | Yes | Number | Amount to be charged. |
currency | Yes | String | Must be BRL . Transaction currency in ISO 4217 . |
country | Yes | String | Must be BR . Transaction country in ISO 3166 . |
payment_method_id | Yes | String | The ID of the selected benefit card: UL , LO , TI , VR . |
payment_method_flow | Yes | String | Must be DIRECT . |
payer.name | Yes | String | Name of the payer (Length ≤ 200). |
submerchant.merchant_reference | Yes | String | The external_reference provided during client creation. |
card.holder_name | Yes | String | Cardholder's full name. |
card.expiration_month | Yes | int32 | Card's expiration month. |
card.expiration_year | Yes | int32 | Card's expiration year. |
card.number | Yes | String | Card number without separators. |
card.cvv | No | String | Card verification value (required for VR ). |
Example request
{
"amount": 100.00,
"currency": "BRL",
"country": "BR",
"payment_method_id": "VR",
"payment_method_flow": "DIRECT",
"payer": {
"name": "John Doe"
},
"submerchant": {
"merchant_reference": "rest12345"
},
"card": {
"holder_name": "John Doe",
"expiration_month": 12,
"expiration_year": 2025,
"number": "1234567890123456",
"cvv": "123"
}
}
Updated 1 day ago