Skip to main content
dLocal is a global payments platform that helps you accept local payment methods and cards across emerging markets. PIX is Brazil’s instant payment system, created by the Central Bank of Brazil, enabling real-time transfers and payments 24/7.

Setup

Please follow the common dLocal instructions to get set up with PIX. Next, make sure to enable PIX as a payment method on your configured account.

Features

  • Tokenization - Save payment methods for future use
  • Partial refunds - Refund a portion of the captured amount
  • Refunds - Full refund support
  • Settlement reporting - Access to settlement reports
  • Transaction sync - Automatic transaction status synchronization

Supported countries

dLocal supports transactions from buyers in BR.

Supported currencies

dLocal supports processing payments in BRL.

Limitations

  • Capture - Delayed capture is not supported
  • Delete tokens - Token deletion is not supported
  • Void - Transaction void is not supported

Integration

For PIX, the default integration is through a redirect to a hosted payments page. Start by creating a new transaction with the following required fields.
var transaction = await client.Transactions.CreateAsync(
    transactionCreate: new TransactionCreate()
    {
        Amount = 1299,
        Currency = "BRL",
        Country = "BR",
        PaymentMethod =
            TransactionCreatePaymentMethod.CreateCheckoutSessionWithUrlPaymentMethodCreate(
                new RedirectPaymentMethodCreate()
                {
                    Method = "pix",
                    RedirectUrl = "https://example.com/callback",
                }
            ),
    }
);
After the transaction is created, the API response includes payment_method.approval_url and the status is set to buyer_approval_pending. Redirect the buyer to the approval_url so they can complete the payment. After approval the buyer is redirected to the redirect_url you provided when creating the transaction. Do not rely solely on the redirect - either poll the transaction or (recommended) rely on webhooks to detect the final status (for example capture_succeeded or failure states).