Build payment decisions into your backend
Call PayInference from your server, receive one instruction, execute through your existing payment stack, and send the outcome back for observability.
PayInference is payment decision infrastructure. It does not move money, hold funds, or touch card data. Your backend sends safe payment context to the Decision API, gets exactly one instruction back in under 50 ms, and executes that instruction with the providers and credentials you already have.
1. Send payment context from your backend.
2. Receive one instruction from the Decision API.
3. Execute through your existing payment stack.
4. Send the outcome back to PayInference.
Start here#
- Getting started: first decision in five minutes against a local instance.
- Core concepts: the vocabulary the rest of the docs use.
- Decision API: the request, the response, and the latency model.
- Decision instructions: what each instruction means and how to handle it.
- API reference: every endpoint, field by field.
- Node.js SDK: typed client with timeouts, retries, and a local fallback.
- Outcome feedback: close the loop so decisions keep improving.
One call, one instruction#
curl -s http://localhost:4000/v1/decision \
-H "content-type: application/json" \
-H "x-api-key: pi_demo_key_123" \
-d '{
"merchant_id": "m_123",
"order_id": "order_456",
"transaction": {
"amount": 14900,
"currency": "USD",
"country": "US",
"payment_method": "card"
},
"available_providers": ["stripe", "adyen", "paypal"]
}'
{
"decision_id": "dec_9f3a1c0b22d14e55",
"action": "route",
"route": { "primary_provider": "adyen", "fallback_provider": "stripe" },
"reason_codes": ["ADYEN_HEALTHY_FOR_SEGMENT", "HIGHER_EXPECTED_APPROVAL_RATE"],
"decision_latency_ms": 11.4,
"ttl_ms": 3000
}
Your backend executes the instruction. In this case it creates the payment on adyen with your own PSP credentials, then reports what happened to POST /v1/outcomes.
How the product fits together#
Payment Intelligence prepares the data. The Policy Manager defines the rules. The Inference Engine makes the decision. The Decision API returns the instruction. Observability records what happened.
| Surface | What it does | Docs |
|---|---|---|
| Payment Intelligence | Continuously collects and normalizes provider health, outcomes, and pricing outside the checkout path | Payment Intelligence |
| Policy Manager | Merchant-defined routing, risk, retry, step-up, and block rules, validated and versioned | Policy Manager |
| Decision API | One synchronous endpoint that returns one instruction per payment attempt | Decision API |
| Observability | Decision logs, reason codes, outcomes, audit trail, latency visibility | Observability |
What PayInference is not#
- Not a PSP, gateway, acquirer, or wallet. It never moves money.
- Not in the card-data path. Request schemas are strict and reject card numbers, CVVs, and emails outright.
- Not a fraud tool replacement. It consumes the risk signals you already have and applies your policy to them.
- Not an approval authority. Issuers and PSPs approve or decline. PayInference returns an instruction before submission.