Webhooks are triggered when a significant event occurs within the system that a partner might be interested in. The payload contains details about the event type and the associated data.
Label: The name of your webhook. If your webhook caused an error or did not respond, you will see a danger icon next to the name. If you hover over it, you will see more information
Status: Whether your webhook is enabled
Topics: Webhooks can register for different topics
Ping: After creating a webhook, you can press this button to force sending an event to the webhook in order to trigger it
Webhooks can be registered in the Partner Area. Click the Webhook navigation entry, and then the “Register Webhook” button.
The webhook URL has to be a https:// URL that points to where you want the webhook to go. You can select which topics you’re interested in for the webhookOnce you created the webhook, you will be provided the webhook secret in the next screen. This is needed to validate the webhook signature.
Iron will send webhook notifications to the endpoint URL you’ve registered during integration setup. Each request includes headers for verification, and a JSON body describing the event.
Iron follows the Standard Webhooks specification:Headerscontent-type: Always set to application/json.webhook-id: Unique UUID (v4) of the delivery attempt. Use this for logging and idempotency.webhook-timestamp: Unix timestamp (in seconds) indicating when the webhook was sent.webhook-signature : Signature used to verify request authenticity. Format: v1=\<HMAC\_SHA256>
Webhook requests include a top-level WebhookContainer object. The message field varies depending on the event type.Example PayloadsBelow, you can find example payloads for all possible events that the webhooks payload can deliver.
Copy
Ask AI
// 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" } } }}// 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" } } }}// 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" } } }}// The autoramp with `id` recieved 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" } } }}// 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" } } }}// 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" } } }}// 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" } } }}// 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" } } }}// The status of a 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" } } }}// 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" } } }}
Pending → Customer has not started the processProcessed → Customer has completed the input processPendingReview → Identification is ready for review by Compliance TeamApproved Rejected → Identification has been approved by Compliance TeamRejected → Identification has been rejected by Compliance Team
Your webhook endpoint must return:HTTP/1.1 200 OKReturn 200 to acknowledge successful receipt. Any other status code may cause the webhook to be retried.
Note:We recommend logging all webhook webhook-id and response statuses for audit and troubleshooting purposes.