### Example API Request Source: https://docs.iron.xyz/api-access This example demonstrates how to make a GET request to the /api/customers endpoint using an API key for authentication. Replace 'YOUR-API-KEY' with your actual generated API key. ```APIDOC ## GET /api/customers ### Description Fetches a list of customers. ### Method GET ### Endpoint https://api.sandbox.iron.xyz/api/customers ### Parameters #### Headers - **X-API-Key** (string) - Required - Your API key for authentication. - **accept** (string) - Optional - Specifies the desired response format, e.g., 'application/json; charset=utf-8'. ### Request Example ```bash curl --request GET \ --url https://api.sandbox.iron.xyz/api/customers \ --header 'X-API-Key: YOUR-API-KEY' \ --header 'accept: application/json; charset=utf-8' ``` ### Response #### Success Response (200) - **customers** (array) - A list of customer objects. - **id** (string) - The unique identifier for the customer. - **name** (string) - The name of the customer. - **email** (string) - The email address of the customer. #### Response Example ```json { "customers": [ { "id": "cust_123", "name": "Acme Corp", "email": "contact@acmecorp.com" } ] } ``` ``` -------------------------------- ### Install MoonPay CLI Source: https://docs.iron.xyz/cli Installs the `mp` binary globally using npm. Verify the installation with `mp --version`. ```bash npm install -g @moonpay/cli ``` -------------------------------- ### Offramp API Request Example (Bash) Source: https://docs.iron.xyz/offramp This example demonstrates how to make a POST request to the Offramp API to convert USDC on the Ethereum blockchain to EUR. Ensure you replace placeholders like and with your actual credentials. ```bash curl -X POST "https://api.sandbox.iron.xyz/api/autoramps" \ -H "Content-Type: application/json; charset=utf-8" \ -H "IDEMPOTENCY-KEY: " \ -H "X-API-Key: " \ -d '{ "source_currencies": [{ "type": "Crypto", "token": "USDC", "blockchain": "Ethereum" }], "destination_currency": { "type": "Fiat", "code": "EUR" }, "recipient_account": { "type": "Fiat", "account_identifier": { "type": "SEPA", "iban": "DE89370400440532013000" } }, "customer_id": "123e4567-e89b-12d3-a456-426614174000", "source_is_third_party": false }' ``` -------------------------------- ### Sandbox Transaction Response Example Source: https://docs.iron.xyz/sandbox This is an example of a successful response when creating a sandbox transaction. ```json { "id": "7d834f68-cea8-496a-8eae-bb0772365028", "autoramp_id": "d3c2b1a4-e5f6-78a9-0123-fedcba654321", "amount_in": "100", "currency_in": "EUR", "amount_out": "99.75", "currency_out": "EURC", "customer_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012", "state": "Pending", "created_at": "2026-01-15T10:30:00Z" } ``` -------------------------------- ### Example Message for Ownership Verification Source: https://docs.iron.xyz/reference-sandbox/addresses/register-a-self-hosted-wallet-address This is an example of the message format required to verify ownership of a self-hosted wallet address. The message must include the wallet address, customer ID, and the date of signing. ```ignore I am verifying ownership of the wallet address GEhVdAGrGFvbAyj9ieZQt43mRAZZu4hRQ5MaKGgvpJMq as customer 7feaf33d-8551-4144-bfcb-01c86bcff857. This message was signed on 20/01/2024 to confirm my control over this wallet. ``` -------------------------------- ### Example Signatures for Ownership Verification Source: https://docs.iron.xyz/reference-sandbox/addresses/register-a-self-hosted-wallet-address Examples of valid signatures for proof of ownership. Signatures must be generated using the private key of the wallet address and follow standard formats for Solana or EVM. ```text solana signature: 3Z3TWYMhq9vrA6K9ajQMQmVi1aXTmyASGLEvMpzNdS3BdWhNKeQGHtvF6cFNzR96tsnPPocJPjxfVsjtay9iWgTG evm signature: 0x1234567890abcdef1234567890abcdef12345678900xa5f1751b75a28c12694f02590d29b8cdd68b4f5c783273a75823fc6cfeaa702f1a65fa7c1838ae799fe755c92443cb51631d000922329cdd2ce799eee75f42531babcdef1234567890abcdef ``` -------------------------------- ### Example Identification Response with Feedback Source: https://docs.iron.xyz/onboarding This JSON object shows an example of an identification response that includes feedback comments for the customer. ```json { "id": "abc-123", "status": "Declined", "with_edd": false, "review_comment": "Please provide a clearer photo of your ID.", "step_status": { "identity": { "result": "Declined", "comment": "Document is blurry", "retry": true }, "selfie": { "result": "Approved", "comment": null, "retry": false }, "questionnaire": { "result": "Approved", "comment": null, "retry": false } } } ``` -------------------------------- ### Example Link Identification Response Source: https://docs.iron.xyz/hosted This is an example of a successful response when creating a Link identification. The `url` field contains the link to be passed to the customer for verification. ```json { "id": "c3d4e5f6-a7b8-9012-cdef-345678901234", "customer_id": "b2c3d4e5-f6a7-8901-bcde-f23456789012", "status": "Pending", "url": "https://verify.iron.xyz/start?token=...", "created_at": "2026-01-15T10:00:00Z", "updated_at": "2026-01-15T10:00:00Z" } ``` -------------------------------- ### Example Response from Required Signings Source: https://docs.iron.xyz/onboarding This is an example of the JSON response structure when retrieving required signings. It includes the display name, ID, and URL for each document that needs to be signed. ```json [ { "display_name": "Terms and Conditions", "id": "019ababb-ddd6-7f02-8f5d-7469a0e8afb6", "url": "https://example.com/terms-and-conditions" } ] ``` -------------------------------- ### Autoramp Creation Response Example Source: https://docs.iron.xyz/account This is an example response when creating an autoramp, detailing the authorization status, deposit rails, and creation timestamp. ```json { "id": "d3c2b1a4-e5f6-78a9-0123-fedcba654321", "status": "Authorized", "deposit_rails": [ { "type": "Iban", "id": "xyz98765-lkjh-4321-mnop-0987654321ab", "iban": "DE89370400440532013000", "name": "Jane Doe", "bic": "COBADEFFXXX", "bank_name": "Good Bank", "bank_country": "Germany", "currency": { "type": "Fiat", "code": "EUR" } } ], "created_at": "2026-01-15T10:05:00Z" } ``` -------------------------------- ### Sample Signature Source: https://docs.iron.xyz/webhooks Example of a webhook signature for verifying payload authenticity. ```APIDOC ## Sample Signature ```bash Secret: whsec_1s/keE/2+3eQUBc+7kedMAFRoM0twsrBYPpGWbt2/csF6pbMws9RMDRU1wtRas0PwDYgDd3t7mamKhO4LBjBiQ Raw payload: {"customer_id":"3f9830ca-a98e-4020-a25b-80f21da86c97","message":{"Ping":{"id":"0196f318-b593-7803-a8f1-047d53179e06"}}} signatureHeader: v1=85809c7bba57a92bc9766a2af441108ae43f420f27cb1b10ec912c5bc5603a69 timestamp: 1747835371 deliveryId: f22ba628-4ab6-4a01-8d08-ff5de0ca2334 ``` ``` -------------------------------- ### Webhook Signature Verification Example Source: https://docs.iron.xyz/webhooks Sample data for verifying webhook authenticity using a secret. ```bash Secret: whsec_1s/keE/2+3eQUBc+7kedMAFRoM0twsrBYPpGWbt2/csF6pbMws9RMDRU1wtRas0PwDYgDd3t7mamKhO4LBjBiQ Raw payload: {"customer_id":"3f9830ca-a98e-4020-a25b-80f21da86c97","message":{"Ping":{"id":"0196f318-b593-7803-a8f1-047d53179e06"}}} signatureHeader: v1=85809c7bba57a92bc9766a2af441108ae43f420f27cb1b10ec912c5bc5603a69 timestamp: 1747835371 deliveryId: f22ba628-4ab6-4a01-8d08-ff5de0ca2334 ``` -------------------------------- ### Set Up a Virtual Account with CLI Source: https://docs.iron.xyz/cli Initiate the creation of a virtual account, which involves starting KYC verification and completing necessary steps. ```bash mp virtual-account create ``` -------------------------------- ### Import Wallet using CLI Source: https://docs.iron.xyz/cli Import an existing wallet into the CLI using either a mnemonic phrase or a private key. Specify the chain for private key imports. ```bash mp wallet import --name "restored" --mnemonic "word1 word2 ..." ``` ```bash mp wallet import --name "imported" --key --chain ethereum ``` -------------------------------- ### Submit KYC and EDD Questionnaires with Token Source: https://docs.iron.xyz/reliance-kyc-token-sharing Use this endpoint to initiate customer onboarding with both KYC and EDD questionnaires. Include the 'kyc_questionnaire' and 'edd_questionnaire' objects in the request body for a comprehensive onboarding process. ```bash curl --request POST \ --url https://api.sandbox.iron.xyz/api/customers//identifications/v2 \ --header 'X-API-Key: ' \ --header 'Idempotency-Key: ' \ --header 'content-type: application/json; charset=utf-8' \ --data '{ \ "type": "Token", \ "token": "sumsub_token", \ "intended_use": "Investing", \ "ip_address": "203.0.113.42", \ "kyc_questionnaire": { \ "employment_status": "Employed", \ "yearly_gross_income": "From50001To60000", \ "source_of_wealth": "Salary", \ "expected_monthly_transaction_count": "Between5And10", \ "expected_monthly_transaction_volume": "MoreThan500LessThan2000" \ }, \ "edd_questionnaire": { \ "occupation": "FinancialServices", \ "approximate_net_worth": "Between100001And300000", \ "source_of_funds_proof": "" \ } \ }' ``` -------------------------------- ### Example Webhook Event Payloads Source: https://docs.iron.xyz/webhooks These are example JSON payloads for various webhook events. Each payload includes a type, timestamp, and a data object specific to the event. ```json // A new transaction happened for this customer { "type": "transaction", "timestamp": "2025-06-02T14:59:26.769468+00:00", "data": { "customer_id": "2ff3e394-978b-4489-8795-0a4e769a04c6", "message": { "Event": { "id": "7d834f68-cea8-496a-8eae-bb0772365028", "kind": "Transaction" } } } } ``` ```json // A new autoramp was created by / for this customer { "type": "new_autoramp", "timestamp": "2025-06-02T14:59:26.769588+00:00", "data": { "customer_id": "4dcfe5af-3947-4928-b17f-a8fb13a68758", "message": { "Event": { "id": "87f1a893-3691-494d-b815-215f5486a5b4", "kind": "NewAutoramp" } } } } ``` ```json // A new bank account was registered by / for this customer { "type": "new_bank_account", "timestamp": "2025-06-02T14:59:26.769593+00:00", "data": { "customer_id": "0e98736e-0be6-4f76-9451-ec2fab006dd4", "message": { "Event": { "id": "1cd9daaa-1ad1-48b8-a418-a3964dee1028", "kind": "NewBankAccount" } } } } ``` ```json // The autoramp with `id` received a deposit address { "type": "deposit_address_created", "timestamp": "2025-06-02T14:59:26.769598+00:00", "data": { "customer_id": "45cd0169-7978-49b0-99ed-cb855acdba79", "message": { "Event": { "id": "c8422122-5221-478a-95f4-953157277753", "kind": "DepositAddressCreated" } } } } ``` ```json // A new customer has been created { "type": "customer_created", "timestamp": "2025-06-02T14:59:26.769647+00:00", "data": { "customer_id": "af0315f0-a683-4330-a7b9-ca0c6a19ce87", "message": { "Event": { "id": "6be8dd21-52a5-4616-b57d-54c4ec8acbf3", "kind": "CustomerCreated" } } } } ``` ```json // The status of a transaction changed { "type": "transaction_status", "timestamp": "2025-06-02T14:59:26.769658+00:00", "data": { "customer_id": "ebcea2b8-7caf-4ecf-ac59-95c5a6d7fefa", "message": { "TransactionStatus": { "id": "e4f31eb4-da3a-4776-b70e-856a88492a17", "status": "Pending", "transaction_status": "ConversionInProgress", "transaction_hash": "0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060" } } } } ``` ```json // The status of a fiat address changed { "type": "register_fiat_address_status", "timestamp": "2025-06-02T14:59:26.769663+00:00", "data": { "customer_id": "0ae92a7d-82c5-4e98-ad6e-3dbb6e573b2c", "message": { "RegisterFiatAddressStatus": { "id": "bf1b777d-2f46-4f7c-a5be-b6f825cfcd7b", "status": "AuthorizationRequired" } } } } ``` ```json // The status of a customer has changed { "type": "customer_status", "timestamp": "2025-06-02T14:59:26.769750+00:00", "data": { "customer_id": "b714a479-0cf8-4390-9f24-d32df02dff36", "message": { "CustomerStatus": { "id": "eb1bbc6a-1256-4653-badf-7d0d7e96deba", "status": "Active" } } } } ``` ```json // The status of an autoramp has changed { "type": "register_autoramp_status", "timestamp": "2025-06-02T14:59:26.769759+00:00", "data": { "customer_id": "357c34d3-7abe-4334-b8b5-6f8e84ba756e", "message": { "RegisterAutorampStatus": { "id": "bc739df1-2816-4034-8b36-b99510370f18", "status": "Created" } } } } ``` ```json // The status of an identification has changed { "type": "identification_status", "timestamp": "2025-06-02T14:59:26.769768+00:00", "data": { "customer_id": "8a7c34d3-7abe-4334-b8b5-6f8e84ba756f", "message": { "IdentificationStatus": { "id": "cd849ef2-3927-5145-c947-c110481f29ca", "status": "Approved" } } } } ``` ```json // A ping event { "type": "ping", "timestamp": "2025-06-02T14:59:26.769763+00:00", "data": { "customer_id": "59f42528-3c5a-4448-b2df-65369adcee42", "message": { "Ping": { "id": "1d9c36fb-83bf-49cc-9b1f-aff970b6ce96" } } } } ``` -------------------------------- ### Fetch Customers using API Key Source: https://docs.iron.xyz/api-access Use this `curl` command to authenticate with the Sandbox API and fetch a list of customers. Replace `YOUR-API-KEY` with your actual key. Ensure the `X-API-Key` header is present for authentication. ```bash curl --request GET \ --url https://api.sandbox.iron.xyz/api/customers \ --header 'X-API-Key: YOUR-API-KEY' \ --header 'accept: application/json; charset=utf-8' ``` -------------------------------- ### Manage Existing Wallets with CLI Source: https://docs.iron.xyz/cli List all managed wallets, retrieve details for a specific wallet, or delete a wallet. Deleting a wallet is irreversible. ```bash mp wallet list ``` ```bash mp wallet retrieve --wallet "my-wallet" ``` ```bash mp wallet delete --wallet "my-wallet" --confirm ``` -------------------------------- ### Get Country Subdivisions OpenAPI Specification Source: https://docs.iron.xyz/reference-sandbox/addresses/get-country-subdivisions This OpenAPI specification defines the GET /country_subdivisions/{country_code} endpoint. It includes details on the request parameters, response schemas, and possible error codes. ```yaml openapi: 3.1.0 info: description: The Stablecoin Payment Network title: Iron API - Sandbox version: 1.0-13720 servers: - url: https://api.sandbox.iron.xyz/api security: [] tags: - description: >- Wallet and bank account registration Every wallet address that interacts with Iron must be registered (linked) to a customer **before** it can be used in any flow — onramp, offramp, or swap. This is a regulatory requirement under the **Travel Rule**, which obliges Virtual Asset Service Providers to exchange originator and beneficiary information for crypto transfers. Iron supports two wallet types: - **Self-hosted wallets** — the customer controls the private key. Registration requires a signed proof-of-ownership message. - **Hosted wallets** — the wallet is custodied by another VASP (e.g. Coinbase, Kraken). Registration requires the VASP's DID so Iron can exchange travel-rule data with the custodian. Similarly, fiat bank accounts must be registered before they can receive offramp payouts. name: Addresses - description: Operations on Autoramp name: Autoramp - description: Operations on Chronicle collateral name: ChronicleCollateral - description: Operations on Currencies name: Currencies - description: Operations on Customers name: Customer - description: Operations on Exchange Rate name: ExchangeRate - description: Operations on Fee Profiles name: FeeProfiles - description: Operations for Sandbox Testing name: Sandbox - description: Operations on SSE name: Sse - description: Operations on Terms and Conditions name: TermsAndConditions - description: Operations on Webhooks name: Webhooks paths: /country_subdivisions/{country_code}: get: tags: - Addresses summary: Get country subdivisions description: > Utility endpoint to get a list of all accepted subdivisions (states, provinces, regions, etc.) for a given country operationId: getCountrySubdivisions parameters: - deprecated: false description: The ISO 3166-1 Alpha-2 country code explode: true in: path name: country_code required: true schema: description: ISO 3166-1 Alpha-2 country code (e.g. "DE", "US") example: DE maxLength: 2 minLength: 2 type: string responses: '200': content: application/json; charset=utf-8: schema: items: $ref: '#/components/schemas/CountrySubdivision' type: array description: GET Subdivisions Succeeded '401': description: Unauthorized '404': content: application/json; charset=utf-8: schema: type: string description: Country not found or has no subdivisions security: - ApiKeyAuth: [] components: schemas: CountrySubdivision: properties: code: type: string name: type: string required: - code - name title: CountrySubdivision type: object securitySchemes: ApiKeyAuth: description: API Key in: header name: X-API-Key type: apiKey ``` -------------------------------- ### Create a Fiat-to-Stablecoin Onramp Source: https://docs.iron.xyz/cli Use this command to create an onramp rule for converting fiat currency to stablecoins. Ensure your account is verified and a wallet is registered. ```bash mp virtual-account onramp create \ --name "EUR to USDC" \ --fiat EUR \ --stablecoin USDC \ --wallet ``` -------------------------------- ### Create a New Wallet with CLI Source: https://docs.iron.xyz/cli Creates a new Hierarchical Deterministic (HD) wallet with addresses for multiple blockchains. Private keys are stored encrypted on your local machine. ```bash mp wallet create --name "my-wallet" ``` -------------------------------- ### Example Signatures for Address Ownership Verification Source: https://docs.iron.xyz/reference-sandbox/addresses/register-a-self-hosted-wallet-address Examples of signatures generated using the private key of the wallet address. The format varies depending on the blockchain network (e.g., Solana or EVM-compatible chains). ```solana 3Z3TWYMhq9vrA6K9ajQMQmVi1aXTmyASGLEvMpzNdS3BdWhNKeQGHtvF6cFNzR96tsnPPocJPjxfVsjtay9iWgTG ``` ```evm 0x1234567890abcdef1234567890abcdef12345678900xa5f1751b75a28c12694f02590d29b8cdd68b4f5c783273a75823fc6cfeaa702f1a65fa7c1838ae799fe755c92443cb51631d000922329cdd2ce799eee75f42531babcdef1234567890abcdef ``` -------------------------------- ### Create a Business Customer Source: https://docs.iron.xyz/kyb Use this endpoint to create a new business customer. The customer is initially created in the `IdentificationRequired` status. Ensure you use a unique `idempotency-key` for each request. ```bash curl --request POST \ --header 'content-type: application/json; charset=utf-8' \ --header 'idempotency-key: ' \ --header 'x-api-key: ' \ --data '{"name": "acme_corp", "email": "admin@acme.com"}' \ --url 'https://api.sandbox.iron.xyz/api/customers' ``` -------------------------------- ### Create a Customer (Person) Source: https://docs.iron.xyz/account Use this endpoint to create a new customer record for an individual. The customer will initially be in the `IdentificationRequired` status. Ensure you provide a unique idempotency key for each request. ```bash curl -X POST "https://api.sandbox.iron.xyz/api/customers" \ -H "Content-Type: application/json; charset=utf-8" \ -H "IDEMPOTENCY-KEY: " \ -H "X-API-Key: " \ -d '{ "customer_type": "Person", "name": "jane_doe", "email": "jane@example.com" }' ``` -------------------------------- ### Get Autoramp Quote Source: https://docs.iron.xyz/reference-sandbox/autoramp/get-a-quote-for-an-autoramp This section details the parameters required to get a quote for an autoramp. It includes information about source and destination currencies, amounts, customer details, and optional parameters like fee profiles and rate lock policies. ```APIDOC ## POST /autoramp/quote ### Description Requests a quote for an autoramp transaction. ### Method POST ### Endpoint /autoramp/quote ### Request Body - **source_currency** (Currency) - Required - The currency of the source amount. - **destination_currency** (Currency) - Required - The currency of the destination amount. - **amount_in** (Amount) - Required - The amount to be sent. - **amount_out** (Amount) - Required - The amount to be received. - **customer_id** (uuid) - Required - The customer ID. - **deposit_account_type** (DepositAccountType) - Required - The type of deposit account. - **recipient_account** (Account) - Required - The recipient's account details. - **fee_profile_id** (uuid) - Optional - The fee profile ID to use for the autoramp. If not provided, the default fee profile for the partner will be used. - **rate_expiry_policy** (RateExpiryPolicy) - Optional - Policy for rate expiry. - **rate_lock_valid_until** (date-time) - Optional - The date and time until which the rate is locked. - **slippage_tolerance_in_bips** (decimal) - Optional - The slippage tolerance in basis points. - **external_id** (string) - Optional - An external identifier for the transaction. - **is_third_party** (boolean) - Optional - Indicates if this is a third-party autoramp. - **batch_payout** (boolean) - Optional - If true, payouts will be batched daily. Only supported for fiat destination currencies. - **ach_payment_reference** (string) - Optional - A message for outgoing ACH transfers (max 10 characters). - **fps_payment_reference** (string) - Optional - A message for outgoing FPS transfers (max 18 characters). - **sepa_payment_reference** (string) - Optional - A message for outgoing SEPA transfers (max 140 characters). - **swift_payment_reference** (string) - Optional - A message for outgoing SWIFT transfers (max 140 characters). ### Response #### Success Response (200) - **quote_id** (uuid) - The ID of the generated quote. - **rate** (decimal) - The exchange rate. - **fee** (Fee) - The fee details for the transaction. - **fee_settlement** (FeeSettlement) - The fee settlement details. - **valid_until** (string) - The date and time until which the quote is valid. - **signature** (string) - The signature for the quote. ### Request Example ```json { "source_currency": "USD", "destination_currency": "KES", "amount_in": { "amount": "100.00", "currency": "USD" }, "amount_out": { "amount": "13500.00", "currency": "KES" }, "customer_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "deposit_account_type": "BANK_ACCOUNT", "recipient_account": { "account_number": "1234567890", "account_type": "SAVINGS", "bank_code": "001" }, "fee_profile_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "rate_expiry_policy": "KEEP_RATE", "rate_lock_valid_until": "2024-12-31T23:59:59Z", "slippage_tolerance_in_bips": "50", "external_id": "EXT-12345", "is_third_party": false, "batch_payout": true, "ach_payment_reference": "PAYREF123", "fps_payment_reference": "FPSREF456", "sepa_payment_reference": "SEPAREF789", "swift_payment_reference": "SWIFTREFABC" } ``` ### Response Example ```json { "quote_id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "rate": "135.00", "fee": { "amount": "1.00", "currency": "USD" }, "fee_settlement": { "fee_currency": "USD", "fee_amount": "1.00" }, "valid_until": "2024-01-01T10:00:00Z", "signature": "a_generated_signature_string" } ``` ``` -------------------------------- ### List Token Balances Source: https://docs.iron.xyz/cli Verify your wallet balances after funds have been converted and delivered. Specify the wallet name to check. ```bash mp token balance list --wallet "my-wallet" ``` -------------------------------- ### Get Autoramp by ID Source: https://docs.iron.xyz/reference-sandbox/autoramp/get-an-autoramp-by-id Fetches an autoramp using its unique identifier. ```APIDOC ## GET /autoramps/{autorampId} ### Description Retrieves a specific autoramp by its ID. ### Method GET ### Endpoint /autoramps/{autorampId} ### Parameters #### Path Parameters - **autorampId** (string) - Required - The unique identifier of the autoramp. ### Response #### Success Response (200) - **autoramp** (object) - The autoramp object containing its details. #### Response Example { "autoramp": { "id": "AUTORAMP_ID_123", "name": "Example Autoramp", "configuration": { "type": "ExampleType", "settings": {} }, "createdAt": "2023-01-01T12:00:00Z", "updatedAt": "2023-01-01T12:00:00Z" } } ``` -------------------------------- ### Create a New Customer Source: https://docs.iron.xyz/onboarding Use this endpoint to create a new customer record. The customer will initially be in the `IdentificationRequired` status. Ensure you provide a unique `idempotency-key` for each request. ```bash curl --request POST \ --header 'content-type: application/json; charset=utf-8' \ --header 'idempotency-key: ' \ --header 'x-api-key: ' \ --data '{"name": "new_amazing_customer", "email": "customer@example.com", "customer_type": "Person"}' \ --url 'https://api.sandbox.iron.xyz/api/customers' ``` -------------------------------- ### Get an Autoramp by ID Source: https://docs.iron.xyz/reference-sandbox/autoramp/get-an-autoramp-by-id Retrieves a single autoramp by its unique identifier. ```APIDOC ## GET /autoramps/{autoramp_id} ### Description Get a single autoramp by ID. ### Method GET ### Endpoint /autoramps/{autoramp_id} ### Parameters #### Path Parameters - **autoramp_id** (string) - Required - The autoramp ID ### Responses #### Success Response (200) - **Autoramp** (object) - Get autoramp successful #### Error Response - **401** - Unauthorized - **404** - Not Found - **500** - Internal Error ``` -------------------------------- ### List Transactions Source: https://docs.iron.xyz/cli View a list of all fiat-to-stablecoin conversions associated with your virtual account. ```bash mp virtual-account transaction list ``` -------------------------------- ### Get Customer Microdeposits Source: https://docs.iron.xyz/reference-sandbox/customer/get-customer-microdeposits Retrieves all microdeposits for a specific customer by ID. ```APIDOC ## GET /customers/{id}/microdeposits ### Description Retrieve all microdeposits for a specific customer by ID. ### Method GET ### Endpoint /customers/{id}/microdeposits ### Parameters #### Path Parameters - **id** (string) - Required - the ID of the Customer to GET microdeposits for #### Header Parameters - **X-SUB-PARTNER-ID** (string) - Optional - Optional sub-partner UUID, if provided, the customer will be filtered for the sub-partner ### Responses #### Success Response (200) - **Microdeposit** (array) - An array of Microdeposit objects. #### Error Response (401) - **string** - GET Microdeposits Failed (Unauthorized) #### Error Response (404) - **string** - GET Microdeposits Failed (Resource Not Found) #### Error Response (500) - **ApiError** - GET Microdeposits Failed (Internal Error) ``` -------------------------------- ### Get All Fiat Addresses Source: https://docs.iron.xyz/reference-sandbox/addresses/get-all-fiat-addresses-with-status Fetches a list of all fiat addresses and their statuses. ```APIDOC ## GET /addresses/fiat ### Description Retrieves a list of all fiat addresses and their associated statuses. ### Method GET ### Endpoint /addresses/fiat ### Query Parameters - **status** (string) - Optional - Filters addresses by their status (e.g., 'active', 'inactive'). ### Response #### Success Response (200) - **addresses** (array) - A list of fiat address objects. - **address** (string) - The fiat address. - **currency** (string) - The currency of the address. - **status** (string) - The current status of the address (e.g., 'active', 'inactive', 'pending'). #### Response Example { "addresses": [ { "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", "currency": "BTC", "status": "active" }, { "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq", "currency": "BTC", "status": "pending" } ] } ``` -------------------------------- ### WebhookPingMessage Source: https://docs.iron.xyz/webhooks A message sent during webhook setup or testing to confirm connectivity. ```APIDOC ## WebhookPingMessage ### Description Sent during webhook setup or testing. ### Schema ```json { "id": "uuid" } ``` ``` -------------------------------- ### Get Exchange Rate Source: https://docs.iron.xyz/reference-sandbox/exchangerate/get-exchange-rate Retrieves the current exchange rate between two currencies. ```APIDOC ## GET /exchangerate ### Description Retrieves the current exchange rate between two currencies. ### Method GET ### Endpoint /exchangerate ### Parameters #### Query Parameters - **from** (string) - Required - The currency to convert from (e.g., 'USD', 'BTC'). - **to** (string) - Required - The currency to convert to (e.g., 'EUR', 'ETH'). ### Response #### Success Response (200) - **rate** (number) - The current exchange rate. - **from** (string) - The source currency. - **to** (string) - The target currency. #### Response Example { "rate": 0.85, "from": "USD", "to": "EUR" } ``` -------------------------------- ### Get Exchange Rate Source: https://docs.iron.xyz/reference-sandbox/exchangerate/get-exchange-rate Retrieves the exchange rate between a source and target currency. ```APIDOC ## GET /exchangerate ### Description Retrieves the exchange rate between a source and target currency. ### Method GET ### Endpoint /exchangerate ### Query Parameters - **from_currency** (string) - Required - The currency to convert from (e.g., USD). - **to_currency** (string) - Required - The currency to convert to (e.g., EUR). - **amount** (string) - Required - The amount of the `from_currency` to convert. ### Response #### Success Response (200) - **ExchangeRate** (object) - The details of the exchange rate. ### Response Example ```json { "from": { "code": "USD", "type": "Fiat" }, "to": { "code": "EUR", "type": "Fiat" }, "out_amount": { "amount": "92.50", "currency": { "code": "EUR", "type": "Fiat" } }, "effective_rate": "0.9250", "fee": { "total_fee": { "amount": "0.10", "currency": { "code": "USD", "type": "Fiat" } }, "iron_fee": { "amount": "0.05", "currency": { "code": "USD", "type": "Fiat" } }, "partner_fee": { "amount": "0.03", "currency": { "code": "USD", "type": "Fiat" } }, "network_fee": { "amount": "0.02", "currency": { "code": "USD", "type": "Fiat" } }, "transaction_fee": { "amount": "0.00", "currency": { "code": "USD", "type": "Fiat" } }, "banking_fee": { "amount": "0.00", "currency": { "code": "USD", "type": "Fiat" } }, "network_fees": [], "network_fees_with_settlement": [], "partner_fees": [] } } ``` ``` -------------------------------- ### Manage Virtual Account KYC and Agreements Source: https://docs.iron.xyz/cli Continue or restart the KYC verification process for a virtual account, and list or accept legal agreements. ```bash mp virtual-account kyc continue ``` ```bash mp virtual-account retrieve ``` ```bash mp virtual-account kyc restart ``` ```bash mp virtual-account agreement list ``` ```bash mp virtual-account agreement accept --contentId ```