Payment rails for builders who ship

Money moves. APIs shouldn’t. One signature. Full control.

IDR pay-in and payout — VA, QRIS, DANA, minimarket, bank rails — locked behind RSA SHA256. You sign every call; we hit your notifyUrl when money lands. No ghost callbacks.

LINTASPAY-SHA256withRSA POST · JSON · HTTPS GMT+7 Callbacks · notifyUrl

Built for merchants who need both sides of money

Pay-in channels customers already use, payouts to bank and e-wallet, and a single crypto-style signing model for every call.

↓

Pay-in

Virtual account, QRIS, DANA, and convenience store. Create an order, show a pay code, get notified when it settles.

↑

Payout

Disburse to bank accounts, virtual accounts, or e-wallets. Verify the account holder name before you send.

🔏

RSA signed API

Every request uses LINTASPAY-SHA256withRSA. Responses and callbacks are signed with the LintasPay platform key.

📡

Callbacks

On final state we POST to your notifyUrl. Reply {"status":"SUCCESS"}. Retries included — not a client-callable endpoint.

🏦

Bank tools

Query balance, list supported banks, and verify bank accounts before payout to cut failed transfers.

{ }

Predictable JSON

Envelope {"code":0,"message","data"}. Amounts as IDR strings. Timestamps in GMT+7. All endpoints are POST over HTTPS.

From key pair to first settlement

Four steps. Sign locally — your private key never needs to leave your servers.

Register & keys

Get app_id and register your RSA public key. Keep the private key on your side.

Sign & create

POST /pay-in/create or /pay-out/create with Authorization: LINTASPAY-SHA256withRSA …

Customer pays

Show payCode (VA / QRIS / e-wallet). Or wait while payout clears to the destination.

Callback & verify

We notify your notifyUrl. Verify the signature with the LintasPay public key, then ACK.

Ready to integrate?

Start with Quick start, then wire callbacks. Callbacks live under Docs → notification pages, not as a third “create” API.