Skip to main content
This page covers the full lifecycle of a virtual account (VA): create, list, look up, inquire transactions, revoke, and configure the payment callback that fires when a customer transfers in. All endpoints here require Ed25519 request signing — see Request Signing.

Endpoint Summary

Create a Virtual Account

POST /partners/mid/va — creates a multi-use virtual account under the partner’s assigned HPay merchant. The VA is stored in Holdstation Pay and can be managed via the list, get, inquiry, and revoke endpoints. Request Body:
Response:
status values: 1 = active, 2 = expired.

List Virtual Accounts

GET /partners/mid/va — returns all virtual accounts owned by the partner, sorted by creation time descending. Served from Holdstation Pay’s database (no upstream call).

Get a Virtual Account

GET /partners/mid/va/{va_account} — returns the details of a single VA the partner owns. Response shape matches the entries in List Virtual Accounts.

Revoke a Virtual Account

DELETE /partners/mid/va/{va_account} — marks the VA as expired in Holdstation Pay. The VA will no longer accept incoming transfers.
va_status 4 indicates the virtual account has been revoked.

Inquire Transactions

GET /partners/mid/va/{va_account}/inquiry — fetches live transaction history for a virtual account directly from the payment service provider.

Payment Callback URL

Holdstation Pay calls a partner-configured URL whenever a customer transfers into one of the partner’s virtual accounts.

Get the Callback URL

GET /api/partners/mid/va-callback

Update the Callback URL

POST /api/partners/mid/va-callback
The URL must be HTTPS.

Payment Callback

When a payment is received on a partner’s virtual account, Holdstation Pay sends a POST request to the configured va_callback URL.

Callback Payload

Callback Headers

Verification

Partners verify the callback using their checksum_key (the public key derived from the partner’s sign_key), the same way as webhook verification — see Webhook Verification.