Bolt Financial Payments API
Use the Payments API to process credit card and alternative payment methods with Bolt.
Use the Payments API to process credit card and alternative payment methods with Bolt.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/bolt-financial-payments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 3.3.22
title: Bolt API Reference Payments API
description: A comprehensive Bolt API reference for interacting with Accounts, Payments, Orders and more.
termsOfService: https://www.boltapp.com/end-user-terms
contact:
name: Bolt
email: merchantsupport@boltapp.com
url: https://help.boltapp.com/api-bolt/
servers:
- url: https://{environment}.boltapp.com/v3
variables:
environment:
enum:
- api
- api-sandbox
default: api-sandbox
tags:
- name: Payments
description: Use the Payments API to process credit card and alternative payment methods with Bolt.
paths:
/payments:
post:
summary: Initialize a Bolt payment for logged in shoppers
operationId: paymentsInitialize
x-speakeasy-group: Payments.LoggedIn
x-speakeasy-name-override: Initialize
description: 'Initialize a Bolt logged-in shopper''s intent to pay for a cart, using the specified payment method. Payments must be finalized before indicating the payment result to the shopper. Some payment methods will finalize automatically after initialization. For these payments, they will transition directly to "finalized" and the response from Initialize Payment will contain a finalized payment.
'
tags:
- Payments
security:
- oauth:
- bolt.account.manage
api-key: []
parameters:
- $ref: '#/components/parameters/x-publishable-key'
- $ref: '#/components/parameters/x-merchant-client-id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/payment-initialize-request'
examples:
reference:
$ref: '#/components/examples/payment-initialize-payment-method-reference'
credit_card:
$ref: '#/components/examples/payment-initialize-payment-method-credit-card'
paypal:
$ref: '#/components/examples/payment-initialize-payment-method-paypal'
responses:
'200':
description: The payment was successfully initialized, and was either immediately finalized or is pending
content:
application/json:
schema:
$ref: '#/components/schemas/payment-response'
examples:
finalized:
$ref: '#/components/examples/payment-response-finalized'
pending:
$ref: '#/components/examples/payment-response-pending'
4XX:
$ref: '#/components/responses/response-payment-error'
default:
$ref: '#/components/responses/response-default'
/payments/{id}:
post:
summary: Finalize a pending payment
operationId: paymentsAction
x-speakeasy-group: Payments.LoggedIn
x-speakeasy-name-override: PerformAction
description: Finalize a pending payment being made by a Bolt logged-in shopper. Upon receipt of a finalized payment result, payment success should be communicated to the shopper.
tags:
- Payments
security:
- oauth:
- bolt.account.manage
api-key: []
parameters:
- $ref: '#/components/parameters/x-publishable-key'
- $ref: '#/components/parameters/x-merchant-client-id'
- in: path
name: id
schema:
type: string
example: iKv7t5bgt1gg
required: true
description: The ID of the payment to operate on
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/payment-action-request'
responses:
'200':
description: The action was successfully applied to the pending payment
content:
application/json:
schema:
$ref: '#/components/schemas/payment-response'
examples:
finalized:
$ref: '#/components/examples/payment-response-finalized'
4XX:
$ref: '#/components/responses/response-4xx'
default:
$ref: '#/components/responses/response-default'
/guest/payments:
post:
summary: Initialize a Bolt payment for guest shoppers
operationId: guestPaymentsInitialize
x-speakeasy-group: Payments.Guest
x-speakeasy-name-override: Initialize
description: Initialize a Bolt guest shopper's intent to pay for a cart, using the specified payment method. Payments must be finalized before indicating the payment result to the shopper. Some payment methods will finalize automatically after initialization. For these payments, they will transition directly to "finalized" and the response from Initialize Payment will contain a finalized payment.
tags:
- Payments
security:
- api-key: []
parameters:
- $ref: '#/components/parameters/x-publishable-key'
- $ref: '#/components/parameters/x-merchant-client-id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/guest-payment-initialize-request'
examples:
credit_card:
$ref: '#/components/examples/payment-initialize-guest-payment-method-credit-card'
paypal:
$ref: '#/components/examples/payment-initialize-guest-payment-method-paypal'
responses:
'200':
description: The payment was successfully initialized, and was either immediately finalized or is pending
content:
application/json:
schema:
$ref: '#/components/schemas/payment-response'
examples:
finalized:
$ref: '#/components/examples/payment-response-finalized'
pending:
$ref: '#/components/examples/payment-response-pending'
4XX:
$ref: '#/components/responses/response-payment-error'
default:
$ref: '#/components/responses/response-default'
/guest/payments/{id}:
post:
summary: Finalize a pending guest payment
operationId: guestPaymentsAction
x-speakeasy-group: Payments.Guest
x-speakeasy-name-override: PerformAction
description: Finalize a pending payment being made by a Bolt guest shopper. Upon receipt of a finalized payment result, payment success should be communicated to the shopper.
tags:
- Payments
security:
- api-key: []
parameters:
- $ref: '#/components/parameters/x-publishable-key'
- $ref: '#/components/parameters/x-merchant-client-id'
- in: path
name: id
schema:
type: string
example: iKv7t5bgt1gg
required: true
description: The ID of the guest payment to operate on
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/payment-action-request'
responses:
'200':
description: The action was successfully applied to the pending guest payment
content:
application/json:
schema:
$ref: '#/components/schemas/payment-response'
4XX:
$ref: '#/components/responses/response-4xx'
default:
$ref: '#/components/responses/response-default'
components:
examples:
payment-response-pending:
summary: The payment is pending and further action is required
value:
.tag: pending
id: iKv7t5bgt1gg
status: awaiting_user_confirmation
action: redirect
url: https://www.paypal.com/checkout/redirect
payment-initialize-guest-payment-method-paypal:
summary: Payment using a PayPal account
value:
profile:
create_account: true
first_name: Alice
last_name: Baker
email: alice@example.com
phone: '+14155550199'
cart:
total:
units: 9000
currency: USD
tax:
units: 100
currency: USD
order_reference: order_100
order_description: 'Order #1234567890'
display_id: '215614191'
items:
- name: Bolt Swag Bag
reference: item_100
description: Large tote with Bolt logo.
total_amount:
units: 9000
currency: USD
unit_price: 1000
quantity: 9
image_url: https://www.example.com/products/123456/images/1.png
shipments:
- cost:
units: 10000
currency: USD
carrier: FedEx
address:
.tag: explicit
first_name: Alice
last_name: Baker
street_address1: 535 Mission St, Ste 1401
locality: San Francisco
postal_code: '94105'
region: CA
country_code: US
discounts:
- amount:
units: 10000
currency: USD
code: SUMMER10DISCOUNT
details_url: https://www.example.com/SUMMER-SALE
payment_method:
.tag: paypal
success_url: https://www.example.com/paypal-callback/success
cancel_url: https://www.example.com/paypal-callback/cancel
payment-initialize-payment-method-paypal:
summary: Payment using a PayPal account
value:
cart:
total:
units: 9000
currency: USD
tax:
units: 100
currency: USD
order_reference: order_100
order_description: 'Order #1234567890'
display_id: '215614191'
items:
- name: Bolt Swag Bag
reference: item_100
description: Large tote with Bolt logo.
total_amount:
units: 9000
currency: USD
unit_price: 1000
quantity: 9
image_url: https://www.example.com/products/123456/images/1.png
shipments:
- cost:
units: 10000
currency: USD
carrier: FedEx
address:
.tag: explicit
first_name: Alice
last_name: Baker
street_address1: 535 Mission St, Ste 1401
locality: San Francisco
postal_code: '94105'
region: CA
country_code: US
discounts:
- amount:
units: 10000
currency: USD
code: SUMMER10DISCOUNT
details_url: https://www.example.com/SUMMER-SALE
payment_method:
.tag: paypal
success_url: https://www.example.com/paypal-callback/success
cancel_url: https://www.example.com/paypal-callback/cancel
payment-response-finalized:
summary: The payment is final and a transaction record has been created
value:
.tag: finalized
id: iKv7t5bgt1gg
status: success
transaction:
reference: OBYG-X1PX-FN55
authorizations:
- processor_reference: 123456789XYZ
payment-initialize-payment-method-reference:
summary: Payment using an existing payment method saved on the account
value:
cart:
total:
units: 9000
currency: USD
tax:
units: 100
currency: USD
order_reference: order_100
order_description: 'Order #1234567890'
display_id: '215614191'
items:
- name: Bolt Swag Bag
reference: item_100
description: Large tote with Bolt logo.
total_amount:
units: 9000
currency: USD
unit_price: 1000
quantity: 9
image_url: https://www.example.com/products/123456/images/1.png
shipments:
- cost:
units: 10000
currency: USD
carrier: FedEx
address:
.tag: id
id: D4g3h5tBuVYK9
discounts:
- amount:
units: 10000
currency: USD
code: SUMMER10DISCOUNT
details_url: https://www.example.com/SUMMER-SALE
payment_method:
.tag: id
id: X5h6j8uLpVGK
payment-initialize-payment-method-credit-card:
summary: Payment using a credit card
value:
cart:
total:
units: 9000
currency: USD
tax:
units: 100
currency: USD
order_reference: order_100
order_description: 'Order #1234567890'
display_id: '215614191'
items:
- name: Bolt Swag Bag
reference: item_100
description: Large tote with Bolt logo.
total_amount:
units: 9000
currency: USD
unit_price: 1000
quantity: 9
image_url: https://www.example.com/products/123456/images/1.png
shipments:
- cost:
units: 10000
currency: USD
carrier: FedEx
address:
.tag: explicit
first_name: Alice
last_name: Baker
street_address1: 535 Mission St, Ste 1401
locality: San Francisco
postal_code: '94105'
region: CA
country_code: US
discounts:
- amount:
units: 10000
currency: USD
code: SUMMER10DISCOUNT
details_url: https://www.example.com/SUMMER-SALE
payment_method:
.tag: credit_card
type: credit
network: visa
bin: '411111'
last4: '1004'
expiration: 2025-03
token: a1B2c3D4e5F6G7H8i9J0k1L2m3N4o5P6Q7r8S9t0
billing_address:
.tag: explicit
first_name: Alice
last_name: Baker
street_address1: 535 Mission St, Ste 1401
locality: San Francisco
postal_code: '94105'
region: CA
country_code: US
authorization_type: final
auto_capture: true
payment-initialize-guest-payment-method-credit-card:
summary: Payment using a credit card
value:
profile:
create_account: true
first_name: Alice
last_name: Baker
email: alice@example.com
phone: '+14155550199'
cart:
total:
units: 9000
currency: USD
tax:
units: 100
currency: USD
order_reference: order_100
order_description: 'Order #1234567890'
display_id: '215614191'
items:
- name: Bolt Swag Bag
reference: item_100
description: Large tote with Bolt logo.
total_amount:
units: 9000
currency: USD
unit_price: 1000
quantity: 9
image_url: https://www.example.com/products/123456/images/1.png
shipments:
- cost:
units: 10000
currency: USD
carrier: FedEx
address:
.tag: explicit
first_name: Alice
last_name: Baker
street_address1: 535 Mission St, Ste 1401
locality: San Francisco
postal_code: '94105'
region: CA
country_code: US
discounts:
- amount:
units: 10000
currency: USD
code: SUMMER10DISCOUNT
details_url: https://www.example.com/SUMMER-SALE
payment_method:
.tag: credit_card
type: credit
network: visa
bin: '411111'
last4: '1004'
expiration: 2025-03
token: a1B2c3D4e5F6G7H8i9J0k1L2m3N4o5P6Q7r8S9t0
billing_address:
.tag: explicit
first_name: Alice
last_name: Baker
street_address1: 535 Mission St, Ste 1401
locality: San Francisco
postal_code: '94105'
region: CA
country_code: US
parameters:
x-merchant-client-id:
description: A unique identifier for a shopper's device, generated by Bolt. The value is retrieved with `Bolt.state.merchantClientId` in your frontend context, per-shopper. This header is required for proper attribution of this operation to your analytics reports. Omitting this header may result in incorrect statistics.
in: header
name: X-Merchant-Client-Id
required: false
schema:
type: string
x-publishable-key:
description: The publicly shareable identifier used to identify your Bolt merchant division.
in: header
name: X-Publishable-Key
required: true
schema:
type: string
schemas:
payment-method-klarna:
type: object
required:
- .tag
- return_url
title: Klarna Payment Method
properties:
.tag:
type: string
enum:
- klarna
example: klarna
return_url:
type: string
description: Return URL to return to after payment completion in Klarna.
format: url
writeOnly: true
example: https://www.example.com/handle_klarna_success
payment-method-afterpay:
type: object
required:
- .tag
- return_url
title: Afterpay Payment Method
properties:
.tag:
type: string
enum:
- afterpay
example: afterpay
return_url:
type: string
description: Return URL to return to after payment completion in Afterpay.
format: url
writeOnly: true
example: https://www.example.com/handle_afterpay_success
payment-method-affirm:
type: object
required:
- .tag
- return_url
title: Affirm Payment Method
properties:
.tag:
type: string
enum:
- affirm
example: affirm
return_url:
type: string
description: Return URL to return to after payment completion in Affirm.
format: url
writeOnly: true
example: https://www.example.com/handle_affirm_success
payment-response:
oneOf:
- $ref: '#/components/schemas/payment-response-finalized'
- $ref: '#/components/schemas/payment-response-pending'
- $ref: '#/components/schemas/payment-response-three-ds-required'
discriminator:
propertyName: .tag
mapping:
finalized: '#/components/schemas/payment-response-finalized'
pending: '#/components/schemas/payment-response-pending'
three_ds_required: '#/components/schemas/payment-response-three-ds-required'
payment-method-bolt-token:
type: object
required:
- .tag
- token
title: Payment by Bolt Token Method
description: Pay with a saved card referenced by a Bolt token. The token is the value returned in the X-Bolt-Token response header when the card was added (requires the return_bolt_token division feature). No card details need to be re-supplied.
properties:
.tag:
type: string
enum:
- bolt_token
example: bolt_token
token:
type: string
description: The Bolt token reference for the saved card.
example: 019f0358-7f59-770b-8dc0-ccf6f711d1ac
payment-method-applepay:
title: ApplePay Payment Method
allOf:
- type: object
required:
- .tag
- type
properties:
.tag:
type: string
enum:
- applepay
example: applepay
x-order: 0
id:
type: string
format: id
readOnly: true
example: X5h6j8uLpVGK
x-order: 1
type:
type: string
description: The type of payment method
example: applepay
x-order: 2
billing_address:
$ref: '#/components/schemas/address-reference'
- $ref: '#/components/schemas/credit-card'
- type: object
properties:
bolt_reference:
type: string
description: Bolt generated Applepay token id needed for token life cycle management.
example: a6f57b8c-3b12-4baf-9e77-0b9b2e3cb3d7
transaction:
type: object
properties:
reference:
type: string
example: OBYG-X1PX-FN55
authorizations:
description: Payment authorization events attached to a transaction
type: array
items:
$ref: '#/components/schemas/transaction-authorization'
cart-error:
type: object
required:
- .tag
- message
properties:
.tag:
type: string
enum:
- payment_already_exists
- currency_not_supported
description: The type of error returned
example: payment_already_exists
message:
type: string
description: A human-readable error message, which might include information specific to the request that was made.
example: A payment for this order already exists
payment-method:
oneOf:
- $ref: '#/components/schemas/payment-method-credit-card'
- $ref: '#/components/schemas/payment-method-googlepay'
- $ref: '#/components/schemas/payment-method-applepay'
- $ref: '#/components/schemas/payment-method-paypal'
- $ref: '#/components/schemas/payment-method-affirm'
- $ref: '#/components/schemas/payment-method-afterpay'
- $ref: '#/components/schemas/payment-method-klarna'
- $ref: '#/components/schemas/payment-method-klarna-account'
- $ref: '#/components/schemas/payment-method-klarna-paynow'
discriminator:
propertyName: .tag
mapping:
credit_card: '#/components/schemas/payment-method-credit-card'
googlepay: '#/components/schemas/payment-method-googlepay'
applepay: '#/components/schemas/payment-method-applepay'
paypal: '#/components/schemas/payment-method-paypal'
affirm: '#/components/schemas/payment-method-affirm'
afterpay: '#/components/schemas/payment-method-afterpay'
klarna: '#/components/schemas/payment-method-klarna'
klarna_account: '#/components/schemas/payment-method-klarna-account'
klarna_paynow: '#/components/schemas/payment-method-klarna-paynow'
payment-method-googlepay:
title: Googlepay Payment Method
allOf:
- type: object
required:
- .tag
- type
properties:
.tag:
type: string
enum:
- googlepay
example: googlepay
x-order: 0
id:
type: string
format: id
readOnly: true
example: X5h6j8uLpVGK
x-order: 1
type:
type: string
description: The type of payment method
example: googlepay
x-order: 2
billing_address:
$ref: '#/components/schemas/address-reference'
- $ref: '#/components/schemas/credit-card'
payment-method-klarna-paynow:
type: object
required:
- .tag
- return_url
title: Klarna Pay Now Payment Method
properties:
.tag:
type: string
enum:
- klarna_paynow
example: klarna_paynow
return_url:
type: string
description: Return URL to return to after payment completion in Klarna.
format: url
writeOnly: true
example: https://www.example.com/handle_klarna_paynow_success
address-reference-explicit:
type: object
title: Explicit Address Reference
required:
- .tag
- first_name
- last_name
- street_address1
- locality
- postal_code
- country_code
properties:
.tag:
type: string
enum:
- explicit
description: The type of address reference
example: explicit
x-order: 0
id:
type: string
format: id
description: The address's unique identifier.
readOnly: true
example: D4g3h5tBuVYK9
x-order: 1
first_name:
type: string
description: The first name of the person associated with this address.
example: Alice
x-order: 2
last_name:
type: string
description: The last name of the person associated with this address.
example: Baker
x-order: 3
company:
type: string
description: The company associated with this address.
example: ACME Corporation
x-order: 4
street_address1:
type: string
description: The street address associated with this address.
example: 535 Mission St, Ste 1401
x-order: 5
street_address2:
type: string
description: Any additional, optional, street address information associated with this address.
example: c/o Shipping Department
x-order: 6
locality:
type: string
description: The locality (e.g. city, town, etc...) associated with this address.
example: San Francisco
x-order: 7
postal_code:
type: string
description: The postal code associated with this address.
example: '94105'
x-order: 8
region:
type: string
description: The region or administrative area (e.g. state, province, county, etc...) associated with this address.
example: CA
x-order: 9
country_code:
$ref: '#/components/schemas/country-code'
email:
type: string
format: email
description: The email address associated with this address.
example: alice@example.com
x-order: 11
phone:
type: string
format: phone
description: The phone number associated with this address.
example: '+14155550199'
x-order: 12
payment-response-finalized:
type: object
required:
- .tag
- status
- transaction
properties:
.tag:
type: string
enum:
- finalized
example: finalized
x-order: 0
id:
type: string
format: id
example: iKv7t5bgt1gg
x-order: 1
status:
type: string
enum:
- success
example: success
transaction:
$ref: '#/components/schemas/transaction'
country-code:
type: string
description: The country (in its ISO 3166 alpha-2 format) associated with this address.
enum:
- AF
- AX
- AL
- DZ
- AS
- AD
- AO
- AI
- AQ
- AG
- AR
- AM
- AW
- AU
- AT
- AZ
- BH
- BS
- BD
- BB
- BY
- BE
- BZ
- BJ
- BM
- BT
- BO
- BQ
- BA
- BW
- BV
- BR
- IO
- BN
- BG
- BF
- BI
- KH
- CM
- CA
- CV
- KY
- CF
- TD
- CL
- CN
- CX
- CC
- CO
- KM
- CG
- CD
- CK
- CR
- CI
- HR
- CU
- CW
- CY
- CZ
- DK
- DJ
- DM
- DO
- EC
- EG
- SV
- GQ
- ER
- EE
- ET
- FK
- FO
- FJ
- FI
- FR
- GF
- PF
- TF
- GA
- GM
- GE
- DE
- GH
- GI
- GR
- GL
- GD
- GP
- GU
- GT
- GG
- GN
- GW
- GY
- HT
- HM
- VA
- HN
- HK
- HU
- IS
- IN
- ID
- IR
- IQ
- IE
- IM
- IL
- IT
- JM
- JP
- JE
- JO
- KZ
- KE
- KI
- KP
- KR
- KW
- KG
- LA
- LV
- LB
- LS
- LR
- LY
- LI
- LT
- LU
- MO
- MK
- MG
- MW
- MY
- MV
- ML
- MT
- MH
- MQ
- MR
- MU
- YT
- MX
- FM
- MD
- MC
- MN
- ME
- MS
- MA
- MZ
- MM
- NA
- NR
- NP
- NL
- NC
- NZ
- NI
- NE
- NG
- NU
- NF
- MP
- 'NO'
- OM
- PK
- PW
- PS
- PA
- PG
- PY
- PE
- PH
- PN
- PL
- PT
- PR
- QA
- RE
- RO
- RU
- RW
- BL
- SH
- KN
- LC
- MF
- PM
- VC
- WS
- SM
- ST
- SA
- SN
- RS
- SC
- SL
- SG
- SX
- SK
- SI
- SB
- SO
- ZA
- GS
- SS
- ES
- LK
- SD
- SR
- SJ
- SZ
- SE
- CH
- SY
- TW
- TJ
- TZ
- TH
- TL
- TG
- TK
- TO
- TT
- TN
- TR
- TM
- TC
- TV
- UG
- UA
- AE
- GB
- US
- UM
- UY
- UZ
- VU
- VE
- VN
- VG
- VI
- WF
- EH
- YE
- ZM
- ZW
example: US
x-oapi-codegen-extra-tags:
validate: country,required
x-order: 11
profile:
type: object
description: An account's identifying information.
required:
- first_name
- last_name
- email
properties:
first_name:
type: string
description: The given name of the person associated with this profile.
example: Alice
x-order: 1
last_name:
type: string
description: The last name of the person associated with this profile.
example: Baker
x-order: 2
email:
type: string
format: email
description: The email address asscoiated with this profile.
example: alice@example.com
x-order: 3
phone:
type: string
format: phone
description: The phone number associated with this profile.
example: '+14155550199'
x-order: 4
payment-method-credit-card:
title: Credit Card Payment Method
allOf:
- type: object
required:
- .tag
- type
- billing_address
properties:
.tag:
type: string
enum:
- credit_card
example: credit_card
x-order: 0
id:
type: string
format: id
readOnly: true
example: X5h6j8uLpVGK
x-order: 1
type:
type: string
description: The type of payment method
example: credit_card
x-order: 2
billing_address:
$ref: '#/components/schemas/address-reference'
- $ref: '#/components/schemas/credit-card'
cart-item:
type: object
required:
- name
- reference
- total_amount
- unit_price
- quantity
properties:
name:
description: The name of a given item.
type: string
maxLength: 1024
example: Bolt Swag Bag
reference:
type: string
description: This value is used by Bolt as an external reference to a given item.
maxLength: 1024
example: item_100
description:
type: string
description: A human-readable description of this cart item.
example: Large tote with Bolt logo.
seller_id:
type: string
description: External reference ID for a marketplace seller.
example: seller_123
total_amount:
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bolt-financial/refs/heads/main/openapi/bolt-financial-payments-api-openapi.yml