API Docs↗
curl -X POST https://api.futurepay.example/v1/partner/payments/batches \
  -H "Authorization: Bearer $FUTUREPAY_API_KEY" \
  -H "Idempotency-Key: payroll-2026-08" \
  -H "Content-Type: application/json" \
  -d '{
        "apiRefNumber": "PAYROLL-2026-08",
        "payments": [{
          "transactionReference": "SAL-101",
          "beneficiaryId": "BENE-ACME-001",
          "packageCode": "SALPAY",
          "paymentMethodCode": "NEFT",
          "amount": { "value": 15000000, "currency": "INR" }
        }]
      }'
⚡IDs are assigned the moment the batch is accepted. Track the rest by webhook.

Why Teams Choose FuturePay

Built for the payments nobody else makes easy

Corporate groups, layered approvals, and the awkward cases that turn into support tickets everywhere else.

Every Channel

Five ways in, one governed platform

API, embedded checkout, a file in any format, invoice upload or payout link. However a payment starts, it runs through the same policy, audit and transaction core — never a separate path per channel.

Corporate Groups

A parent company and every subsidiary

Administered together as one group, yet fully isolated — entities can never see each other's data.

Approval Control

An approval regime per product and account

Not one maker-checker rule for the company. Amount tiers, multi-level routing, role and named-user approvers underneath.

Self-Governing

Changing the rules needs approval too

Nobody can quietly widen their own limit. Every change to an approval rule is reviewed before it takes effect.

Fraud & Security

Fraud gets stopped before it moves money

An unrecognized device or IP pauses a payment for one-time MFA — the same challenge guards every edit to a package, approval matrix or debit account. A bulk group past its cumulative limit gets one more approver automatically, however it was split, and every beneficiary is checked against every corporate on the platform, not just yours.

One Error Engine

The same plain-English error on every channel

Portal, file upload, API and AI agents all resolve through one server-side catalogue. Every rejection names the reason and the fix — a bad file comes back row by row, so corporates correct their own mistakes instead of opening a ticket with your service desk. A chatbot, grounded in that same knowledge, answers everything else — and says so when it doesn't know.

Provable

A sandbox that fails on purpose

Trigger rail timeouts, insufficient liquidity and account holds on demand — harden your reconciliation before go-live.

Applied AI

AI where it removes work, not where it takes decisions

Every payment decision stays with a human. AI is pointed at the tedious parts — reading documents, mapping files, and explaining why something looks unusual.

Safer Approvals

The checker sees why it looks wrong

Unusual amounts, odd-hour submissions, unfamiliar locations and recently-changed beneficiary details are flagged by rule. AI then explains the flag in two plain sentences — it never decides, and it never approves.

Faster Onboarding

Any file format, mapped for you

Point a new corporate's payroll or vendor file at the platform and the columns map themselves. No spreadsheet template to force on the customer, no engineering ticket to onboard them.

Invoice to Payment

Upload the invoice, not the details

Amount, invoice number, vendor and account details are read straight off the document and matched to an existing beneficiary — with a flag when the name on the invoice doesn't match the one on file.

Ahead of the Curve

See what's leaving before it does

Payout volume forecast with confidence ranges, fitted on weekly, monthly and annual cycles — and only on the cycles your history is long enough to support, so the line never invents a pattern that isn’t there.

Developer Ergonomics

An API your engineers will not complain about

The boring guarantees matter most: nothing pays twice, nothing fails silently, and every rejection tells you why.

Async by Default

Send it once, then stop polling

One call handles one payment or ten thousand — any method, any package, mixed in the same batch — and returns every transaction ID straight away. Signed webhooks tell you what happened next.

OpenAPI 3.1

One spec, one SDK, no drift

The Java SDK is generated from the same spec the API runs on, so the docs, the types and the live behaviour can never disagree.

Safe Retries

Retry anything, safely

Every write carries an idempotency key. A network drop, a restart or a duplicated call returns the original job instead of paying twice.

Model Context Protocol

Your customers' AI can check status

Five read-only tools let agents look up payments, jobs and beneficiaries. None of them can create, approve or move money.

Versioned API pathsRFC 9457 errorsSandbox keys, self-serveRead the API docs ↗

Have a look around first

Get a sandbox key, send a test batch, and make a payment fail on purpose. Talk to us whenever you're ready.

Explore API Docs ↗