Skip to main content
dLocal is a global payments platform that helps you accept local payment methods and cards across emerging markets. Capitec is a bank payment method in South Africa. You can use it to accept bank-initiated payments through a hosted redirect flow, then track final payment outcomes through transaction polling or webhooks.

Setup

Please follow the common dLocal instructions to get set up with Capitec. Next, make sure to enable Capitec 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 ZA.

Supported currencies

dLocal supports processing payments in ZAR.

Integration

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

For Capitec, 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 = "ZAR",
        Country = "ZA",
        PaymentMethod =
            TransactionCreatePaymentMethod.CreateCheckoutSessionWithUrlPaymentMethodCreate(
                new RedirectPaymentMethodCreate()
                {
                    Method = "capitec",
                    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 to complete the payment. After approval the buyer returns 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).