Documentation

Checker Documentation

Everything you need to integrate payment routing, reconciliation, and compliance into your platform.

Core concepts

Understand how Checker's components fit together before making your first API call.

Routing engine

How Checker selects the optimal payment provider for each transaction using fee schedules, uptime data, and your custom rules.

Reconciliation ledger

How settlement events are matched to routed transactions and how discrepancies are surfaced before your finance close.

Compliance layer

MAS PSA checks, FATF counterparty screening, and cross-border reporting rules applied before each routing decision.

Provider connectors

Pre-built integrations for PayNow, FAST, PromptPay, QRIS, HitPay, Stripe, and Adyen. Add providers without writing connector code.

Automatic failover

What happens when a provider returns an error or drops below your uptime threshold. Rerouting happens in under 100ms.

Test environment

Make real routing decisions and see real reconciliation output without touching live payment rails. Test keys do not count toward your quota.

Quick start

Make your first routing call in under five minutes.

// npm install @checker/sdk
import Checker from '@checker/sdk';

const checker = new Checker({
  apiKey: 'chkr_live_...'
});

const result = await checker.payments.route({
  amount: 49700,
  currency: 'SGD',
  method: 'paynow',
  reference: 'order_1234'
});

console.log(result.provider, result.transaction_id);
# pip install checker-sdk
from checker import Checker

client = Checker(api_key="chkr_live_...")

result = client.payments.route(
  amount=49700,
  currency="SGD",
  method="paynow",
  reference="order_1234"
)

print(result.provider, result.transaction_id)
// go get github.com/checker-api/checker-go
package main

import (
  "fmt"
  "github.com/checker-api/checker-go"
)

func main() {
  client := checker.New("chkr_live_...")

  result, _ := client.Payments.Route(&checker.RouteParams{
    Amount:    49700,
    Currency:  "SGD",
    Method:    "paynow",
    Reference: "order_1234",
  })

  fmt.Println(result.Provider, result.TransactionID)
}