API Reference
Complete API reference for the Bolt Android SDK — delegates, result types, callbacks, and data models.

This page provides the complete reference for all delegate interfaces, result types, and data models in the Bolt Android SDK (com.bolt:checkout). The SDK is available on Maven Central.

BoltCheckoutDelegate

Implement this delegate when using getBoltCheckoutActivityResultLauncher().

Terminal Callbacks (Required)

Callback Parameters Description
onCheckoutSuccess(result) result: BoltCheckoutResult Called when the user completes checkout and payment is authorized. Use result.cart?.orderReference, result.reference, and result.merchantOrderNumber to reconcile with your backend.
onCheckoutError(errorReason) errorReason: String Called when checkout fails due to a network error, payment decline, validation failure, or other unexpected issue.
onCheckoutCancel() (none) Called when the user intentionally dismisses the checkout UI. The order token remains valid for a subsequent attempt.

Lifecycle Callbacks (Optional)

These default to no-op and are useful for analytics:

Callback Parameters Description
onCheckoutStart() (none) Checkout flow started and the UI is presented.
onEmailEnter(email) email: String User entered and validated their email address.
onShippingDetailsComplete(address) address: BoltShippingAddress Shipping address validated.
onShippingOptionsComplete() (none) User selected a delivery option and proceeded to payment.
onPaymentSubmit() (none) User tapped the pay button.
onCartLoaded() (none) Cart loaded and checkout page is ready. WebView mode only.
onNotify(eventName, eventSeverity) eventName: String, eventSeverity: String Checkout page emitted a notification event. WebView mode only.

Bidirectional Callbacks (Optional, Suspend — WebView Mode Only)

These are request/response callbacks: the checkout WebView sends a request and waits for your app to respond. Both are suspend functions, so you can perform async work before returning.

Callback Return Type Description
check() Boolean Called before checkout opens. Return true to proceed, false to cancel (e.g. cart validation failed). Defaults to true.
fetchShippingOptions(address) BoltFrontendShippingAndTaxResult? Called when the user enters a shipping address. Return shipping options and tax, or null to fall back to backend-managed shipping. Defaults to null.

BoltCheckoutResult

onCheckoutSuccess receives a BoltCheckoutResult that mirrors Bolt’s ClientTransactionView. All fields are optional where the type allows null.

Reconciliation Fields

Field Role
cart?.orderReference Bolt order reference string.
reference Transaction reference from the payment processor.
merchantOrderNumber Your merchant-facing order number when Bolt provides it.
amount Charged totals — see BoltAmountView below.

Transaction Core

Field Type Description
id String Transaction ID.
type String Transaction type.
processor String Payment processor identifier.
date Long Transaction timestamp (Unix epoch milliseconds).
reference String Transaction reference.
status String Overall transaction status.
amount BoltAmountView Primary amount — use for display and reconciliation.

BoltAmountView

Field Type Description
amount Long Amount in minor currency units (e.g. cents).
currency String ISO 4217 code (e.g. "USD").
currencySymbol String Display symbol (e.g. "$").

Parties and Payment Instruments

Field Type Description
fromConsumer BoltConsumerView? Payer (id, email, firstName, lastName, phone).
toConsumer BoltConsumerView? Payee when applicable.
fromCreditCard BoltCreditCardView? Card used (id, last4, bin, expiration, network, billing address).
toCreditCard BoltCreditCardView? Destination card when applicable.
last4 String? Last four digits of the card at the transaction level.

Authorization, Capture, and Risk

Field Type Description
authorization BoltAuthorizationView? status and reason for the auth decision.
captures List<BoltCaptureView>? Capture records (status, amount as BoltAmountView).
credit BoltCreditView? Credit leg status when present.
transactionProperties BoltTransactionProperties? avsResult, cvvResult from the processor.
orderDecision BoltOrderDecisionView? Fraud/order decision (score, decisionFactors).
riskScore Double? Risk score when provided.
customerListStatus BoltCustomerListStatus? autoApproved, blockListed.
indemnificationDecision String? Indemnification decision when applicable.
indemnificationReason String? Indemnification reason when applicable.
splits List<BoltTransactionSplitView>? Split payouts (amount, type).
lastViewedUtc Long? Last viewed time (epoch ms).
viewStatus String? View/status string.
hasRefunds Boolean? Whether refunds exist on the transaction.

Addresses and Shipping

Field Type Description
shippingAddress BoltAddressInput? Shipping address (names, street, locality, region, postal code, country, phone, email).
billingAddress BoltAddressInput? Billing address when distinct from shipping.
shippingOption BoltShippingOption? Selected shipping option. When valid, value includes service, cost, reference, carrier, ETA, tax, and signature details.

NOTE

BoltShippingOption is the checkout success parcelable (selected shipment on the transaction). It is not the same type as BoltFrontendShippingOption, which is only used in fetchShippingOptions.

Cart, Integrations, and Notes

Field Type Description
cart BoltTransactionCart? orderReference, discounts (BoltCartDiscountView), items (BoltCartItemView).
shopify BoltShopifyResponse? Shopify-hosted payment fields when applicable.
sfcc BoltSfccOrderResponse? SFCC integration — sfccOrderToken when present.
customFieldResponses List<BoltCustomFieldResponse>? Custom fields: publicId, response.
userNote String? User-supplied order note when captured.

BoltLoginDelegate

Implement this delegate when using getLoginActivityResultLauncher().

Callback Parameters Description
onLoginSuccess(authCode, codeVerifier, state) authCode: String, codeVerifier: String, state: String User authenticated successfully. Send authCode and state to your backend for token exchange.
onLoginError(errorReason) errorReason: String Login failed (network error, invalid session, or user denied permissions).
onLoginCancel() (none) User dismissed the login screen. No partial session is created.

BoltPaymentFlowDelegate

Implement this delegate when using getPaymentFlowActivityResultLauncher(). The payment flow is a standalone UI for collecting and tokenizing a payment method without running the full checkout.

Callback Parameters Description
onPaymentFlowSuccess(paymentFlowMethod, creditCard) paymentFlowMethod: BoltPaymentMethod, creditCard: BoltCreditCard? Card successfully tokenized. creditCard contains token, last4, network, expiration, and postal code.
onPaymentFlowError(errorReason) errorReason: String Tokenization or network failure.
onPaymentFlowCancel() (none) User dismissed the payment collection screen.

BoltPaymentAuthorizationDelegate

Implement this delegate when calling authorizePayment(). Used in custom checkout flows where you collected a card via the payment flow.

Callback Parameters Description
onPaymentAuthorizationSuccess(orderReference) orderReference: String Payment authorized. Use the reference to confirm the order with your backend.
onPaymentAuthorizationFail(status, reason) status: String, reason: String Authorization declined by the processor (e.g. insufficient funds, suspected fraud).
onPaymentAuthorizationError(errorReason) errorReason: String Request failed before reaching the processor (e.g. network timeout, missing tokenized card).

Shipping Types

BoltFrontendShippingOption

Each entry in BoltFrontendShippingAndTaxResult.shippingOptions:

Field Type Description
service String Human-readable shipping method name (e.g. "Standard Shipping").
cost Long Shipping cost in minor currency units (cents).
currency String ISO 4217 currency code. Defaults to "USD".
reference String Opaque identifier for this option, passed back to the backend. May be empty.
carrier String Carrier name (e.g. "FedEx"). May be empty.
estimatedDeliveryDate String Estimated delivery date string (e.g. "2026-04-14"). May be empty.
taxAmount Long Per-option shipping tax in cents. Defaults to 0.

BoltFrontendShippingAndTaxResult

Return type for fetchShippingOptions:

Field Type Description
shippingOptions List<BoltFrontendShippingOption> Available shipping options to display in checkout.
taxAmount Long Cart-level tax amount in cents (product tax, not shipping tax). Defaults to 0.
taxCurrency String ISO 4217 currency code for taxAmount. Defaults to "USD".
sdk android kotlin api reference