Getting started

Test and live mode

Updated Oct 25, 2026

Payfer runs two separate environments, and every application you register in the dashboard gets keys for both. Your keys say which one you’re using, and the SDK picks the address from the key, so there’s nothing to configure.

Environments

Testtest.payfer.me
Keys start with pk_test_ and sk_test_. Card payments use Stripe’s test mode and settlement uses Tempo testnet, so no real money moves. Applications accept calls from any origin, including localhost.
Livepayfer.me
Keys start with pk_live_ and sk_live_. Real cards, real money, settled on Tempo mainnet. Once an application goes live, browser calls are accepted only from its registered origins.

Dry-run an integration

Register an application in the dashboard and follow the quickstart with its test keys. When the approval page asks for a card, use 4242 4242 4242 4242 with any future date and any CVC. Test accounts, balances and payments stay in the test environment.

Running Payfer yourself

For a local or self-hosted Payfer service, pass its address as apiUrl:

client.ts
const payfer = createClient({
  publishableKey: "pk_test_...",
  apiUrl: "http://127.0.0.1:8787",
});

new Payfer() on your server takes the same apiUrl option.