Skip to main content
POST
/
v1
/
virtual-accounts
/
dynamic
Generate single-use virtual account
curl --request POST \
  --url https://api.platnova.com/v1/virtual-accounts/dynamic \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "customer_id": "aad8aff0-00db-48b0-9bb0-9b399c313438",
  "amount": 200,
  "lifespan_minutes": 20
}
'
{
  "status": true,
  "data": {
    "account_name": "PLATNOVA TECHNOLOGIES LTD/PLATNOVA ",
    "account_no": "9000043059",
    "amount": 200,
    "currency": "ngn",
    "bank_name": "BEAMER (GABSYN) MICROFINANCE BANK",
    "reference": "BDEPSTbdpLERjSmvg2XbF9iTA0bXxrX8E88BOI",
    "email": "[email protected]",
    "expires_at": "2026-03-19T23:13:03.140476016Z",
    "payment_session_id": "",
    "usage": "integration",
    "created_at": "2026-03-19T22:53:03.140476016Z",
    "customer_id": "aad8aff0-00db-48b0-9bb0-9b399c313438"
  },
  "error": [],
  "message": "operation was successful"
}

Overview

Generate a dynamic, single-use virtual account for a customer with a fixed receivable amount and a configurable expiry window. The account is tied to an exact amount - it will only accept a payment matching that value - and automatically becomes inactive once the lifespan elapses or the payment is received. This is ideal for checkout flows, invoice payments, or any scenario where you need a guaranteed, one-time payment collection without reusing a permanent account.

Authorizations

X-API-KEY
string
header
required

API key for authentication.

Body

application/json
customer_id
string
required

Unique ID of the customer to generate the account for

amount
number
required

The exact amount the account will accept

lifespan_minutes
integer
required

How long the account remains active, in minutes

Response

Dynamic virtual account created successfully

status
boolean
data
object
error
any[]
message
string