Overview
The Hensa Connect API lets your system know the moment money arrives in your store’s bank account – no staff checking the banking app, no end-of-day statement matching.
How it works
Section titled “How it works”- You create a payment request per order → Hensa returns a dynamic VietQR with its own amount and reference code (e.g.
LK7F3K9). - The customer scans it with any Vietnamese banking app and transfers – money goes straight to the store’s account; Hensa never holds funds.
- Hensa receives the balance change and matches the transfer to the payment request by its reference code.
- Hensa sends a signed webhook
payment_request.paidto your server – you confirm the order and ship.
Customer typed the wrong description? The transfer still arrives as bank_transaction.created with status pending – you (or staff in the Dashboard) reconcile it manually.
Core objects
Section titled “Core objects”| Object | ID prefix | What it is |
|---|---|---|
| Payment request | prq_ |
One dynamic VietQR for one order, valid 15 minutes |
| Bank transaction | btx_ |
One incoming transfer to a linked account |
| Webhook endpoint | whe_ |
One of your URLs receiving events |
| Event | evt_ |
A notification sent to a webhook (may repeat – handle duplicates) |
Conventions
Section titled “Conventions”- Base URL:
https://api.hensa.example/v1(placeholder – see Versioning). - Auth:
Authorization: Bearer hk_test_…orhk_live_…– see Authentication. - Money: integer VND, no decimals:
150000= ₫150,000. - Time: ISO 8601 with offset, e.g.
2026-11-03T08:00:00Z. - Creating / touching money: the
Idempotency-Keyheader is required.
Quickstart (5 minutes)Create a QR, simulate a transfer, receive your first webhook.
WebhooksEvents, signatures, retries, redelivery.
API referenceEvery endpoint, field and error – generated from the contract.
Test modeExercise the whole flow without real money.