Hensa Developers

Beta · Hensa-Version 2026-11-01

Bank-transfer payments API for websites, apps and counters.

Create a VietQR code per order. When the customer transfers, Hensa matches the payment to the order and sends a signed event to your server, usually seconds after the bank reports the credit.

Start in 5 minutesAPI reference

One order

  1. 201

    Create the codePOST /v1/payment_requestsprq_01JD7Q8M · ₫150,000 · LK7F3K9
  2. MB

    Customer transfersBank credit+₫150,000 · "LK7F3K9 thanh toan don hang"
  3. matched

    Hensa matchesAuto-matchedbtx_01JD7QA9 → prq_01JD7Q8M
  4. 200

    Your server receivesPOST cuahang.vn/webhooks/hensapayment_request.paid · 142 ms

One order, from creating the code to your server receiving the webhook.

Where you sell

One integration for everywhere you sell

The same API serves your website checkout, ordering app, counter register and accounting software. Money goes straight to the store's bank account; Hensa never holds funds.

In development: WooCommerce, Haravan and Sapo plugins · Node.js and PHP SDKs · a CLI that forwards webhooks to your machine.

Get started

From a test key to your first webhook

Test mode runs the production flow with fake money. No sandbox sign-up, no review.

  1. Create a test keyDashboard › Developer › Create key. hk_test_ keys work immediately.
  2. Create a payment requestGet the QR, a reference code and a 15-minute expiry.
  3. Simulate the transferYour server receives a real, signed payment_request.paid.
Full guide
curl https://api.hensa.example/v1/payment_requests \
  -H "Authorization: Bearer $HENSA_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "amount": 150000, "externalOrderRef": "DH-1024" }'

Specification

Specifications

These are part of the API specification, not marketing promises.

Webhook signatures
HMAC-SHA256 in the Hensa-Signature header, rejected when more than 5 minutes old.
Retries
8 attempts over about 45 hours on a public schedule. Email alert after 3 consecutive failures.
Endpoint pausing
Only after 7 days of continuous failure, with advance email.
Redelivery
Within 30 days, from the Dashboard or the API.
Idempotency
Idempotency-Key header, remembered for 24 hours.
Versioning
Date-based (currently 2026-11-01). Old versions supported for at least 12 months.
Documentation
Vietnamese and English. The API reference is generated from the same contract the servers validate requests against.

API reference

Start with a test key. Free, no sales call.

Start in 5 minutes