Skip to content
Beta · The spec may still change before general availability. The API domain api.hensa.example is a placeholder. See changes →

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.

  1. You create a payment request per order → Hensa returns a dynamic VietQR with its own amount and reference code (e.g. LK7F3K9).
  2. The customer scans it with any Vietnamese banking app and transfers – money goes straight to the store’s account; Hensa never holds funds.
  3. Hensa receives the balance change and matches the transfer to the payment request by its reference code.
  4. Hensa sends a signed webhook payment_request.paid to 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.

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)
  • Base URL: https://api.hensa.example/v1 (placeholder – see Versioning).
  • Auth: Authorization: Bearer hk_test_… or hk_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-Key header is required.