Unstoppable Finance (Iron) Sandbox API
Operations for Sandbox Testing
Operations for Sandbox Testing
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/unstoppable-finance-sandbox-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
description: The Stablecoin Payment Network
title: Iron Sandbox API
version: 1.0-16988
servers:
- url: https://api.sandbox.iron.xyz/api
tags:
- description: Operations for Sandbox Testing
name: Sandbox
paths:
/sandbox/autoramp/{id}:
put:
description: 'Update the status of an autoramp for testing purposes
'
operationId: updateSandboxAutorampStatus
parameters:
- deprecated: false
description: the ID of the autoramp to update
explode: true
in: path
name: id
required: true
schema:
format: uuid
type: string
- $ref: '#/components/parameters/XApiVersion'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AutorampStatus'
description: the new autoramp status
required: true
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Autoramp'
description: Update autoramp successful
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
description: Unauthorized
'403':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Forbidden (e.g. customer is suspended)
'404':
description: Not Found
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Update autoramp status
tags:
- Sandbox
/sandbox/fiat-verification/{id}:
put:
description: 'Update the verification status of a fiat address
'
operationId: updateSandboxFiatAddressVerificationStatus
parameters:
- deprecated: false
description: the ID of the address to update
explode: true
in: path
name: id
required: true
schema:
format: uuid
type: string
- $ref: '#/components/parameters/XApiVersion'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/FiatAddressStatus'
description: the new verification status
required: true
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/FiatAddress'
description: Update Address Succeeded
'403':
content:
application/json; charset=utf-8:
schema:
type: string
description: Update Address Failed (Forbidden)
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Update Address Failed (Not Found)
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: ''
security:
- ApiKeyAuth: []
summary: Update fiat address verification status
tags:
- Sandbox
/sandbox/identification/{id}:
post:
description: Updates a pending identification for a customer
operationId: updateSandboxIdentificationStatus
parameters:
- deprecated: false
description: a UUID ensuring the reset operation is only processed once
explode: true
in: header
name: IDEMPOTENCY-KEY
required: true
schema:
type: string
- deprecated: false
description: the ID of the identification to update
explode: true
in: path
name: id
required: true
schema:
format: uuid
type: string
- $ref: '#/components/parameters/XApiVersion'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UpdatePendingIdentificationParams'
description: Parameters required to update a pending identification
required: true
responses:
'201':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Identification'
description: ''
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: ''
security:
- ApiKeyAuth: []
summary: Update pending Identification status
tags:
- Sandbox
/sandbox/reset:
post:
description: Resets the sandbox for the partner. Including fiat accounts, wallets, autoramps, transactions, and customers
operationId: resetSandbox
parameters:
- deprecated: false
description: a UUID ensuring the reset operation is only processed once
explode: true
in: header
name: IDEMPOTENCY-KEY
required: true
schema:
type: string
- deprecated: false
description: Optional sub-partner UUID, if provided, the wallet address will be registered for the sub-partner
explode: true
in: header
name: X-SUB-PARTNER-ID
required: false
schema:
type: string
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
type: boolean
description: ''
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: ''
security:
- ApiKeyAuth: []
summary: Reset sandbox environment
tags:
- Sandbox
/sandbox/transaction:
post:
description: 'Creates a new fiat transaction directly from an autoramp configuration for testing purposes.
This bypasses the normal deposit flow and creates a ramp transaction with the specified amount
using the autoramp''s configuration (customer, recipient, currencies, etc.).'
operationId: createSandboxTransaction
parameters:
- deprecated: false
description: a UUID ensuring a Ramp Transaction operation is only processed once
explode: true
in: header
name: IDEMPOTENCY-KEY
required: true
schema:
type: string
- $ref: '#/components/parameters/XApiVersion'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CreateSandboxTransactionParams'
description: Parameters required to create a new sandbox ramp transaction
required: true
responses:
'201':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/SandboxSandboxTransaction'
description: ''
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: ''
security:
- ApiKeyAuth: []
summary: Mock a transaction
tags:
- Sandbox
/sandbox/transaction/{id}/state:
put:
description: Updates the state of a sandbox transaction for testing purposes
operationId: updateSandboxTransactionState
parameters:
- deprecated: false
description: a UUID ensuring the state update operation is only processed once
explode: true
in: header
name: IDEMPOTENCY-KEY
required: true
schema:
type: string
- deprecated: false
description: the ID of the ramp transaction to update
explode: true
in: path
name: id
required: true
schema:
format: uuid
type: string
- $ref: '#/components/parameters/XApiVersion'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/UpdateRampTransactionStateParams'
description: Parameters required to update the ramp transaction state
required: true
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/SandboxSandboxTransaction'
description: ''
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: ''
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: ''
security:
- ApiKeyAuth: []
summary: Update sandbox transaction state
tags:
- Sandbox
components:
schemas:
PixAccountType:
description: 'PixAccountType
The type of a Brazilian bank account.'
enum:
- CHECKING
- SAVINGS
- SALARY
- TRANSACTION
type: string
PaymentNetwork:
description: 'PaymentNetwork
A payment network
'
enum:
- Sepa
- Swift
- Fps
- Chats
- Ach
- Wire
- Rtp
- Fednow
- Pix
- Spei
- AfricanBankTransfer
- MobileMoney
- Chaps
type: string
UpdateRampTransactionStateParams:
properties:
state:
$ref: '#/components/schemas/SandboxTransactionState'
required:
- state
title: UpdateRampTransactionStateParams
type: object
Fee:
description: 'Fee
The fee for a given currency pair
'
properties:
banking_fee:
$ref: '#/components/schemas/Amount'
banking_fee_network:
$ref: '#/components/schemas/PaymentNetwork'
deducted_fee:
allOf:
- $ref: '#/components/schemas/Amount'
- deprecated: true
description: The amount of the fee that was deducted immediately and charged to the end customer. This is deprecated and will be removed in the future. Use transaction_fee instead.
deprecated: true
description: The amount of the fee that was deducted immediately and charged to the end customer. This is deprecated and will be removed in the future. Use transaction_fee instead.
iron_fee:
$ref: '#/components/schemas/Amount'
iron_fee_settlement:
$ref: '#/components/schemas/FeeSettlement'
network_fee:
$ref: '#/components/schemas/Amount'
network_fees:
deprecated: true
description: The network fees in source currency
items:
$ref: '#/components/schemas/NetworkFee'
type: array
network_fees_with_settlement:
description: The network fees with settlement
items:
$ref: '#/components/schemas/NetworkFeeWithSettlement'
type: array
partner_fee:
$ref: '#/components/schemas/Amount'
partner_fees:
description: The partner fees
items:
$ref: '#/components/schemas/PartnerFee'
type: array
total_fee:
$ref: '#/components/schemas/Amount'
transaction_fee:
$ref: '#/components/schemas/Amount'
required:
- total_fee
- iron_fee
- partner_fee
- network_fees
- network_fees_with_settlement
- partner_fees
- transaction_fee
- banking_fee
- network_fee
title: Fee
type: object
PixAccountIdentifier_PixBankDetails:
allOf:
- properties:
type:
enum:
- BANK_DETAILS
example: BANK_DETAILS
type: string
required:
- type
type: object
- $ref: '#/components/schemas/PixBankDetails'
description: 'PixAccountIdentifier
How the recipient''s PIX account is identified: a DICT key of one of the
five key types, or full bank account details.'
PixDepositInfo:
properties:
instruction:
type: string
pix_key:
type: string
required:
- pix_key
- instruction
title: PixDepositInfo
type: object
SandboxSandboxTransaction:
properties:
amount_in:
description: The amount deposited
format: decimal
type: string
amount_out:
description: The amount to be paid out
format: decimal
type: string
autoramp_id:
description: The autoramp ID used
format: uuid
type: string
created_at:
description: When the transaction was created
format: date-time
type: string
currency_in:
description: The input currency
type: string
currency_out:
description: The output currency
type: string
customer_id:
description: The customer ID
format: uuid
type: string
id:
description: The ID of the created ramp transaction
format: uuid
type: string
state:
description: The initial state
type: string
required:
- id
- autoramp_id
- amount_in
- currency_in
- amount_out
- currency_out
- customer_id
- state
- created_at
title: SandboxSandboxTransaction
type: object
PixAccountIdentifier_PixEmailKey:
allOf:
- properties:
type:
enum:
- EMAIL
example: EMAIL
type: string
required:
- type
type: object
- $ref: '#/components/schemas/PixEmailKey'
description: 'PixAccountIdentifier
How the recipient''s PIX account is identified: a DICT key of one of the
five key types, or full bank account details.'
RampTransactionSource:
anyOf:
- $ref: '#/components/schemas/ApiWalletDepositSource'
- $ref: '#/components/schemas/ApiBankAccountSource'
description: The source of the autoramp transaction
type: object
BankAccountSWIFTIdentifier:
example:
account_number: '1234567890'
bic: CHASUS33XXX
properties:
account_number:
type: string
bic:
type: string
intermediary_bic:
description: 'BIC of an intermediary correspondent bank in the SWIFT routing chain,
when the sender wants to override the auto-selected intermediary.
Optional — most senders leave this unset and let their provider pick.'
type: string
required:
- bic
- account_number
title: BankAccountSWIFTIdentifier
type: object
VerificationStepDetail:
properties:
comment:
type: string
result:
$ref: '#/components/schemas/IdentificationStatus'
retry:
type: boolean
required:
- result
- retry
title: VerificationStepDetail
type: object
DepositRail_SwiftDepositInfo:
allOf:
- properties:
type:
enum:
- SWIFT
example: SWIFT
type: string
required:
- type
type: object
- $ref: '#/components/schemas/SwiftDepositInfo'
IdentificationStatus:
description: 'The Process status of the identification
The various state transitions an identification can go through.
'
enum:
- Pending
- Processed
- PendingReview
- Approved
- Declined
- Expired
- Archived
type: string
DepositRail_ACHDepositInfo:
allOf:
- properties:
type:
enum:
- ACH
example: ACH
type: string
required:
- type
type: object
- $ref: '#/components/schemas/ACHDepositInfo'
SandboxTransactionState:
enum:
- Pending
- Completed
- Failed
type: string
DepositRail_FedNowDepositInfo:
allOf:
- properties:
type:
enum:
- FedNow
example: FedNow
type: string
required:
- type
type: object
- $ref: '#/components/schemas/FedNowDepositInfo'
description: Available from API version 2026-07-01.
Fiat:
description: A fiat currency
example:
code: USD
properties:
code:
description: The code of the currency e.g. 'USD'
type: string
required:
- code
title: Fiat
type: object
DepositAccount_ChapsFpsDepositInfo:
allOf:
- properties:
type:
enum:
- CHAPSFPS
example: CHAPSFPS
type: string
required:
- type
type: object
- $ref: '#/components/schemas/ChapsFpsDepositInfo'
description: 'DepositAccount
DEPRECATED: please use the deposit_rails field instead
'
FpsDepositInfo:
example:
account_number: '55779911'
bank_address: 2 Thomas More Square, London, E1W 1YN
bank_name: Banking Circle UK
beneficiary_name: Alan Turing
sort_code: 20-00-00
properties:
account_number:
type: string
bank_address:
type: string
bank_name:
type: string
beneficiary_name:
type: string
sort_code:
type: string
required:
- sort_code
- account_number
title: FpsDepositInfo
type: object
RecipientBankAccount:
description: 'RecipientBankAccount
A recipient fiat bank account
'
example:
account_identifier:
iban: DE89370400440532013000
type: SEPA
address:
city: London
country:
code: GB
postal_code: SW1A 2AA
state: England
street: 10 Downing Street
bank_address: null
email_address:
email: john.doe@example.com
is_third_party: false
phone_number: +49-30-12345678
provider_country:
code: DE
provider_name: Iron Bank
recipient:
name: Aperture Science
type: Business
properties:
account_identifier:
$ref: '#/components/schemas/BankAccountIdentifier'
address:
$ref: '#/components/schemas/RecipientPostalAddress'
bank_address:
$ref: '#/components/schemas/BankPostalAddress'
email_address:
$ref: '#/components/schemas/EmailAddress'
is_third_party:
description: Is this a users fiat bank account or a third party fiat bank account
type: boolean
phone_number:
description: The recipient's phone number. Required for USD accounts.
type: string
provider_country:
$ref: '#/components/schemas/Country'
provider_name:
description: The name of the provider of the recipient's account
type: string
recipient:
$ref: '#/components/schemas/RecipientName'
required:
- recipient
- provider_name
- provider_country
- account_identifier
- address
- is_third_party
title: RecipientBankAccount
type: object
DepositAccount:
anyOf:
- $ref: '#/components/schemas/DepositAccount_IbanDepositInfo'
- $ref: '#/components/schemas/DepositAccount_AchWireDepositInfo'
- $ref: '#/components/schemas/DepositAccount_AfricanBankTransferDepositInfo'
- $ref: '#/components/schemas/DepositAccount_PixDepositInfo'
- $ref: '#/components/schemas/DepositAccount_SpeiDepositInfo'
- $ref: '#/components/schemas/DepositAccount_MobileMoneyDepositInfo'
- $ref: '#/components/schemas/DepositAccount_CryptoWallet'
- $ref: '#/components/schemas/DepositAccount_ChapsFpsDepositInfo'
description: 'DepositAccount
DEPRECATED: please use the deposit_rails field instead
'
discriminator:
mapping:
ACHWire: '#/components/schemas/DepositAccount_AchWireDepositInfo'
AfricanBankTransfer: '#/components/schemas/DepositAccount_AfricanBankTransferDepositInfo'
CHAPSFPS: '#/components/schemas/DepositAccount_ChapsFpsDepositInfo'
Crypto: '#/components/schemas/DepositAccount_CryptoWallet'
MobileMoney: '#/components/schemas/DepositAccount_MobileMoneyDepositInfo'
Pix: '#/components/schemas/DepositAccount_PixDepositInfo'
SEPA: '#/components/schemas/DepositAccount_IbanDepositInfo'
Spei: '#/components/schemas/DepositAccount_SpeiDepositInfo'
propertyName: type
type: object
EmailAddress:
description: 'EmailAddress
An email address
An email address
'
example:
email: john.doe@example.com
properties:
email:
description: The email address
type: string
required:
- email
title: EmailAddress
type: object
Identification:
description: 'Identification
The entity wrapping our KYC/KYB process and underlying providers
'
properties:
created_at:
format: date-time
type: string
customer_id:
description: Absent on a referral partner's identification (partner-keyed record)
format: uuid
type: string
id:
format: uuid
type: string
partner_id:
description: The owning partner for partner-keyed (referral) records
format: uuid
type: string
residence_country:
description: 'ISO 3166-1 alpha-2 (2 letter) country code of the verified residence
address; only set on the customer''s most recent identification while it
is approved'
type: string
review_comment:
type: string
status:
$ref: '#/components/schemas/IdentificationStatus'
step_status:
$ref: '#/components/schemas/IdentificationStepStatus'
updated_at:
format: date-time
type: string
url:
type: string
with_edd:
type: boolean
required:
- id
- status
- created_at
- updated_at
title: Identification
type: object
DepositRail_WireDepositInfo:
allOf:
- properties:
type:
enum:
- Wire
example: Wire
type: string
required:
- type
type: object
- $ref: '#/components/schemas/WireDepositInfo'
UpdatePendingIdentificationParams:
properties:
approved:
description: Whether the identification should be approved or rejected
type: boolean
required:
- approved
title: UpdatePendingIdentificationParams
type: object
CreateSandboxTransactionParams:
properties:
amount:
description: The amount to deposit (in the autoramp's input currency)
format: decimal
type: string
amount_out:
description: 'Optional: Specify the output amount directly (if not provided, calculated from amount, fee, and fx_rate)'
format: decimal
type: string
autoramp_id:
description: The autoramp ID to use for the transaction
format: uuid
type: string
deposit_id:
description: 'Optional: Specify a deterministic deposit ID instead of generating one'
format: uuid
type: string
fee:
description: 'Optional: Specify the fee amount (defaults to 0.25% of amount)'
format: decimal
type: string
fx_rate:
description: 'Optional: Specify the exchange rate (defaults to 1.0)'
format: decimal
type: string
initial_state:
$ref: '#/components/schemas/SandboxTransactionState'
input_currency:
$ref: '#/components/schemas/Currency'
source:
$ref: '#/components/schemas/RampTransactionSource'
transaction_id:
description: 'Optional: Specify a deterministic transaction ID instead of generating one'
format: uuid
type: string
required:
- autoramp_id
- amount
title: CreateSandboxTransactionParams
type: object
BankAccountIdentifier_BankAccountFPSIdentifier:
allOf:
- properties:
type:
enum:
- FPS
example: FPS
type: string
required:
- type
type: object
- $ref: '#/components/schemas/BankAccountFPSIdentifier'
DepositAccount_CryptoWallet:
allOf:
- properties:
type:
enum:
- Crypto
example: Crypto
type: string
required:
- type
type: object
- $ref: '#/components/schemas/CryptoWallet'
description: 'DepositAccount
DEPRECATED: please use the deposit_rails field instead
'
MobileMoneyDepositInfo:
properties:
instruction:
type: string
mobile_number:
type: string
required:
- mobile_number
title: MobileMoneyDepositInfo
type: object
Recipient_RecipientBankAccount:
allOf:
- properties:
type:
enum:
- BankAccount
example: BankAccount
type: string
required:
- type
type: object
- $ref: '#/components/schemas/RecipientBankAccount'
description: 'Recipient
The recipient of the payment
'
ACHDepositInfo:
example:
account_number: '123456789'
bank_address: 1 Chase Manhattan Plaza, New York, NY 10005, US
bank_name: JPMorgan Chase Bank
recipient_address: 123 Main Street, New York, NY 10001, US
recipient_name: Alan Turing
routing_number: '021000021'
properties:
account_number:
type: string
bank_address:
type: string
bank_name:
type: string
recipient_address:
type: string
recipient_name:
type: string
routing_number:
type: string
required:
- routing_number
- account_number
- bank_name
- bank_address
- recipient_name
- recipient_address
title: ACHDepositInfo
type: object
IdentificationStepStatus:
anyOf:
- $ref: '#/components/schemas/BusinessIdentificationStepStatus'
- $ref: '#/components/schemas/PersonIdentificationStepStatus'
type: object
BankAccountIdentifier_BankAccountCHAPSIdentifier:
allOf:
- properties:
type:
enum:
- CHAPS
example: CHAPS
type: string
required:
- type
type: object
- $ref: '#/components/schemas/BankAccountCHAPSIdentifier'
Country:
description: A country
example:
code: DE
properties:
code:
description: The ISO_3166-1 Alpha-2 country code, e.g. "DE"
maxLength: 2
minLength: 2
type: string
required:
- code
title: Country
type: object
AutorampQuote:
description: 'Autoramp Quote
The autoramp quote used to create an autoramp
'
properties:
amount_in:
$ref: '#/components/schemas/Amount'
amount_out:
$ref: '#/components/schemas/Amount'
fee:
$ref: '#/components/schemas/Fee'
fee_settlement:
$ref: '#/components/schemas/FeeSettlement'
partner_fee_settlement:
$ref: '#/components/schemas/FeeSettlement'
quote_id:
description: The id of the quote
format: uuid
type: string
rate:
description: The rate
format: decimal
type: string
rate_expiry_policy:
$ref: '#/components/schemas/RateExpiryPolicy'
rate_lock_valid_until:
description: The rate lock valid until
format: date-time
type: string
slippage_tolerance_in_bips:
description: The slippage tolerance in bips
format: decimal
type: string
valid_until:
description: The valid until
format: date-time
type: string
required:
- quote_id
- amount_in
- amount_out
- rate
- rate_lock_valid_until
- rate_expiry_policy
- fee
- fee_settlement
- partner_fee_settlement
- valid_until
title: AutorampQuote
type: object
ApiBankAccountSource:
description: A bank account source of an autoramp transaction
example:
account_number: null
bank_name: Iron Bank
bic: COBADEFFXXX
iban: DE89370400440532013000
name: Alan Turing
routing_number: null
sort_code: null
properties:
account_number:
description: The account number for US accounts
type: string
bank_name:
description: The bank name
type: string
bic:
description: The bic
type: string
iban:
description: The iban
type: string
name:
description: The name of the account holder
type: string
routing_number:
description: The routing number of the bank, for US accounts
type: string
sort_code:
description: The sort code of the bank, for UK accounts
type: string
required:
- bank_name
- iban
- bic
- name
title: ApiBankAccountSource
type: object
BankAccountIdentifier_BankAccountWireIdentifier:
allOf:
- properties:
type:
enum:
- Wire
example: Wire
type: string
required:
- type
type: object
- $ref: '#/components/schemas/BankAccountWireIdentifier'
DepositRail_MobileMoneyDepositInfo:
allOf:
- properties:
type:
enum:
- MobileMoney
example: MobileMoney
type: string
required:
- type
type: object
- $ref: '#/components/schemas/MobileMoneyDepositInfo'
BusinessName:
example:
name: Aperture Science
properties:
name:
maxLength: 50
minLength: 1
type: string
required:
- name
title: BusinessName
type: object
# --- truncated at 32 KB (84 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unstoppable-finance/refs/heads/main/openapi/unstoppable-finance-sandbox-api-openapi.yml