Introduction
LintasPay lets you collect payments (pay-in) and send payouts (disbursement) in Indonesia, in IDR, through one signed JSON API.
| You want to… | Use |
|---|---|
| Get paid by a customer through virtual account, QRIS, DANA or a convenience store | Create pay-in order |
| Send money to a bank account, virtual account or e-wallet | Create payout |
| Check an account holder's name before paying out | Verify bank account |
| Know when an order is paid or completed | Callbacks |
| Check your balance or list supported banks | Query balance · Bank list |
How it works
- You sign every request with your RSA private key (Signing requests).
- LintasPay answers with a JSON envelope
{"code": 0, "message": "success", "data": {...}}.code = 0means success, and any other code is an error. - Every response and every callback is signed by LintasPay. Verify it with the LintasPay public key (Verifying signatures).
- When an order finishes, LintasPay
POSTs a signed notification to yournotifyUrl(Callbacks).
Basics
- All endpoints are
POSTwith a JSON body, UTF-8, over HTTPS. Never disable certificate validation. - Currency is
IDR. Amounts are strings, for example"10000". - Times are GMT+7, for example
2026-10-14T10:35:12+07:00. - Responses can echo your own input. Escape it before you render it in HTML.
Try it now
Open Swagger, paste your sandbox app_id and private key into the Sign requests panel, and call any endpoint from your browser. Requests are signed locally, and your key never leaves the page. Swagger does not upload or register a key. Send only your public key to LintasPay (see Quick start).