Skip to main content
Accept Direct Carrier Billing (DCB) payments with Boku as the payment service provider (PSP). The customer confirms the first payment with a one-time password (OTP) sent to their phone. Payrails saves the Boku opt-in and charges later payments to the same carrier account without a new OTP.

Supported workflows

Before you begin

Complete these steps before you send your first DCB payment through Boku:
  1. Set up a Boku integration in your workspace. Contact your Payrails account team if Boku isn’t listed in your Payrails Portal yet.
  2. Ask Boku to enable DCB on your Boku merchant account for each country and carrier you plan to bill.
  3. In the Payrails Portal, go to Settings → Integrations, open your Boku integration, select DCB under Payment methods, and save.
  4. Add DCB as a payment option in your workflow.

Request fields for Boku

Send these fields in the authorize request, in addition to the standard authorize fields. Required fields must be present for the payment to succeed. Payrails sends Optional fields to the PSP when you include them.

Authorize a DCB payment

The first payment for a customer has two steps: authorize to start the opt-in, then confirm with the OTP.

Start the opt-in

Call authorize a payment with dcb as the paymentMethodCode. Set storeInstrument to true to reuse the opt-in for later payments.
Authorize request
Boku sends an OTP to the customer’s phone. The payment stays pending, and the response asks you to confirm it.

Confirm with the OTP

Collect the OTP from the customer, then call confirm a payment on the same execution. Send the OTP as data.otp:
Confirm request
Payrails validates the OTP with Boku, confirms the opt-in and charges the payment amount. When the charge succeeds, the payment is complete and Payrails saves the opt-in as a payment instrument.

Charge later payments

For a later payment, authorize with the saved instrument’s ID as paymentInstrumentId and set meta.order.processingType to Subscription or CardOnFile. Payrails charges the Boku opt-in directly. The customer doesn’t enter an OTP, and you don’t send a confirm request.
Authorize request
Confirm the result of each payment through webhook notifications or the execution status before you grant access.

How Boku handles DCB

  • Boku identifies the customer’s carrier during the opt-in. Payrails stores the carrier, the country and the mobile number on the saved instrument.
  • A first payment with a zero amount only creates the opt-in. Payrails confirms it with the OTP and charges nothing. Use it to start a free trial, then charge the first real amount later.
  • When you delete a saved DCB instrument, Payrails cancels the opt-in with Boku.
  • To refund a DCB payment, send meta.customer.country.code on the refund request too. Payrails uses it to reach the Boku endpoint for the country.
Last modified on October 5, 2026