This page provides the complete reference for all delegate protocols, result types, and data models in the Bolt iOS SDK (BoltInternal).

BoltSimpleCheckoutDelegate

Implement this delegate when using startCheckout(config:delegate:) or BoltCheckoutViewController(config:delegate:).
CallbackParametersDescription
onCheckoutSuccess(result:)result: BoltCheckoutResultCalled 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: StringCalled when checkout fails due to a network error, payment decline, validation failure, or other unexpected issue.
onCheckoutCancel()(none)Called when the user dismisses the checkout UI. The order token remains valid for a subsequent attempt.

BoltCheckoutResult

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

Reconciliation Fields

FieldRole
cart?.orderReferenceBolt order reference string.
referenceTransaction reference from the payment processor.
merchantOrderNumberYour merchant-facing order number when Bolt provides it.
amountCharged totals: see BoltAmountView below.

Transaction Core

FieldTypeDescription
idStringTransaction ID.
typeStringTransaction type.
processorStringPayment processor identifier.
dateIntTransaction timestamp (Unix epoch milliseconds).
referenceStringTransaction reference.
statusStringOverall transaction status.
amountBoltAmountViewPrimary amount: use for display and reconciliation.

BoltAmountView

FieldTypeDescription
amountIntAmount in minor currency units (e.g. cents).
currencyStringISO 4217 code (e.g. "USD").
currencySymbolStringDisplay symbol (e.g. "$").

Parties and Payment Instruments

FieldTypeDescription
fromConsumerBoltConsumerView?Payer (id, email, firstName, lastName, phone).
toConsumerBoltConsumerView?Payee when applicable.
fromCreditCardBoltCreditCardView?Card used (id, last4, bin, expiration, network, billing address).
toCreditCardBoltCreditCardView?Destination card when applicable.
last4String?Last four digits of the card at the transaction level.

Authorization, Capture, and Risk

FieldTypeDescription
authorizationBoltAuthorizationView?status and reason for the auth decision.
captures[BoltCaptureView]?Capture records (status, amount as BoltAmountView).
creditBoltCreditView?Credit leg status when present.
transactionPropertiesBoltTransactionProperties?avsResult, cvvResult from the processor.
orderDecisionBoltOrderDecisionView?Fraud/order decision (score, decisionFactors).
riskScoreDouble?Risk score when provided.
customerListStatusBoltCustomerListStatus?autoApproved, blockListed.
indemnificationDecisionString?Indemnification decision when applicable.
indemnificationReasonString?Indemnification reason when applicable.
splits[BoltTransactionSplitView]?Split payouts (amount, type).
lastViewedUtcInt?Last viewed time (epoch ms).
viewStatusString?View/status string.
hasRefundsBool?Whether refunds exist on the transaction.

Addresses and Shipping

FieldTypeDescription
shippingAddressBoltAddressInput?Shipping address (names, street, locality, region, postal code, country, phone, email).
billingAddressBoltAddressInput?Billing address when distinct from shipping.
shippingOptionBoltShippingOption?Selected shipping option. When valid, value includes service, cost, reference, carrier, ETA, tax, and signature details.

Cart, Integrations, and Notes

FieldTypeDescription
cartBoltTransactionCart?orderReference, discounts (BoltCartDiscountView), items (BoltCartItemView).
shopifyBoltShopifyResponse?Shopify-hosted payment fields when applicable.
sfccBoltSfccOrderResponse?SFCC integration: sfccOrderToken when present.
customFieldResponses[BoltCustomFieldResponse]?Custom fields: publicId, response.
userNoteString?User-supplied order note when captured.

BoltLoginDelegate

Implement this delegate when using startLogin(delegate:) or BoltLoginViewController(delegate:).
CallbackParametersDescription
onLoginSuccess(authCode:codeVerifier:state:)authCode: String, codeVerifier: String, state: StringUser authenticated successfully. Send authCode and state to your backend for token exchange. When PKCE is enabled, also send codeVerifier.
onLoginError(errorReason:)errorReason: StringLogin 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 startPaymentFlow(delegate:) or BoltPaymentFlowViewController(delegate:). The payment flow is a standalone UI for collecting and tokenizing a payment method without running the full checkout.
CallbackParametersDescription
onPaymentFlowSuccess(paymentMethod:creditCard:)paymentMethod: BoltPaymentMethod, creditCard: BoltCreditCard?Card successfully tokenized. creditCard contains token, last4, network, expiration, and postal code.
onPaymentFlowError(errorReason:)errorReason: StringTokenization 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.
CallbackParametersDescription
onPaymentAuthorizationSuccess(orderReference:)orderReference: StringPayment authorized. Use the reference to confirm the order with your backend.
onPaymentAuthorizationFail(status:reason:)status: String, reason: StringAuthorization declined by the processor (e.g. insufficient funds, suspected fraud).
onPaymentAuthorizationError(errorReason:)errorReason: StringRequest failed before reaching the processor (e.g. network timeout, missing tokenized card).