Bank Onramp Workflow
Overview
Assign a bank account number (e.g., IBAN, ACH routing number) to a given customer to receive repeatable fiat Deposits which are automatically converted to the defined CryptoCurrency
and optionally withdrawn to a customer's DestinationAddress
using the Bank deposit to onchain address endpoint. For more details on this product, see the Bank Onramp Product page.
Prerequisites
1. Register Your Interest
- Register your interest or book a demo by contacting us on business@noah.com.
- Signup for a Sandbox account and contact us to upgrade it to a business account.
2. Authentication & Request Signing
For guidance on generating and configuring your API keys, see the Authentication page.
- Generate your Sandbox API key via the Business Dashboard.
- Include your API key in the
X-Api-Key
header of all requests. - Request Signing is optional in Sandbox and required in Production. It is important to setup Request Signing before migrating to Production, to do this see the Request Signing page.
3. Webhook Configuration
For guidance on webhook subscriptions and configuration, see the Configuration page.
- Optionally whitelist NOAH's Webhook IP addresses, detailed on the Whitelisting section.
- Create a webhook subscription for the following event types, the details required to ingest the webhooks are also available on their respective pages.
FiatDeposit
- see FiatDeposit Event.Transaction
- see Transaction Event.
Throughout the Bank Onramp Workflow, you will receive 3 webhooks:
FiatDeposit
- to notify you when the customer has sent a fiat payment to their assigned bank account number.- Cryptocurrency purchase
Transaction
event type - to notify you when the fiat has been converted to your chosenCryptoCurrency
and credited to your NOAH Account. - Cryptocurrency withdrawal
Transaction
- to notify you when the funds have been withdrawn to your customer'sDestinationAddress
.
Execution Steps
1. Create a Customer
When integrating under the Reliance Model, you must ensure that any customer executing a transaction has a valid and complete KYC Status in your system.
- Create a customer, if not already created, via the Customers endpoint.
- Ensure your
CustomerID
is stored against the compliance profile of the same customer, to reference when creating transactions.
2. Call the Workflow Endpoint
- Call the Bank Onramp Workflow endpoint, passing the following data:
CustomerID
: pertaining to the customer initiating the Onramp.- Transaction Details: including the
FiatCurrency
,CryptoCurrency
, withdrawalNetwork
andDestinationAddress
- You will receive a
200
response to indicate that the bank account number has been assigned to the customer and is prepared to accept a fiat deposit.
3. Receive the FiatDeposit Webhook
- You will receive a
FiatDeposit
event type when a customer performs a fiat Deposit into their assigned bank account number. See FiatDeposit Event.
Simulate a Fiat Deposit (Sandbox Only)
In the Sandbox environment you can simulate a fiat deposit, to trigger the remaining webhooks and transactions.
- Use the
PaymentMethodID
retrieved from Step 4. to call the Simulate fiat Deposit endpoint. - This will trigger a
FiatDeposit
event, and the automated workflow will continue to the cryptocurrency purchase step.
4. Receive the Transaction Webhooks
- You will receive a
Transaction
event when NOAH completes the fiat to Crypto exchange. See Transaction Event. - You will receive a second
Transaction
event when NOAH completes the Crypto Withdrawal to the customer'sDestinationAddress
.