Initiate Transfer Request

You can initiate a payment transaction between an end user's connected bank account to any bank account. A payment link is generated for the user to authorize the transaction. The payment link should be sent to your users via SMS, email, or any communication channel of choice.

mutation {
  initiateTransferRequest(
    input: {
      username: "1234567890"
      sourceAccountNumber: "1234567890"
      sourceUserId: "dev001"
      slug: gtbank
      beneficiary: {
        name: ""
        payoutType: thirdParty
        reference: "ref0001"
        destinationAccountNumber: "0123456789"
        destinationBankCode: "035"
        amount: 10
      }
    }
  )
}

Response

{
  "data": {
    "initiateTransferRequest": "https://authorize.transfers.africa/pay?id=b25ec7853824fe4e6f82ae705535f061efce59c9e8997cb826b2b96b1114eb9d81a6a72cc770183038f50ba0558bf9975adcb8aabf82db2e99381ab48e85278d"
  }
}

Additional Authorisation

For Transfers to be able to validate the origin of the payment request, we require a signature sent along in the header of the request. The signature is generated by using your signature/webhook token to compute the HMAC-SHA256 hash of the transfer request arguments in the format stated below:

userId:reference:amountInKobo:destinationAccountNumber:destinationBankCode

The generated signature should be passed with the X-Transfers-Request-Signature request header in the request.

  1. You should never make your signature token public.

  2. You should never generate your charge request signature on the client-side. Always request the signature from your server and pass it into Transfers.

Request Parameters

Response

Last updated