Non Card Payments

Interswitch integrates with various payment providers to offer customers flexible ways to complete their transactions.

These payment options are available by default on the gateway and can be turned on or off at any time in the settings menu on your Quickteller Business Dashboard. They are also available via API for customization.
Payment options can be used in two ways:

  • Dynamic/Transactional: A USSD code, QR image, or transfer account number is generated for a specific transaction, tied to the exact amount and transaction reference. It can only be used once for a successful payment. This is the mode available on the web gateway.
  • Static/Permanent: A USSD code, QR image, or transfer account number is generated for an entity without any amount tied to it. The paying customer decides the amount to pay. Once the transaction is successful, you are notified via email, SMS, and webhooks (if integrated). This is popular for funding wallets or physical stores where the codes are printed and placed in an environment where customers can find them and quickly complete payment.

Payment channels

In addition to cards, Interswitch offers the following payment channels:

  • USSD: USSD allows you to perform a transaction using a uniquely generated code.
  • Transfer: Interswitch supports both dynamic and static transfers.
    a. Dynamic transfer: A transfer tied to a specific transaction can only be used once for a successful payment.
    b. Static transfer: A transfer generated for an entity can be used multiple times for payments. Static transfers are popular for funding wallets and physical stores.
  • QR Code: USSD allows you to perform a transaction using a uniquely generated code.

Getting started

To start with Interswitch payment options, create an account on the Quickteller Business Dashboard. Once your account is approved, you can enable the payment options you want to use.

You can also integrate with the Interswitch API to customize the payment flow and experience.


With USSD, you can perform a transaction using a uniquely generated code.

Process Flow for USSD

  • Send a POST request to Get USSD Banks. to get lists of bank codes for a USSD transaction.
  • Send a POST request to Pay with USSD, provide the required bank code generated in Step 1.

2. Transfer

a. Process Flow for Dynamic(Transactional) Transfer

b. Process Flow for Static (e.g, funding wallets) Transfer

  • Generate a permanent account number, then save the details on your system against the customer's records.
curl \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
     "accountName": "Test Account",
  	 "merchantCode": "MX1111"

Sample Response

    "id": 106071,
    "merchantCode": "MX6072",
    "payableCode": "VIRTUAL_ACCOUNTMX60721641976776840",
    "enabled": true,
    "dateCreated": 1641976778480,
    "accountName": "Test Account",
    "accountNumber": "7120241111",
    "bankName": "Wema Bank",
    "bankCode": "WEMA"
  • Integrate to [Webhooks] (doc:webhooks) so we notify you instantly any payment is made into the account
    You'll only get TRANSACTION.COMPLETED webhook events on this account.
    Here's a sample webhook response of a successful transfer and the important fields to look out for:
  • Response Sample
	"uuid": "000016220112100534000059168755",
	"timestamp": 1641978358245,
	"data": {
		"paymentId": 721304386,
		"remittanceAmount": 4925,
		"amount": 5000,
		"responseCode": "00",
		"responseDescription": "Approved by Financial Institution",
		"merchantReference": "000016220112100534000059168755",
		"paymentReference": "000016220112100534000059168755",
		"retrievalReferenceNumber": "7120241111",
		"transactionDate": 1641978358245,
		"bankCode": "011",
		"currencyCode": "566",
		"channel": "TRANSFER",
		"merchantCustomerId": "MUSA OLU UGO",
		"merchantCustomerName": "MUSA OLU UGO",
		"nonCardProviderId": "VIRTUAL|DIRECT|7120241111",
		"payableCode": "6265663"

Response Description

eventEvent Type. Always going to be TRANSACTION.COMPLETED
uuidUnique Transaction reference. You should implement a duplicate check on your system for this so you don't give value more than once for the same transaction.
amountTransaction amount customer paid for in minor (kobo)
remittanceAmountAmount we'll settle you, after removing our transaction fees
merchantReferenceUnique transaction reference on our system
retrievalReferenceNumberThis contains the account number tht was paid into, Meaning the account number you generated from Step 1 and stored on your system. This is what you'll uise to identify which customer on your end to credit.
merchantCustomerNameThe name of the person that made the transfer
bankCodeThe CBN bank code of the sender's bank

3. QR Code

To perform a transaction using a QR code, make a call to the Generate QR endpoint.