Unstoppable Finance (Iron) Autoramp API
Operations on Autoramp
Operations on Autoramp
openapi: 3.1.0
info:
description: The Stablecoin Payment Network
title: Iron API - Sandbox Addresses Autoramp API
version: 1.0-16988
servers:
- url: https://api.sandbox.iron.xyz/api
tags:
- description: Operations on Autoramp
name: Autoramp
paths:
/autoramp-transactions:
get:
description: 'Returns a list of transactions, optionally filtered by autoramp ID or customer ID
An optional `search_term` parameter can be provided that will search the following fields:
- Bank Account Name
- Bank Account Provider Name
- Wallet Address
- Transaction ID'
operationId: getAutorampTransactions
parameters:
- deprecated: false
description: Optional sub-partner UUID, if provided, the autoramps will be filtered for the sub-partner
explode: true
in: header
name: X-SUB-PARTNER-ID
required: false
schema:
type: string
- deprecated: false
description: Optional autoramp ID
explode: false
in: query
name: autoramp_id
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: Optional customer ID
explode: false
in: query
name: customer_id
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: 'Paging: the cursor field from previous page'
explode: false
in: query
name: cursor
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: 'Paging: the cursor field for backward pagination'
explode: false
in: query
name: prev_cursor
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: 'Paging: the requested page size'
explode: false
in: query
name: page_size
required: false
schema:
default: 10
format: uint32
maximum: 500.0
type: integer
- deprecated: false
description: A search term to filter the transactions (searches bank account name, provider, wallet address, transaction ID, deposit transaction hash)
explode: false
in: query
name: search_term
required: false
schema:
default: null
maxLength: 256
type: string
- deprecated: false
description: Type of the autoramp (onramp, offramp or crypto-to-crypto swap)
explode: false
in: query
name: ramp_type
required: false
schema:
allOf:
- $ref: '#/components/schemas/AutorampType'
- default: null
default: null
- deprecated: false
description: Filter by start date (inclusive). Only transactions created on or after this date will be returned.
explode: false
in: query
name: from_date
required: false
schema:
default: null
format: date-time
type: string
- deprecated: false
description: Filter by end date (inclusive). Only transactions created on or before this date will be returned.
explode: false
in: query
name: to_date
required: false
schema:
default: null
format: date-time
type: string
- deprecated: false
description: Filter by transaction status. Multiple statuses can be provided as comma-separated values.
explode: false
in: query
name: status
required: false
schema:
default: null
items:
$ref: '#/components/schemas/AutorampTransactionStatus'
type: array
- deprecated: false
description: Sort order for results. "asc" for oldest first, "desc" for newest first (default).
explode: false
in: query
name: sort_order
required: false
schema:
allOf:
- $ref: '#/components/schemas/SortOrder'
- default: null
default: null
- deprecated: false
description: Filter by batch payout flag. If true, only batch payout transactions are returned. If false, only non-batch payout. If omitted, all transactions are returned.
explode: false
in: query
name: is_batch_payout
required: false
schema:
default: null
type: boolean
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PagedList_AutorampTransaction'
description: Autoramp Transaction List
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: List autoramp transactions
tags:
- Autoramp
/autoramp-transactions/ids:
get:
description: 'Return a subset of transactions by ID.
This can be used to query multiple transactions for updated states without having to go through all transactions.
You have to provide at least one transaction ID
Returns at most 100 transactions'
operationId: getAutorampTransactionsByIds
parameters:
- deprecated: false
description: Ids of the transactions to get
explode: false
in: query
name: ids
required: false
schema:
default: []
items:
format: uuid
type: string
type: array
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PagedList_AutorampTransaction'
description: Autoramp Transaction List
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Get autoramp transactions by transaction IDs
tags:
- Autoramp
/autoramps:
get:
description: 'Returns a paginated list of autoramps for all customers
If customer ID is provided, returns all autoramps for the specified customer
If status is provided, returns all autoramps with the specified status'
operationId: getAutoramps
parameters:
- deprecated: false
description: Optional sub-partner UUID, if provided, the autoramps will be filtered for the sub-partner
explode: true
in: header
name: X-SUB-PARTNER-ID
required: false
schema:
type: string
- deprecated: false
description: The optional Customer ID to filter autoramps by. If not provided, returns autoramps for all customers
explode: false
in: query
name: customer_id
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: Filter by autoramp status. Multiple statuses can be provided as comma-separated values.
explode: false
in: query
name: status
required: false
schema:
default: null
items:
$ref: '#/components/schemas/AutorampStatus'
type: array
- deprecated: false
description: autoramp type filter
explode: true
in: query
name: autoramp_type
required: false
schema:
$ref: '#/components/schemas/AutorampType'
- deprecated: false
description: 'Paging: the cursor field from previous page'
explode: false
in: query
name: cursor
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: 'Paging: the cursor field for backward pagination'
explode: false
in: query
name: prev_cursor
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: 'Paging: the requested page size'
explode: false
in: query
name: page_size
required: false
schema:
default: 10
format: uint32
maximum: 100.0
type: integer
- deprecated: false
description: Sort order for results. "asc" for oldest first, "desc" for newest first (default).
explode: false
in: query
name: sort_order
required: false
schema:
allOf:
- $ref: '#/components/schemas/SortOrder'
- default: null
default: null
- deprecated: false
description: Filter by batch payout flag. If true, only batch payout autoramps are returned. If false, only non-batch payout. If omitted, all autoramps are returned.
explode: false
in: query
name: is_batch_payout
required: false
schema:
default: null
type: boolean
- deprecated: false
description: Filter by autoramp source. "Standalone" returns only market autoramps (with no attached quotes). "Quote" returns only autoramps with at least one attached quote. If omitted, all sources are returned.
explode: true
in: query
name: source
required: false
schema:
$ref: '#/components/schemas/AutorampSource'
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/PagedList_Autoramp'
description: Get autoramps successful
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'403':
content:
application/json; charset=utf-8:
schema:
type: string
description: Forbidden
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: List Autoramps for a Customer
tags:
- Autoramp
post:
description: Creates a new autoramp, with a specified recipient account, source and destination currency
operationId: createAutoramp
parameters:
- deprecated: false
description: a UUID ensuring an Autoramp 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 autoramp will be created for the sub-partner
explode: true
in: header
name: X-SUB-PARTNER-ID
required: false
schema:
type: string
- $ref: '#/components/parameters/XApiVersion'
requestBody:
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/CreateAutoramp'
description: The request parameters for creating an autoramp
required: true
responses:
'201':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/Autoramp'
description: Create autoramp successful
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'403':
content:
application/json; charset=utf-8:
schema:
type: string
description: Forbidden (e.g. customer is suspended)
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'422':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unprocessable Content
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Create a new Autoramp
tags:
- Autoramp
/autoramps/check-limit:
get:
description: Checks if a customer has reached their limit for creating new autoramps based on the deposit account type and whether it's a third-party ramp.
operationId: checkAutorampLimit
parameters:
- deprecated: false
description: The customer ID
explode: true
in: query
name: customer_id
required: true
schema:
format: uuid
type: string
- deprecated: false
description: The type of deposit account intended (e.g., Iban, Wallet)
explode: true
in: query
name: deposit_account_type
required: true
schema:
$ref: '#/components/schemas/DepositAccountType'
- deprecated: false
description: Whether the intended autoramp is for a third party
explode: true
in: query
name: is_third_party
required: true
schema:
type: boolean
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiCanCreateAutorampResponse'
description: Check successful
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Check if a customer can create more autoramps
tags:
- Autoramp
/autoramps/payments/open-banking/{payment_id}:
get:
description: 'Get the autoramp open banking payment for a given autoramp
'
operationId: getAutorampOpenBankingPayment
parameters:
- deprecated: false
description: The payment ID
explode: false
in: path
name: payment_id
required: true
schema:
type: string
- $ref: '#/components/parameters/XApiVersion'
responses:
'201':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiAutorampOpenBankingPayment'
description: Create autoramp successful
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Get the autoramp open banking payment for existing payment
tags:
- Autoramp
/autoramps/quote:
get:
description: Get a quote for an autoramp with fixed conversion rate, exact amount out or amount in
operationId: getAutorampQuote
parameters:
- deprecated: false
description: Optional sub-partner UUID, if provided, the autoramps will be filtered for the sub-partner
explode: true
in: header
name: X-SUB-PARTNER-ID
required: false
schema:
type: string
- deprecated: false
description: 'The parameters for the quote
The customer id'
explode: true
in: query
name: customer_id
required: true
schema:
format: uuid
type: string
- deprecated: false
description: The source currency code
explode: true
in: query
name: source_currency_code
required: true
schema:
maxLength: 32
type: string
- deprecated: false
description: The source currency chain
explode: true
in: query
name: source_currency_chain
required: false
schema:
$ref: '#/components/schemas/Blockchain'
- deprecated: false
description: The destination currency code
explode: true
in: query
name: destination_currency_code
required: true
schema:
maxLength: 32
type: string
- deprecated: false
description: The destination currency chain
explode: true
in: query
name: destination_currency_chain
required: false
schema:
$ref: '#/components/schemas/Blockchain'
- deprecated: false
description: 'The recipient account ID (fiat_address or verified_crypto_address ID)
Use this parameter instead of recipient_account. This is the preferred way to provide the recipient account and will be used if both are provided.'
explode: true
in: query
name: recipient_account_id
required: false
schema:
default: null
format: uuid
type: string
- deprecated: true
description: '**DEPRECATED**: The recipient account, either a fiat iban or a crypto wallet address
Use recipient_account_id instead'
explode: true
in: query
name: recipient_account
required: false
schema:
default: null
maxLength: 256
type: string
- deprecated: false
description: The source amount
explode: true
in: query
name: amount_in
required: false
schema:
default: null
format: decimal
type: string
- deprecated: false
description: The destination amount
explode: true
in: query
name: amount_out
required: false
schema:
default: null
format: decimal
type: string
- deprecated: false
description: The rate lock duration in minutes
explode: true
in: query
name: rate_lock_duration_minutes
required: false
schema:
default: null
format: int64
type: integer
- deprecated: false
description: The rate expiry policy
explode: true
in: query
name: rate_expiry_policy
required: true
schema:
$ref: '#/components/schemas/RateExpiryPolicy'
- deprecated: false
description: The slippage tolerance in bips
explode: true
in: query
name: slippage_tolerance_in_bips
required: false
schema:
default: null
format: decimal
type: string
- deprecated: false
description: The autoramp expiry time in hours. Maximum is 24 hours. It is limited to rate lock duration if rate expiry policy is Return
explode: true
in: query
name: expiry_in_hours
required: true
schema:
format: int64
type: integer
- deprecated: false
description: Is this a third party autoramp
explode: true
in: query
name: is_third_party
required: true
schema:
type: boolean
- deprecated: false
description: Sender Account Number is required when the source currency is African & payment type is Bank transfer
explode: true
in: query
name: sender_account_number
required: false
schema:
default: null
maxLength: 256
type: string
- deprecated: false
description: Sender Mobile Number is required when the source currency is African & payment type is Mobile Money
explode: true
in: query
name: sender_mobile_number
required: false
schema:
default: null
maxLength: 256
type: string
- deprecated: false
description: Sender Account Financial Institution/Bank is required when the source currency is African
explode: true
in: query
name: sender_bank
required: false
schema:
$ref: '#/components/schemas/Bank'
- deprecated: false
description: The external id
explode: true
in: query
name: external_id
required: false
schema:
default: null
type: string
- deprecated: false
description: wire_message
explode: true
in: query
name: wire_message
required: false
schema:
default: null
type: string
- deprecated: false
description: swift_payment_reference
explode: true
in: query
name: swift_payment_reference
required: false
schema:
default: null
type: string
- deprecated: false
description: sepa_payment_reference
explode: true
in: query
name: sepa_payment_reference
required: false
schema:
default: null
type: string
- deprecated: false
description: ach_payment_reference
explode: true
in: query
name: ach_payment_reference
required: false
schema:
default: null
type: string
- deprecated: false
description: fps_payment_reference
explode: true
in: query
name: fps_payment_reference
required: false
schema:
default: null
type: string
- deprecated: false
description: The fee profile id to use for the autoramp
explode: true
in: query
name: fee_profile_id
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: Whether payouts for this autoramp are batched daily
explode: true
in: query
name: batch_payout
required: false
schema:
default: null
type: boolean
- deprecated: false
description: 'Additional input currency codes to allow on the autoramp beyond
`source_currency_code`. Used to enable later per-currency quotes via
`POST /autoramps/:id/quotes` on a quote-type autoramp.
Must have the same length as `additional_in_currency_chains` and be
index-aligned: the chain at position `i` describes the code at
position `i`.'
explode: false
in: query
name: additional_in_currency_codes
required: false
schema:
default: []
items:
type: string
maxItems: 16
type: array
- deprecated: false
description: 'Chains for each entry in `additional_in_currency_codes`, index-aligned.
Must have the same length as `additional_in_currency_codes`.'
explode: false
in: query
name: additional_in_currency_chains
required: false
schema:
default: []
items:
$ref: '#/components/schemas/Blockchain'
maxItems: 16
type: array
- deprecated: false
description: 'If true, a payment reference will be generated for the autoramp on
inbound matching (pay-by-reference). Defaults to false if not provided.'
explode: true
in: query
name: pay_by_reference
required: false
schema:
default: null
type: boolean
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/SignedAutorampQuote'
description: Get Quote successful
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'403':
content:
application/json; charset=utf-8:
schema:
type: string
description: Forbidden
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Get a quote for an autoramp
tags:
- Autoramp
/autoramps/quotes-preview:
get:
description: 'Price a prospective autoramp knowing only the currencies — before a recipient
wallet or bank account is selected. Prices identically to `getAutorampQuote`;
banking fees assume the destination currency''s default payout rail (USD→ACH,
EUR→SEPA, GBP→FPS; see `assumed_payout_rail` in the response). The result is an
estimate and cannot be submitted; fetch a signed quote once a recipient is chosen.'
operationId: getAutorampQuotePreview
parameters:
- deprecated: false
description: Optional sub-partner UUID, if provided, the quote preview is scoped to the sub-partner
explode: true
in: header
name: X-SUB-PARTNER-ID
required: false
schema:
type: string
- deprecated: false
description: The customer id
explode: true
in: query
name: customer_id
required: true
schema:
format: uuid
type: string
- deprecated: false
description: The source currency code
explode: true
in: query
name: source_currency_code
required: true
schema:
maxLength: 32
type: string
- deprecated: false
description: The source currency chain
explode: true
in: query
name: source_currency_chain
required: false
schema:
$ref: '#/components/schemas/Blockchain'
- deprecated: false
description: The destination currency code
explode: true
in: query
name: destination_currency_code
required: true
schema:
maxLength: 32
type: string
- deprecated: false
description: The destination currency chain
explode: true
in: query
name: destination_currency_chain
required: false
schema:
$ref: '#/components/schemas/Blockchain'
- deprecated: false
description: The source amount. Provide exactly one of amount_in / amount_out.
explode: true
in: query
name: amount_in
required: false
schema:
default: null
format: decimal
type: string
- deprecated: false
description: The destination amount. Provide exactly one of amount_in / amount_out.
explode: true
in: query
name: amount_out
required: false
schema:
default: null
format: decimal
type: string
- deprecated: false
description: Price against this fee profile; resolved automatically when omitted
explode: true
in: query
name: fee_profile_id
required: false
schema:
default: null
format: uuid
type: string
- deprecated: false
description: Is this a third party autoramp (defaults to false)
explode: true
in: query
name: is_third_party
required: false
schema:
default: null
type: boolean
- $ref: '#/components/parameters/XApiVersion'
responses:
'200':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiAutorampQuotePreview'
description: Preview successful
'400':
content:
application/json; charset=utf-8:
schema:
type: string
description: Bad Request
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'403':
content:
application/json; charset=utf-8:
schema:
type: string
description: Forbidden
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'500':
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/ApiError'
description: Internal Error
security:
- ApiKeyAuth: []
summary: Get autoramp quote preview
tags:
- Autoramp
/autoramps/{autoramp_id}:
delete:
description: Cancel the execution of an autoramp. After this, the given autoramp will not perform any transactions anymore.
operationId: cancelAutoramp
parameters:
- deprecated: false
description: The autoramp ID
explode: false
in: path
name: autoramp_id
required: true
schema:
format: uuid
type: string
- $ref: '#/components/parameters/XApiVersion'
responses:
'204':
description: Autoramp cancelled successfully
'401':
content:
application/json; charset=utf-8:
schema:
type: string
description: Unauthorized
'404':
content:
application/json; charset=utf-8:
schema:
type: string
description: Not Found
'500':
# --- truncated at 32 KB (138 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unstoppable-finance/refs/heads/main/openapi/unstoppable-finance-autoramp-api-openapi.yml