FiatDeposit Event
Overview
The FiatDeposit webhook event is triggered when a customer makes a fiat deposit to an assigned bank account number. This event allows your application to receive real-time notifications about incoming fiat deposits, enabling you to take the relevant actions within your system and ensures your system stays informed about all incoming fiat transactions.
If a deposit is refunded, the Refunds field will contain a list of refund attempts and their corresponding statuses, allowing you to track the complete lifecycle of any refunded transactions.
To configure a FiatDeposit webhook subscription, reference the Webhook Configuration page.
Webhook Lifecycle
A single fiat deposit will trigger multiple webhooks as it progresses:
| Webhook # | Status | What Happened |
|---|---|---|
| 1 | Pending | Noah received the fiat deposit from the bank. Compliance screening has begun. |
| 2 | Settled | Compliance screening passed. The deposit is confirmed. |
| 2 (alt) | Failed | Compliance screening failed. A refund is initiated. |
If the deposit is part of a fiat-to-crypto flow, you will also receive Transaction webhooks.
Expected Settlement Times
Once funds arrive from the banking network, fiat-to-crypto conversion is instant—USDC is minted immediately upon the FiatDeposit.Settled webhook firing. The total time your customers wait depends on which banking rail they use to send funds:
| Payment Method | Bank Settlement Time | Total Time to Crypto |
|---|---|---|
| Standard SEPA | 1–3 business days | 1–3 business days |
| SEPA Instant | Same day | Same day |
| Standard ACH | 1–3 business days | 1–3 business days |
| ACH Same-day | Same day | Same day |
| Wire Transfer | Same day | Same day |
When Does FiatDeposit.Settled Fire?
The Settled webhook fires once the deposit clears compliance review—typically within minutes of funds arriving from the bank. At this point, the fiat amount is confirmed and (for fiat-to-crypto flows) USDC minting begins immediately.
Client Communication Guidance
When setting expectations with your customers, we recommend messaging such as:
- For standard SEPA/ACH: "Your transfer typically arrives within 1–3 business days. Once received, your crypto is available instantly."
- For instant rails (SEPA Instant, Same-day ACH, Wire): "Your transfer settles same day. Once received, your crypto is available instantly."
This framing emphasizes that the wait time is due to traditional banking infrastructure, not your platform or Noah's processing.
Status Reference
| Status | Description |
|---|---|
Pending | Deposit received from bank, awaiting compliance review |
Settled | Deposit confirmed, funds available for use |
Failed | Deposit failed or was rejected; check Refunds array |
Event Payload Structure
When a FiatDeposit event occurs, Noah sends a webhook notification to your configured endpoint with the following JSON payload:
{
"Data": {
"Created": "2024-10-17T13:50:11Z",
"CustomerID": "418cf282-e60e-45ad-8db8-761a7f7f2210",
"FiatAmount": "10.6",
"FiatCurrency": "EUR",
"PaymentMethodID": "Bank/Sepa/EUR/SEOUGB21/GB71SEOU19870010277225",
"PaymentSystemID": "A10050DE67M10F1R23BL00D7KP"
"ID": "96369c50-7fd3-4222-a76d-1c054e6ea9de",
"Sender": {
"Details": {
"AccountNumber": "GB29NWBK60161331926819",
"Type": "FiatPaymentMethodBankDisplay"
},
"FullName": "Jonathan Smith"
},
"Status": "Settled",
"Refunds": [
{
"RefundID": "1950886d-e2c2-444f-ac5c-eb8f94e9fc1b",
"RequestedTime": "2024-10-18T13:00:00Z",
"RefundedAmount": {
"Amount": "10.6",
"FiatCurrency": "EUR"
},
"Status": "Pending"
}
]
},
"EventType": "FiatDeposit",
"EventVersion": 1729340080833,
"Occurred": "2024-10-19T12:14:41Z",
"UserID": "ory|62727185528481006f3ff4cc"
}
Handling Refunds
When a FiatDeposit has Status: "Failed", the Refunds array contains refund details:
{
"Data": {
"Status": "Failed",
"Refunds": [
{
"RefundID": "1950886d-e2c2-444f-ac5c-eb8f94e9fc1b",
"RequestedTime": "2024-10-18T13:00:00Z",
"RefundedAmount": {
"Amount": "10.6",
"FiatCurrency": "EUR"
},
"Status": "Pending"
}
]
}
}
Refund Status Values
You will receive additional FiatDeposit webhooks as the refund status changes.
| Status | Meaning |
|---|---|
Pending | Refund requested, being processed |
Completed | Funds returned to customer's bank |
Failed | Refund could not complete (contact support) |
Compliance Freezes
Deposits requiring Enhanced Due Diligence (EDD) are frozen at the FiatDeposit step until review completes:
- Noah's Compliance team requests documentation
- Customer has 10 days to provide documents
- On approval: funds are unfrozen and converted to crypto
- On rejection: funds are automatically refunded to the depositing Payment Method
For comprehensive information on freezes, refunds, and reversals, see Compliance Freezes, Refunds & Reversals.
Simulate a FiatDeposit
You can simulate the action of a customer depositing fiat into an assigned bank account number, for testing purposes, in the Sandbox Environment. To do this, call the Simulate Fiat Deposit endpoint.
Fields to Store for Reconciliation
| Field | Purpose |
|---|---|
Data.ID | Unique deposit identifier |
Data.CustomerID | Link to your customer record |
Data.PaymentMethodID | Payment method reference |
EventVersion | Deduplication and ordering |