Skip to main content
dLocal is a global payments platform that helps you accept local payment methods and cards across emerging markets. Bre-B is a bank transfer payment method in Colombia.

Setup

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

Capabilities

Supported countries

Supported currencies

Integration

For Bre-B, 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 = "COP",
        Country = "CO",
        PaymentMethod =
            TransactionCreatePaymentMethod.CreateRedirectPaymentMethodCreate(
                new RedirectPaymentMethodCreate()
                {
                    Method = "breb",
                    Country = "CO",
                    Currency = "COP",
                    RedirectUrl = "https://example.com/callback",
                }
            ),
    }
);
amount := int64(1299)
currency := "COP"
country := "CO"
method := components.RedirectPaymentMethodCreateMethodBreb
redirectUrl := "https://example.com/callback"

redirectPaymentMethodCreate := components.RedirectPaymentMethodCreate{
    Method: method,
    Country: country,
    Currency: currency,
    RedirectURL: redirectUrl,
}
paymentMethod := components.CreateTransactionCreatePaymentMethodRedirectPaymentMethodCreate(redirectPaymentMethodCreate)

transactionCreate := components.TransactionCreate{
    Amount:        amount,
    Currency:      currency,
    Country:       &country,
    PaymentMethod: &paymentMethod,
}

transaction, err := client.Transactions.Create(ctx, transactionCreate, nil, nil, nil)
CreateTransactionResponse transactionResponse = gr4vyClient.transactions().create()
    .transactionCreate(TransactionCreate.builder()
        .amount(1299L)
        .currency("COP")
        .country("CO")
        .paymentMethod(TransactionCreatePaymentMethod.of(RedirectPaymentMethodCreate.builder()
            .method(RedirectPaymentMethodCreateMethod.BREB)
            .country("CO")
            .currency("COP")
            .redirectUrl("https://example.com/callback")
            .build()))
        .build())
    .call();

Transaction transaction = transactionResponse.transaction().orElse(null);
$transactionCreate = new TransactionCreate(
    amount: 1299,
    currency: 'COP',
    country: 'CO',
    paymentMethod: new RedirectPaymentMethodCreate(
        method: 'breb',
        country: 'CO',
        currency: 'COP',
        redirectUrl: 'https://example.com/callback'
    )
);
$response = self::$sdk->transactions->create($transactionCreate);
$transaction = $response->transaction;
transaction: models.Transaction = client.transactions.create(
    amount=1299,
    currency="COP",
    country="CO",
    payment_method={
        "method": "breb",
        "country": "CO",
        "currency": "COP",
        "redirect_url": "https://example.com/callback",
    }
)
const transaction = await gr4vy.transactions.create({
    amount: 1299,
    currency: "COP",
    country: "CO",
    paymentMethod: {
        method: "breb",
        country: "CO",
        currency: "COP",
        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).