Wallet-to-Wallet Transfer (OTP Authorized)

Initiate and confirm secure transfers between any two CashPay wallets (Client-to-Fleet, Fleet-to-Fleet, or User-to-User).

Overview & Security

This API allows B2B partners to programmatically move funds within the CashPay network. To ensure absolute sovereignty and security, every debit from a source wallet must be explicitly authorized by the account owner using a unique OTP.

1. Initiate Transfer

This first step triggers the creation of a pending transaction and sends a one-time password (OTP) to the owner of the senderWalletId.

POST/api/v1/b2b/transfer/initiate

Creates a pending transfer and sends an OTP to the sender.

Request Payload

JSON
{
  "senderWalletId": "CD0123456789",
  "receiverWalletId": "CD0223456789",
  "amount": 50.00,
  "currency": "USD",
  "description": "Invoice payment for Order #8822",
  "reference": "MERC-998877"
}

Success Response

JSON
{
  "success": true,
  "transferId": "TX-776655",
  "message": "OTP has been sent to the source account holder."
}

2. Confirm Transfer

The partner calls this endpoint once the customer provides the OTP received from CashPay.

POST/api/v1/b2b/transfer/confirm

Validates the OTP and completes the fund movement.

Request Payload

JSON
{
  "transferId": "TX-776655",
  "otp": "123456"
}

Success Response

JSON
{
  "success": true,
  "transactionReference": "TR-ABC123XYZ",
  "status": "Completed",
  "timestamp": "2024-05-20T14:30:00Z"
}

Use Case: Fleet-to-Fleet (B2B)

For pure B2B payments between companies, the partner uses their own Fleet Wallet ID as the senderWalletId. The flow remains identical: the authorized administrator of the sending company receives the OTP to validate the movement towards the other fleet account.