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
TokenResult
CreditCardId
CreditCardInfo
fetchReferenceID().
ThreeDSConfig
ThreeDSResult
ThreeDSError
Error subclass with a numericcode property (1001–1010). See Error Codes below.
EventType
ApplePayResult
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
GooglePayButtonType
Google-approved button label variants:'plain' | 'buy' | 'pay' | 'checkout' | 'subscribe' | 'donate' | 'order' | 'book'
GooglePayButtonTheme
'dark' | 'light'
GooglePayConfig
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 |