> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Using Carrier Billing for One-Time Transactions

Subscribe supports BOKU as a payment processor for Carrier Billing. Work with your BOKU representative to define your pricing structures, and to configure your account as a sub-merchant to Vindicia.

Before processing BOKU Transactions, you must create one or more services on the BOKU website which define your pricing schedule(s). When constructing these services, the “Forward To After Purchase” and “Forward To After Failed Purchase” attributes for each service must point to URIs at your site. The “Callback Url” must point to Vindicia. (Work with your Vindicia Client Services representative to define this URL.)

BOKU-based real-time transactions use the following payment flow:

1. When a customer clicks the BOKU button on your site, create a `Transaction` object that specifies `CarrierBilling` as the payment method, and make a `Transaction.authCapture` call.

2. When that call returns, examine the status of the returned `Transaction` object. If the status is not a failure (`Cancelled`), it will be `AuthorizedPending`, which means that the Transaction is in the Subscribe and BOKU systems, and that it requires further action from the customer for completion.

3. The returned `Transaction` object will also include a `TransactionStatusCarrierBilling` subobject, which will include a `buyUrl` which the customer should be presented (or redirected to) in order to complete the transaction.

   **Note:** This `Transaction` includes the BOKU Transaction ID in the `nameValues` array (`name` = `provider_trx_id`), which will prove useful when correlating Transaction data between your site and BOKU/Vindicia.

4. Once the customer has followed the `buyUrl`, and completes the BOKU payment, they will be redirected to the “Forward To Url After Purchase” URL that you included in your BOKU Service Configuration (or the “Forward To Url After Failed Purchase” URL if the payment attempt fails).

5. You may verify the status of the `Transaction` by re-retrieving the Subscribe `Transaction` object, and verifying that the status is now `Captured`. (Note that there may be a delay between the time the payment process completes, and the time that BOKU notifies Vindicia about the status of the payment attempt.) You may also perform a `verify-trx-id` `dataRequest` call, which will retrieve the Transaction status information directly from BOKU (see below for details).

* **[BOKU Static Pricing Transactions](../topics/BOKU_Static_Pricing_Tran)**

* **[BOKU Dynamic Pricing Transactions](../topics/BOKU_Dynamic_Pricing_Tra)**

* **[Using Subscribe to query BOKU](../topics/Using_Subscribe_to_query)**

**Parent topic:**[Working with One-Time Transactions](../topics/ProgGuide_Transactions)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.