Gafiapay Docs

Temporary Virtual Accounts

Create time limited virtual accounts for one off payments. KYC rules are identical to permanent accounts send exactly one of bvn or nin.


Generate Temporary Virtual Account

Create a time-limited virtual account (label). KYC follows the same rules as permanent generation: you must include exactly one of bvn or nin. The business must have completed verification (compliance.verificationStatus === 'completed').

Customer identifier required
You must include exactly one of bvn or nin. Do not send both. If both are provided, the API will use BVN.

Endpoint

POST /account/generate/temporary

Authentication

Same as permanent generation: API key, signature, and timestamp headers.

json
{
  "x-api-key": "your_api_key",
  "x-signature": "generated_signature",
  "x-timestamp": "current_timestamp"
}

Body Parameters

Name Type Required Description
name string Yes Customer display / virtual account name
email string Yes Customer email
duration number No Expiry in minutes from creation. Default 40. Response includes expiresInMinutes and persisted expiresAt.
bvn string Yes (or nin) Customer BVN (11 digits). Required unless nin is provided. Alias: BVN.
nin string Yes (or bvn) Customer NIN (11 digits). Required unless bvn is provided. Aliases: NIN, ninNumber.

Send exactly one of bvn or nin. If both are provided, bvn takes precedence.

Request Example

json
{
  "name": "Jane Customer",
  "email": "jane@example.com",
  "duration": 60,
  "nin": "12345678901"
}

Response

On success, status is success and data includes the created account document (including isTemporary: true, expiresAt) plus expiresInMinutes.

json
{
  "status": "success",
  "data": {
    "accountNumber": "1234567890",
    "accountName": "Jane Customer",
    "bankName": "Virtual Bank",
    "isTemporary": true,
    "expiresAt": "2024-01-01T00:40:00.000Z",
    "expiresInMinutes": 60
  }
}