Skip to main content

Direct Debit

Nium's Direct Debit funding capability helps you add your business customer's bank account to their Nium-issued wallet to help them make payments.

Prerequisites

These are the requirements for this funding mechanism:

  • Your customer needs to have a bank account and a Nium wallet.
  • Your customer needs to authorize the Direct Debit mandate to debit from their bank account and accept Nium's terms and conditions (T&C).
  • Your customer needs to have enough money in their added bank account to start your transactions.
  • Your customer needs to be a business, also known as a corporation.
  • Your customer needs to be onboarded to the Nium One platform.

Set up

To get started with Direct Debit:

  1. Accept Nium’s Terms and Conditions.
  2. Nium approves requests according to the where Direct Debit is set up.
  3. Nium then configures Direct Debit for self-funding to your customer's wallets.
  4. Once you complete these steps, you can begin using Direct Debit.
note

Direct Debit is approved on a case by case basis.

If you're interested in Direct Debit, reach out to your Nium account manager or Nium Support.

API server URLs

Use the following URLs to separate API calls between different environments.

  • Sandbox: https://gateway.nium.com
  • Production: https://api.spend.nium.com

Supported countries and currencies

The following table shows the supported Direct Debit countries and currencies. For more information, select the Direct Debit page linked in the table for the geography you're interested in.

Country codeCountryCurrency codeCurrency
AUAustraliaAUDAustralian dollar
CACanadaCADCanadian dollar
EUEuropean UnionEUREuro
UKUnited KingdomGBPPound sterling
USUnited StatesUSDUnited States dollar
SGSingaporeSGDSingapore dollar

Direct Debit API endpoints

The following APIs support the Direct Debit feature:

HTTP methodAPI nameAction
POSTAdd Funding InstrumentAdd the funding instrument to your customer's wallet to start a Direct Debit transaction. Use this endpoint to add the payer's physical bank account to the customer's wallet so it can be used for the Direct Debit transaction. Provide the funding instrument's country and currency code.
GETGet Funding Instrument DetailsGet the details of your customer's funding instrument using the fundingInstrumentId. This endpoint is optional. The fundingInstrumentId is returned as a response in the Add Funding Instrument request.
GETGet Funding Instrument ListGet the list of funding instruments registered with your customer. It's optional to use this API.
POSTConfirm Funding InstrumentConfirm the funding instrument with one-time password (OTP) authentication. Use this API to communicate the OTP you received from Nium. Nium sends you the OTP during the Add Funding Instrument API call. By confirming the Direct Debit mandate, your customer authorizes Nium to debit payments from their bank account. The debit payments appear on your customer's bank statement as Nium.
POSTFund WalletFund into your customer's wallet by selecting the funding channel as a direct_debit transaction. You also need to provide the fundingInstrumentId obtained from the response in the Add Funding Instrument API call.

The following shows the Direct Debit customer wallet flow for all regions.

Direct Debit

Testing Direct Debit

You can now test settling funds into a Nium wallet in a sandbox environment almost instantly. This helps you test and integrate Direct Debit flows.

Before you begin to test Direct Debit, make sure the following conditions are met:

  • The client and customer are onboarded to the correct region.
  • The customer has a wallet set up with the required Direct Debit currency.
  • The customer has a verified, linked funding instrument available for the correct region and currency.

Step 1: Start a test Direct Debit

Use the Fund Endpoint to pull funds from a verified and linked funding instrument.


curl 'https://gateway.nium.com/api/v1/client/{clientHashId}/customer/{customerHashId}/wallet/{walletHashId}/fund' \
--request POST \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: YOUR_SECRET_TOKEN' \
--data '{
"amount": 16,
"fundingChannel": "DIRECT_DEBIT",
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "USD",
"fundingInstrumentId": "e18f4c3a-7d9f-4c1d-9a82-58b3d1f6ac91",
"statementNarrative": "Simulate Direct Debit settlement"

Response Example


{
"destinationAmount": 16,
"destinationCurrencyCode": "USD",
"paymentMethods": [],
"returnUrl": null,
"sourceAmount": 16,
"sourceCurrencyCode": "USD",
"status": "Pending",
"systemReferenceNumber": "FW5289214401"
}

Step 2: Testing funds receipt

Use the systemReferenceNumber from Step 1 to test receiving funds from the linked funding instrument (external bank account).

  • To test settling funds instantly, set "coolingOfPeriodInMinutes" to 0in theadditionalInfo` object.
  • This field lets you define a delay (in minutes) before funds are settled. Setting it to 0 bypasses this delay.

curl https://gateway.nium.com/api/v1/inward/payment/manual \
--request POST \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: YOUR_SECRET_TOKEN' \
--data '{
"additionalInfo": {
"coolingOfPeriodInMinutes": "0"
},
"amount": 16,
"bankReferenceNumber": "712347512376",
"country": "US",
"currency": "USD",
"payMode": "ACH",
"remitterBankName": "CFSB",
"transactionId": "FW5289214401",
"transactionSource": "ACH",
"type": "CREDIT",
}'

Response Example


{
"message": "ICC request has been processed and published successfully",
"success": true
}

After you complete the steps above, the test Direct Debit transaction will move to Approved and the funds will be added to the wallet.

This applies to all supported regions and currencies in sandbox environments.

Use cases

You can use the Direct Debit feature for business-to-business (B2B) payments such as employee payroll services or spend management. You can debit your business customer’s bank accounts and load the money into their Nium wallet so you can process their salary and expense payouts.

Use CaseClient typeExampleFunds flow
PayrollNon-financial platform clientsAs a payroll platform client, you want to debit a corporate customer's bank account and load money into their Nium wallet. This lets you manage salary and expense payouts.Corporate customer → Nium → corporate customer’s wallet → corporate customer’s employee
Spend management and supplier paymentsNon-financial platform clientsAs a software as a service (SaaS) platform client, you want to debit your customer’s accounts and load money into their wallets. This allows you to process their vendor's invoices and make payments to their vendor.SaaS platform customer → Nium → SaaS platform customer’s wallet → vendor
FintechNon-financial platform clientsAs a fintech platform, you want to direct debit your business customer’s accounts and load money into their wallets.Fintech business customer → Nium → customer's wallet → spend through a card or payout

The following diagram shows how the Direct Debit transaction flow across different regions.

Direct Debit - Overview
note

To learn more about the technical words this guide uses, refer to the Glossary.