Skip to main content

Overview

Noah payins let your client receive bank deposit details, send fiat funds, and settle into crypto.

1. Prerequisite: approved KYC

Ensure the client completed Noah onboarding and has APPROVED status. See Noah KYC onboarding.

2. Initiate payin

Call POST /payins to create a bank-deposit-to-onchain workflow.
curl --request POST \
  --url https://api.portalhq.io/api/v3/clients/me/integrations/noah/payins \
  --header 'Authorization: Bearer [token]' \
  --header 'Content-Type: application/json' \
  --data '{
    "fiatCurrency": "USD",
    "cryptoCurrency": "USDC_TEST",
    "network": "eip155:11155111",
    "destinationAddress": "0xc118ad00663be7d0360b56a4e9fbb20530bf4693"
  }'
Example response (truncated to key fields):
{
  "data": {
    "payinId": "cmmw70gq500053saq9urbu8ag",
    "bankDetails": {
      "accountHolderName": "John Mock-Doe",
      "accountNumber": "900366164700",
      "bankAddress": {
        "city": "Kansas City",
        "country": "US",
        "postCode": "64108",
        "state": "MO",
        "street": "1801 Main St"
      },
      "bankCode": "101019644",
      "bankName": "LEAD BANK",
      "network": "EthereumTestSepolia",
      "paymentMethodId": "Bank/Ach/USD/101019644/900366164700/cmmw6tzqc00003saqzbgwueb5",
      "paymentMethodType": "BankAch",
      "relatedPaymentMethods": [
        {
          "details": {
            "accountNumber": "900366164700",
            "bankCode": "101019644"
          },
          "paymentMethodId": "Bank/Fedwire/USD/101019644/900366164700/cmmw6tzqc00003saqzbgwueb5",
          "paymentMethodType": "BankFedwire"
        }
      ]
    }
  }
}

3. Display bank instructions

Show bankDetails to your user in your UI so they can submit their fiat transfer.

4. (Optional, sandbox) Simulate fiat deposit

To test payin flows in sandbox, call POST /payins/simulate with the paymentMethodId returned in bankDetails.
curl --request POST \
  --url https://api.portalhq.io/api/v3/clients/me/integrations/noah/payins/simulate \
  --header 'Authorization: Bearer [token]' \
  --header 'Content-Type: application/json' \
  --data '{
    "paymentMethodId": "Bank/Fedwire/USD/101019644/900366164700/cmmw6tzqc00003saqzbgwueb5",
    "fiatAmount": "100.00",
    "fiatCurrency": "USD"
  }'
Example response:
{
	"data": {
		"fiatDepositId": "accdeef0-c364-5b67-976c-f90a50aa957c"
	}
}

5. Configure Noah webhooks for payin updates

Set up Noah webhooks in Noah Dashboard to receive payin lifecycle updates directly from Noah.
  • Subscribe to FiatDeposit and Transaction events for payin status and settlement updates.
  • Noah Webhooks

6. Monitor payin progress

Use FiatDeposit and Transaction webhook events plus Noah Dashboard delivery logs for payin reconciliation and status tracking.
Acknowledge webhook deliveries quickly with 2XX, then process events asynchronously.