Skip to main content

Overview

Fiat addresses represent bank accounts that can receive payouts from your Autoramps. Before initiating an offramp, you must register the destination bank account. Iron supports multiple payment rails:
TypeDescriptionCurrency
SEPAEuropean payments via IBANEUR
ACHUS domestic transfersUSD
WireUS wire transfersUSD
RTPUS Real-Time PaymentsUSD
SWIFTInternational transfersMultiple
CHAPSUK high-value paymentsGBP
FPSUK Faster PaymentsGBP

Register a bank account

Register a bank account for a customer. The request structure varies based on the payment rail.

SEPA (Europe)

curl -X POST https://api.sandbox.iron.xyz/api/addresses/fiat \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000" \
-H "X-API-Key: $API_KEY" \
-d '{
  "customer_id": "4b85d15e-f343-41c0-809c-85314cae2fa6",
  "currency": "EUR",
  "label": "Primary Business Account",
  "bank_details": {
    "recipient": {
      "type": "Business",
      "name": "Acme Corp GmbH"
    },
    "provider_name": "Deutsche Bank",
    "provider_country": { "code": "DE" },
    "account_identifier": {
      "type": "SEPA",
      "iban": "DE89370400440532013000"
    },
    "address": {
      "street": "Crypto Street 123",
      "city": "Berlin",
      "country": { "code": "DE" },
      "postal_code": "10115"
    },
    "is_third_party": false
  }
}'

ACH (US Domestic)

curl -X POST https://api.sandbox.iron.xyz/api/addresses/fiat \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 123e4567-e89b-12d3-a456-426614174001" \
-H "X-API-Key: $API_KEY" \
-d '{
  "customer_id": "4b85d15e-f343-41c0-809c-85314cae2fa6",
  "currency": "USD",
  "label": "US Business Account",
  "bank_details": {
    "recipient": {
      "type": "Business",
      "name": "Acme Corp Inc"
    },
    "provider_name": "Chase Bank",
    "provider_country": { "code": "US" },
    "account_identifier": {
      "type": "ACH",
      "routing_number": "021000021",
      "account_number": "123456789012"
    },
    "address": {
      "street": "123 Main Street",
      "city": "New York",
      "state": "NY",
      "country": { "code": "US" },
      "postal_code": "10001"
    },
    "email_address": { "email": "finance@acme.com" },
    "phone_number": "+1-212-555-0123",
    "is_third_party": false
  }
}'

SWIFT (International)

curl -X POST https://api.sandbox.iron.xyz/api/addresses/fiat \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 123e4567-e89b-12d3-a456-426614174002" \
-H "X-API-Key: $API_KEY" \
-d '{
  "customer_id": "4b85d15e-f343-41c0-809c-85314cae2fa6",
  "currency": "USD",
  "label": "International Account",
  "bank_details": {
    "recipient": {
      "type": "Business",
      "name": "Acme Global Ltd"
    },
    "provider_name": "HSBC",
    "provider_country": { "code": "GB" },
    "account_identifier": {
      "type": "SWIFT",
      "swift_code": "HSBCGB2L",
      "account_number": "12345678"
    },
    "address": {
      "street": "10 Downing Street",
      "city": "London",
      "state": "England",
      "country": { "code": "GB" },
      "postal_code": "SW1A 2AA"
    },
    "bank_address": {
      "street": "8 Canada Square",
      "city": "London",
      "country": { "code": "GB" },
      "postal_code": "E14 5HQ"
    },
    "is_third_party": false
  }
}'
SWIFT is currently available for payouts only, with originators based in the US. We are actively working toward a global solution.

Request fields

FieldRequiredDescription
customer_idYesThe customer’s UUID
currencyYesCurrency code (e.g. EUR, USD, GBP)
labelNoOptional label for the account
bank_details.recipientYesRecipient name (Individual or Business)
bank_details.provider_nameYesBank name
bank_details.provider_countryYesBank’s country
bank_details.account_identifierYesAccount details (varies by payment rail)
bank_details.addressYesRecipient’s postal address
bank_details.email_addressUSD onlyRequired for USD accounts
bank_details.phone_numberUSD onlyRequired for USD accounts
bank_details.is_third_partyYesWhether this is a third-party account
bank_details.bank_addressSWIFT onlyRequired for SWIFT transfers

Response

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": "2025-01-15T10:30:00Z",
  "customer_id": "4b85d15e-f343-41c0-809c-85314cae2fa6",
  "bank_details": { ... },
  "label": "Primary Business Account",
  "status": "Registered",
  "currency": "EUR",
  "bank_account_identifier": {
    "type": "SEPA",
    "iban": "DE89XXXXXXXXXXXX3000"
  },
  "country": "DE",
  "bank_name": "Deutsche Bank",
  "ownership_verified": true,
  "is_third_party": false
}
The bank_account_identifier in the response is partially masked for security.

List bank accounts

Retrieve all registered bank accounts for a customer:
curl -X GET "https://api.sandbox.iron.xyz/api/addresses/fiat/{customer_id}" \
-H "X-API-Key: $API_KEY"

Query parameters

ParameterDescription
cursorPagination cursor from previous response
page_sizeNumber of results per page (max 100)
search_termFilter by IBAN, label, or bank name

List by status

Retrieve all bank accounts with a specific status across all customers:
curl -X GET "https://api.sandbox.iron.xyz/api/addresses/fiat?status=Registered" \
-H "X-API-Key: $API_KEY"

Get a specific bank account

curl -X GET "https://api.sandbox.iron.xyz/api/addresses/fiat/{customer_id}/{fiat_address_id}" \
-H "X-API-Key: $API_KEY"

Delete a bank account

Soft-delete a registered bank account:
curl -X DELETE "https://api.sandbox.iron.xyz/api/addresses/fiat/{customer_id}/{fiat_address_id}" \
-H "X-API-Key: $API_KEY"
Deleted accounts cannot be used for new transactions. This operation cannot be undone.

Address statuses

StatusDescription
RegistrationPendingRegistration is being processed
RegisteredAccount is active and ready for payouts
RegistrationFailedRegistration failed (check account details)
AuthorizationRequiredAdditional authorization needed
AuthorizationFailedAuthorization was rejected

Third-party accounts

You can register bank accounts that belong to third parties (not the customer). Set is_third_party: true in the request.
Third-party payouts may be subject to additional compliance checks and restrictions depending on your partner agreement.

Common errors

ErrorCause
400 Bad RequestInvalid IBAN format, missing required fields, or invalid country
404 Not FoundCustomer not found or does not belong to your partner
409 ConflictBank account already registered for this customer