Skip to main content

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

  1. Register your interest or book a demo by contacting us on business@noah.com.
  2. 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.

  1. Generate your Sandbox API key via the Business Dashboard.
  2. Include your API key in the X-Api-Key header of all requests.
  3. 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.

  1. Optionally whitelist NOAH's Webhook IP addresses, detailed on the Whitelisting section.
  2. Create a webhook subscription for the following event types, the details required to ingest the webhooks are also available on their respective pages.

Throughout the Bank Onramp Workflow, you will receive 3 webhooks:

  1. FiatDeposit - to notify you when the customer has sent a fiat payment to their assigned bank account number.
  2. Cryptocurrency purchase Transaction event type - to notify you when the fiat has been converted to your chosen CryptoCurrency and credited to your NOAH Account.
  3. Cryptocurrency withdrawal Transaction - to notify you when the funds have been withdrawn to your customer's DestinationAddress.

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, withdrawal Network and DestinationAddress
  • 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.

  1. Use the PaymentMethodID retrieved from Step 4. to call the Simulate fiat Deposit endpoint.
  2. 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's DestinationAddress.