PayintoDocs

Virtual accounts

Issue account numbers that collect payments into your Payinto account.

A virtual account is a bank account number that settles into one of your Payinto accounts. There are two types.

StaticDynamic
Best forRepeat payments from one customerOne expected payment
LifetimeLong-lived15 minutes to 24 hours
Linked customerRequiredNone
Expected amountNoneRequired
Modulestatic_virtual_accountsdynamic_virtual_accounts

Funds settle to your main account unless you send settlement_account_id.

Static virtual accounts

Create the customer first. A merchant_reference is required.

curl https://api.payinto.co/api/v1/business/virtual-accounts/static \
  --header "Authorization: Bearer $PAYINTO_SECRET_KEY" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json" \
  --data '{
    "customer_id": "0196431a-2f10-7c55-9b20-3d7f6a1e4c11",
    "merchant_reference": "customer-10001-va"
  }'

Dynamic virtual accounts

Send the expected amount and how to treat a different amount with amount_control. See the collections guide for a full example.

FieldRules
amountRequired, in the lowest currency unit
amount_controlRequired: Fixed, UnderPayment, or OverPayment
valid_forOptional, from 900 to 86400 seconds
merchant_referenceRequired, up to 64 characters
metadataOptional, string values of up to 255 characters

Read payments

EndpointReturns
GET /virtual-accountsAll your virtual accounts
GET /virtual-accounts/{id}One virtual account
GET /virtual-accounts/{id}/transactionsPayments to one virtual account, with status, from_date, and to_date filters
GET /virtual-accounts/transactions/{id}One payment, by ID
GET /virtual-accounts/transactions/reference/{reference}One payment, by Payinto reference

Lookups for a record that doesn't exist return 400.

Account statuses

A virtual account's status is active, suspended, disabled, completed, or expired.

On this page