Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/bolt-financial-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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:
title: Bolt Financial Transactions API
version: 1.0.1
description: 'Operations tagged Transactions across 2 of this provider''s published API definitions: bolt-financial-bolt-api-openapi.yml, bolt-financial-embeddable-checkout-v1-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
security:
- X-API-Key: []
- OAuth:
- bolt.account.manage
- bolt.account.view
tags:
- name: Transactions
description: 'Use the Transactions endpoint to authorize payments when the shopper checks out and handle post authorization actions such as captures and refunds. You can use a shopper''s existing saved payment information or tokenize new payment information with the [Bolt Tokenizer](https://help.boltapp.com/api-tokenizer/). Bolt Authorize Transaction types fall into one of three categories: a logged-in shopper checking out with a saved payment method, any type of shopper checking out with a new payment method, and a logged-in shopper checking out with a new payment method. The new payment method will be saved to the shopper''s account.
'
paths:
/v1/merchant/transactions/authorize:
post:
description: 'This endpoint authorizes card payments and has three main use cases:
* • Authorize a payment using an unsaved payment method for a guest or logged-in shopper.
* • Authorize a payment using a saved payment method for a logged-in shopper.
* • Re-charge a previous transaction using the `credit_card_id` of the transaction.
'
operationId: authorizeTransaction
parameters:
- $ref: '#/components/parameters/x-publishable-key'
- $ref: '#/components/parameters/idempotency_key'
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/merchant_credit_card_authorization'
- $ref: '#/components/schemas/merchant_credit_card_authorization_recharge'
description: '**Authorize a Transaction**
* • `merchant_credit_card_authorization`: For authorizing with a new, unsaved card. This can be for a guest checkout flow, one-time payment, or an existing Bolt shopper.
* • `merchant_credit_card_authorization_recharge`: For authorizing a card using a shoppers saved payment methods.
* • **Anytime the shopper is paying while logged-in attach their OAuth `access_token` to the request.**
'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/i_authorize_result_view'
description: Authorization Successful
security:
- OAuth: []
X-API-Key: []
summary: Authorize a Card
tags:
- Transactions
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
/v1/merchant/transactions/capture:
post:
description: 'This captures funds for the designated transaction. A capture can be done for any partial amount or for the total authorized amount.
Although the response returns the standard `transaction_view` object, only `captures` and either `id` or `reference` are needed.
'
operationId: captureTransaction
parameters:
- $ref: '#/components/parameters/idempotency_key'
requestBody:
$ref: '#/components/requestBodies/capture_transaction'
description: Capture a Transaction
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/transaction_view'
description: Capture Successful
'403':
$ref: '#/components/responses/transaction_capture_error_403'
'404':
$ref: '#/components/responses/transaction_capture_error_404'
'422':
content:
application/json:
schema:
properties:
errors:
items:
properties:
code:
example: 1000001
type: number
field:
example: transaction_id
type: string
message:
example: '`TA8hLkJh4db4JJ` must be a valid public id of type transaction'
type: string
type: object
type: array
result:
type: object
type: object
description: Unprocessable Entity
security:
- X-API-Key: []
summary: Capture a Transaction
tags:
- Transactions
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
/v1/merchant/transactions/credit:
post:
description: This refunds a captured transaction. Refunds can be done for any partial amount or for the total authorized amount. These refunds are processed synchronously and return information about the refunded transaction in the standard `transaction_view` object.
operationId: refundTransaction
parameters:
- $ref: '#/components/parameters/idempotency_key'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/transaction_credit'
description: Refund a Transaction
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/transaction_view'
description: Refund Successful
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/errors_bolt_api_response'
description: Generic Error Schema
security:
- X-API-Key: []
summary: Refund a Transaction
tags:
- Transactions
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
/v1/merchant/transactions/review:
post:
description: This endpoint is used to manually approve or reject orders for a specified transaction.
operationId: reviewTransaction
parameters:
- $ref: '#/components/parameters/idempotency_key'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/merchant_credit_card_review'
description: Review a Transaction
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/transaction_details_view'
description: Transaction Details Received
'403':
$ref: '#/components/responses/transaction_review_error_403'
'404':
$ref: '#/components/responses/transaction_review_error_404'
'422':
$ref: '#/components/responses/transaction_review_error_422'
security:
- X-API-Key: []
summary: Review Transaction
tags:
- Transactions
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
/v1/merchant/transactions/void:
post:
description: 'This voids the authorization for a given transaction. Voids must be completed before the authorization is captured.
In the request, either `transaction_id` or `transaction_reference` is required.
Although the response returns the standard `transaction_view` object, only `status` and either `id` or `reference` are needed.
'
operationId: voidTransaction
parameters:
- $ref: '#/components/parameters/idempotency_key'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/credit_card_void'
description: Void a Transaction
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/transaction_view'
description: Void Successful
'403':
$ref: '#/components/responses/transaction_void_error_403'
'404':
$ref: '#/components/responses/transaction_void_error_404'
security:
- X-API-Key: []
summary: Void a Transaction
tags:
- Transactions
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
/v1/merchant/transactions/{REFERENCE}:
get:
description: "This allows you to pull the full transaction details for a given transaction.\n\n **Note**: All objects and fields marked `required` in the Transaction Details response are also **nullable**. This includes any sub-components (objects or fields) also marked `required`.\n"
operationId: getTransactionDetails
parameters:
- $ref: '#/components/parameters/transaction_reference_path_param'
responses:
'200':
$ref: '#/components/responses/transaction_details'
'403':
$ref: '#/components/responses/transaction_details_error_403'
'422':
$ref: '#/components/responses/transaction_details_error_422'
security:
- X-API-Key: []
summary: Transaction Details
tags:
- Transactions
patch:
description: This allows you to update certain transaction properties post-authorization.
operationId: updateTransaction
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/transaction_update_input'
description: Update a Transaction
parameters:
- $ref: '#/components/parameters/transaction_reference_path_param'
- $ref: '#/components/parameters/idempotency_key'
responses:
'200':
$ref: '#/components/responses/transaction_details'
'403':
$ref: '#/components/responses/transaction_details_error_403'
'404':
$ref: '#/components/responses/transaction_details_error_404'
security:
- X-API-Key: []
summary: Update a Transaction
tags:
- Transactions
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
/v1/tokenizer/proxy:
post:
summary: Authorize a Card using TaaS
description: 'The `POST /v1/tokenizer/proxy` endpoint allows enterprise merchants to **securely authorize transactions with their preferred payment processors (PSPs)** by proxying requests through Bolt''s PCI-compliant infrastructure. This API is part of Bolt''s Tokenization-as-a-Service (TaaS) platform, enabling merchants to inject sensitive card data (e.g., PAN, CVV) into PSP-native request formats without directly handling raw card data.
The proxy replaces placeholders in the merchant-defined request body with actual card data retrieved securely using the provided `x-bolt-taas-id`, and forwards the complete request to the specified `x-bolt-forward-to` URL using the HTTP method specified in `x-bolt-forward-verb`.
'
operationId: proxyTransaction
tags:
- Transactions
security:
- X-API-Key: []
parameters:
- $ref: '#/components/parameters/x-bolt-forward-to'
- $ref: '#/components/parameters/x-bolt-taas-id'
- $ref: '#/components/parameters/x-bolt-forward-verb'
requestBody:
description: "Use this API to proxy an authorization request to a third-party PSP endpoint using Bolt's secure infrastructure.\n\n - Replace raw card fields (e.g., card[number]) with placeholders like `{{tk:cc}}`, `{{tk:cvv}}`, `{{tk:exp_month}}`, etc.\n - The placeholders will be securely replaced by Bolt using the identifier from `x-bolt-taas-id`.\n - The `x-bolt-forward-to` header must point to a whitelisted PSP URL.\n - The `x-bolt-forward-verb` header specifies the HTTP method (POST, PUT, or PATCH) for the PSP request.\n\n**Never submit raw PAN, CVV, or expiration directly. Use placeholders.**\nSupported placeholders:\n - `{{tk:cc}}` – Full card number \n - `{{tk:cvv}}` – Card CVV \n - `{{tk:exp_month}}` – Expiration month \n - `{{tk:exp_year}}` – Expiration year\n"
required: true
content:
application/json:
schema:
type: object
example:
type: card
card:
number: '{{tk:cc}}'
exp_month: '{{tk:exp_month}}'
exp_year: '{{tk:exp_year}}'
cvc: '{{tk:cvv}}'
billing_details:
name: Jane Doe
address:
postal_code: '94107'
responses:
'200':
description: Successful proxy to the PSP. Returns the PSP's response along with a unique proxy operation ID for tracking.
content:
application/json:
schema:
type: object
properties:
status_code:
type: integer
description: HTTP status code returned by the PSP
example: 200
body:
type: string
description: Response body from the PSP (JSON string)
example: '{"id":"pm_1NQzWT2eZvKYlo2C","object":"payment_method","type":"card","card":{"last4":"4242","brand":"visa","exp_month":12,"exp_year":2026}}'
header:
type: object
description: Response headers from the PSP
additionalProperties:
type: array
items:
type: string
example:
Content-Type:
- application/json
proxy_operation_id:
type: string
description: Unique identifier for this proxy operation
example: PROXY-ABC123-DEF456-GHI789
example:
status_code: 200
body: '{"id":"pm_1NQzWT2eZvKYlo2C","object":"payment_method","type":"card","card":{"last4":"4242","brand":"visa","exp_month":12,"exp_year":2026}}'
header:
Content-Type:
- application/json
proxy_operation_id: PROXY-ABC123-DEF456-GHI789
'400':
description: Missing required headers or invalid request body
content:
application/json:
example:
error: Missing required headers (x-bolt-forward-to, x-bolt-taas-id, x-bolt-forward-verb) or invalid JSON body
'401':
description: Unauthorized - missing or invalid merchant API key
content:
application/json:
example:
error: Invalid or missing merchant API key
'422':
description: Invalid TaaS ID or credit card/token not found
content:
application/json:
example:
error: Invalid x-bolt-taas-id. Credit card not found or expired.
'502':
description: Upstream PSP error during proxy forwarding
content:
application/json:
example:
error: Stripe returned 402 - Card declined
servers:
- url: https://api.boltapp.com
description: The Production URL (Live Data).
- url: https://api-sandbox.boltapp.com
description: The Sandbox URL (Test Data).
- url: https://api-staging.boltapp.com
description: The Staging URL (Staged Data).
components:
schemas:
cost:
description: The cost in cents.
example: 770
type: integer
processing_initiator:
description: Defines which payment method was used to initiate the transaction.
enum:
- initial_card_on_file
- initial_recurring
- stored_cardholder_initiated
- stored_merchant_initiated
- following_recurring
- cardholder_initiated
- recurring
example: stored_cardholder_initiated
type: string
merchant_status:
description: "The merchant's status:\n * `1` - Active\n * `2` - Inactive\n * `3` - Offboarding\n"
enum:
- 1
- 2
- 3
type: integer
merchant_product_id:
description: The merchant's unique ID for the product.
example: '881'
type: string
merchant_order_number:
description: The merchant's internal order number for this transaction.
example: O-1234567
type: string
chargeback_representment_result:
description: The result of the chargeback representment.
enum:
- none
- open
- lost
- won
example: won
type: string
depth:
description: The depth.
example: 90
type: integer
authorization_id:
description: The authorization's id.
example: T1c3p4yBuVYJ9
type: string
cart_shipment:
description: A cart that is being prepared for shipment
properties:
carrier:
$ref: '#/components/schemas/carrier'
cost:
$ref: '#/components/schemas/cost'
discounted_by_membership:
$ref: '#/components/schemas/discount_membership'
estimated_delivery_date:
$ref: '#/components/schemas/estimated_delivery_date'
expedited:
$ref: '#/components/schemas/expedited'
package_depth:
$ref: '#/components/schemas/depth'
package_dimension_unit:
$ref: '#/components/schemas/dimension_unit'
package_height:
$ref: '#/components/schemas/height'
package_type:
$ref: '#/components/schemas/package_type'
package_weight_unit:
$ref: '#/components/schemas/weight_unit'
package_width:
$ref: '#/components/schemas/width'
service:
$ref: '#/components/schemas/service'
shipping_address:
$ref: '#/components/schemas/address'
shipping_address_id:
$ref: '#/components/schemas/shipping_address_id'
shipping_method:
$ref: '#/components/schemas/shipping_method'
signature:
$ref: '#/components/schemas/signature'
tax_amount:
$ref: '#/components/schemas/tax_amount'
tax_code:
$ref: '#/components/schemas/tax_code'
total_weight:
description: The total weight.
example: 55
type: integer
total_weight_unit:
$ref: '#/components/schemas/weight_unit'
type:
$ref: '#/components/schemas/cart_shipment_type'
type: object
transaction_timeline_view:
properties:
address_change:
$ref: '#/components/schemas/address_change_view'
amount:
$ref: '#/components/schemas/amount_view'
consumer:
$ref: '#/components/schemas/consumer_summary_view'
date:
type: number
note:
type: string
review:
$ref: '#/components/schemas/transaction_review_view'
transaction:
$ref: '#/components/schemas/transaction_view'
type:
enum:
- completed
- authorized
- review
- note
- voided
- captured
- credited
- address_change
type: string
visibility:
type: string
type: object
transaction_details_view:
allOf:
- $ref: '#/components/schemas/transaction_view'
- properties:
address_change_request_metadata:
$ref: '#/components/schemas/address_change_request_metadata_view'
adjust_transactions:
items:
$ref: '#/components/schemas/transaction_view'
type: array
auth_verification_status:
enum:
- ''
- new
example: new
type: string
authorization_id:
type: string
chargeback_details:
$ref: '#/components/schemas/chargeback_details_view'
custom_fields:
items:
$ref: '#/components/schemas/custom_field_full_response_view'
type: array
customer_list_status:
$ref: '#/components/schemas/customer_list_status'
manual_disputes:
items:
$ref: '#/components/schemas/manual_dispute_view'
type: array
order:
$ref: '#/components/schemas/order_view'
refund_transaction_ids:
items:
type: string
type: array
refund_transactions:
$ref: '#/components/schemas/refund_transactions_view'
refunded_amount:
$ref: '#/components/schemas/amount_view'
source_transaction:
$ref: '#/components/schemas/transaction_view'
timeline:
items:
$ref: '#/components/schemas/transaction_timeline_view'
type: array
transaction_rejection_details:
properties:
auth_rejection_details:
$ref: '#/components/schemas/auth_rejection_details_view'
type: object
void_cause:
description: Determines why the transaction was voided.
enum:
- merchant_action
- shopify_sync
- paypal_sync
- amazon_pay_sync
- irreversible_reject
- auth_expire
- auth_verification_expired
- payment_method_updater
example: irreversible_reject
type: string
type: object
merchant_oauth_logout_url:
description: The endpoint URL provided by the merchant for logging out of OAuth accounts.
example: https://example.com/api/v1/oauth_logout
type: string
postal_code:
description: The postal code.
example: '11209'
type: string
cart_discount:
properties:
amount:
example: 100
type: number
code:
example: SUMMER10DISCOUNT
maxLength: 1024
type: string
description:
description: Used to define the discount offering.
example: 10% off our summer collection
maxLength: 1024
type: string
details_url:
description: Used to provide a link to additional details, such as a landing page, associated with the discount offering.
example: https://boltswagstore.com/SUMMERSALE
maxLength: 8192
type: string
discount_category:
enum:
- coupon
- giftcard
- managed_giftcard
- store_credit
- automatic_promotion
- membership_discount
- membership_giftcard
- subscription_discount
- rewards_discount
- shipping_discount
- unknown
type: string
reference:
description: Used to define the reference ID associated with the discount available.
example: DISC-1234
maxLength: 1024
type: string
type:
description: The type of discount.
enum:
- fixed_amount
- percentage
- free_shipping
example: percentage
type: string
type: object
credit_card_capture_view:
properties:
amount:
$ref: '#/components/schemas/amount_view'
id:
$ref: '#/components/schemas/capture_id'
merchant_event_id:
$ref: '#/components/schemas/transaction_merchant_event_id'
metadata:
additionalProperties:
example:
key1: value1
key2: value2
type: string
type: object
splits:
$ref: '#/components/schemas/transaction_splits_view'
status:
$ref: '#/components/schemas/capture_status'
type: object
gift_option_view:
description: Defines which gift options are hidden.
properties:
hide_gift_message:
example: false
type: boolean
hide_gift_wrap:
example: false
type: boolean
type: object
customer_list_status:
properties:
auto_approved:
type: boolean
block_listed:
type: boolean
type: object
first_name:
description: The person's first name.
example: Charlotte
type: string
carrier:
description: The name of the carrier selected.
example: FedEx
type: string
user_identifier:
description: The object containing key lookup IDs associated with the shopper's account, such as the unique email address and phone number.
properties:
artifact:
example: null
type: string
email:
description: The Shopper's email address that is used as a unique ID for the account. This email can be used to detect an account using the `/v1/account/exists` endpoint.
$ref: '#/components/schemas/email'
email_id:
description: The ID associated with the identifying email address for this account.
example: null
type: string
phone:
description: The Shopper's phone number that is used to help identify the account owner. This can be passed with the `user_identifier.email` to find and match accounts.
$ref: '#/components/schemas/phone'
phone_id:
description: The ID associated with the identifying phone number for this account.
example: null
type: string
required:
- phone
type: object
cart_loyalty_rewards:
properties:
amount:
description: The reward amount in cents (1/100).
format: int64
type: number
coupon_code:
description: The loyalty reward's coupon code.
type: string
description:
description: A description of the loyalty reward that will be shown to the shopper.
type: string
example: $5 off (100 Points)
details:
description: Internal-facing metadata for the Loyalty Rewards. Ideal for adding any other identifying information about the reward, including a duplication of the original loyalty reward json response from the loyalty provider as shown in the example provided. If you choose to use this field to hold json, enclose the content in single quotes to force a string value.
type: string
example: '{"id": 123456, "icon": "fa-dollar", "name": "$15.00 Off", "type": "Coupon", "amount": 100, "duration": "single_use", "cost_text": "150 Points", "description": "Get $15 off your next purchase for 150 points", "discount_type": "fixed_amount", "unrendered_name": "$15.00 Off", "discount_percentage": null, "discount_rate_cents": null, "discount_value_cents": null, "discount_amount_cents": 1500, "unrendered_description": "Get $15 off your next purchase for 150 points", "applies_to_product_type": "ALL"}'
points:
description: The number of points needed for this reward.
format: int64
type: number
source:
description: The loyalty rewards provider.
type: string
type:
description: The type of loyalty reward.
type: string
type: object
phone_country_code:
description: A phone number's country code.
example: '1'
type: string
cart_loyalty_rewards_view:
properties:
amount:
$ref: '#/components/schemas/amount_view'
coupon_code:
type: string
description:
type: string
details:
type: string
points:
format: int64
type: integer
source:
type: string
type:
type: string
type: object
chargeback_reason_code:
description: Bolt's [standardized reason codes](https://help.boltapp.com/merchants/references/policies/disputes/dispute-codes/).
enum:
- authorization_failed
- cancelled_recurring
- cardholder_dispute
- currency_error
- duplicate
- fraud_general
- fraud_no_authorization
- incorrect_amount
- late_presentment
- processing_error
- processor_general
- product_defective
- product_not_received
- product_returned
- request_for_information
example: product_not_received
type: string
card_token:
description: The Bolt token associated to the credit card. Required for new, unsaved cards.
example: a1B2c3D4e5F6G7H8i9J0k1L2m3N4o5P6Q7r8S9t0
type: string
consumer_self_view:
allOf:
- $ref: '#/components/schemas/consumer_summary_view'
- properties:
authentication:
$ref: '#/components/schemas/login_view'
email_verified:
type: boolean
emails:
items:
$ref: '#/components/schemas/email_view'
type: array
first_name:
type: string
id:
type: string
last_name:
type: string
phones:
items:
$ref: '#/components/schemas/phone_view'
type: array
platform_account_status:
enum:
- none
- linked
- unlinked
type: string
type: object
estimated_delivery_date:
description: The estimated delivery date.
example: 08-30-2022
type: string
digital_delivery:
properties:
email:
type: string
phone:
type: string
type: object
billing_address_id:
description: The unique Bolt ID associated with a previously saved billing address. Not applicable to new, unsaved addresses.
example: address-1
type:
- string
- 'null'
request_status:
enum:
- reviewed
- needs_review
- unknown
type: string
request_id:
description: The unique ID for the request ticket.
example: 2d34a56
type: string
transaction_update_input:
type: object
properties:
display_id:
description: This field corresponds to the merchant's order reference associated with this Bolt transaction.
type: string
example: order-123
metadata:
additionalProperties:
type: string
description: Custom metadata associated with this Bolt transaction.
example:
key1: value1
key2: value2
type: object
chargeback_event_view:
properties:
content:
type: string
time:
type: number
type: object
region:
description: A state, province, or similar region type.
example: Quebec
type: string
i_weight:
properties:
unit:
type: string
weight:
format: int64
type: number
type: object
merchant_debug_url:
description: The endpoint URL provided by the merchant for debugging.
# --- truncated at 32 KB (148 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bolt-financial/refs/heads/main/openapi/bolt-financial-transactions-api-openapi.yml