API Reference
Complete API reference for the Bolt React Native SDK for Embeddable Checkout: exports, props, types, and error codes.
This SDK is for use with Bolt Embeddable Checkout. For the full backend API documentation, see the Embeddable Checkout API Reference.
Root Exports
Import from: @boltpay/react-native
| Export | Description |
|---|---|
Bolt | Client class. Takes { publishableKey, environment?, language? }. |
BoltProvider | React context provider. Wrap your app with <BoltProvider client={bolt}>. |
useBolt() | Hook to access the Bolt client from any component. |
bolt.configureOnPageStyles(styles) | Set global v3 styles applied to all elements. |
Payment Exports
Import from: @boltpay/react-native/payments
| Export | Description |
|---|---|
CreditCard.Component | WebView-based credit card input. |
CreditCard.useController(options?) | Returns a controller with tokenize(), on(), and setStyles(). |
useThreeDSecure() | Hook returning { Component, fetchReferenceID(), challengeWithConfig() }. |
ApplePay | Native PKPaymentButton (iOS only; renders nothing on Android). |
GoogleWallet | Native Google Pay PayButton (Android only; renders nothing on iOS). |
Credit Card Controller
| Method | Description |
|---|---|
tokenize() | Returns Promise<TokenResult | Error>. Never throws. |
on(event, callback) | Register event listener. Events: valid, error, blur, focus. |
setStyles(styles) | Update input field styles. |
3D Secure
| Method | Description |
|---|---|
fetchReferenceID(creditCardInfo) | Accepts TokenResult or CreditCardId. Returns Promise<string>. Throws ThreeDSError. |
challengeWithConfig(orderToken, config) | Returns Promise<ThreeDSResult>. Never throws. Check result.success. |
ApplePay Props
| Prop | Type | Default | Description |
|---|---|---|---|
config | ApplePayConfig | required | Country/currency, total amount, and optional merchant ID (mode='native' only). |
onComplete | (ApplePayResult) => void | required | Called with token, bin, expiration, and billing contact on success. |
onError | (Error) => void | : | Called on payment failure. |
mode | 'webview' | 'native' | 'webview' | 'webview' uses the Bolt-hosted iframe. 'native' uses PassKit. |
buttonType | ApplePayButtonType | 'plain' | Button label variant. Auto-localized by Apple. |
buttonStyle | 'black' | 'white' | 'whiteOutline' | 'black' | Button color theme. |
referrer | string | : | Merchant website URL. Required for mode='webview'. |
style | ViewStyle | : | Container style overrides. |
GoogleWallet Props
| Prop | Type | Default | Description |
|---|---|---|---|
config | GooglePayConfig | required | Presentation options: currency, amount, label, billing address format. Merchant config is auto-fetched from Bolt. |
onComplete | (GooglePayResult) => void | required | Called with token, bin, expiration, and billing address on success. |
onError | (Error) => void | : | Called on payment failure or cancellation. |
buttonType | GooglePayButtonType | 'plain' | Maps to ButtonConstants.ButtonType. Auto-localized. |
buttonTheme | GooglePayButtonTheme | 'dark' | 'dark' or 'light'. Maps to ButtonConstants.ButtonTheme. |
borderRadius | number | : | Corner radius in dp. |
style | ViewStyle | : | Container style overrides. |
Types
Import from: @boltpay/react-native/payments
Styles
type Styles = { [key: `--bolt-${string}`]: string };V3 CSS custom properties. See Styling for usage.
TokenResult
{
token?: string;
last4?: string;
bin?: string;
network?: string;
expiration?: string;
postal_code?: string;
}CreditCardId
{
id: string; // from Bolt's Add Card API
expiration: string;
}CreditCardInfo
type CreditCardInfo = CreditCardId | TokenResult;Input for fetchReferenceID().
ThreeDSConfig
{
referenceID: string;
jwtPayload: string;
stepUpUrl: string;
}ThreeDSResult
{
success: boolean;
error?: ThreeDSError;
}ThreeDSError
Error subclass with a numeric code property (1001–1010). See Error Codes below.
EventType
type EventType = 'error' | 'valid' | 'blur' | 'focus';ApplePayResult
{
token: string;
bin?: string;
expiration?: string;
billingContact?: object;
boltReference?: string;
}ApplePayButtonType
Apple-approved button label variants:
'plain' | 'buy' | 'checkout' | 'book' | 'subscribe' | 'donate' | 'order' | 'setUp' | 'inStore' | 'reload' | 'addMoney' | 'topUp' | 'rent' | 'support' | 'contribute' | 'tip'
ApplePayConfig
Apple Pay configuration including merchant ID (for native mode), country/currency, and total amount.
GooglePayResult
{
token: string;
bin?: string;
expiration?: string;
email?: string;
billingAddress?: object;
boltReference?: string;
}GooglePayButtonType
Google-approved button label variants:
'plain' | 'buy' | 'pay' | 'checkout' | 'subscribe' | 'donate' | 'order' | 'book'
GooglePayButtonTheme
'dark' | 'light'
GooglePayConfig
{
billingAddressCollectionFormat?: string;
currencyCode?: string;
label?: string;
amount?: string;
}Merchant and gateway config is auto-fetched from Bolt: you only provide presentation options.
Error Codes
ThreeDSError includes a numeric code property with the following values:
| Code | Description |
|---|---|
| 1001 | Credit card id or token must be supplied |
| 1002 | Credit card id and token cannot both be supplied |
| 1003 | Malformed credit card token |
| 1004 | Order token does not exist |
| 1005 | API response error during verification |
| 1006 | Verification not required |
| 1007 | Setup error during verification |
| 1008 | Authentication failed |
| 1009 | Failed to create challenge or challenge failed |
| 1010 | Failed to get device data collection jwt |