Payments for developers.

Build with SDKs, test in sandbox, and stay in sync with webhooks. Everything you need to ship a reliable integration.

Quickstart

Copy, run, and ship.

Create a payment intent in Node
1
2
3
4
5
6
7
8
9
10
11
12
13
import { PayMate } from "paymate";

const pm = new PayMate("pm_live_xxx");

const intent = await pm.paymentIntents.create({
  amount: 15000,
  currency: "MWK",
  payment_method: "airtel",
  customer: { phone: "+265..." },
});

console.log(intent.id);

First-class developer experience

Everything you need to build and debug quickly. Clear responses, predictable errors, and webhooks you can trust.

TM

Test Mode

Simulate events safely

HTTP 200Sandbox
payment.created { id: "pi_3h8k2..." }
payment.pending { id: "pi_3h8k2..." }
payment.succeeded { id: "pi_3h8k2..." }

Validate your integration without sending real payments. Move through every state with predictable responses.

WH

Modular Webhooks

Subscribe to what you need

Event logLive
payment.succeeded04:05:07
payout.initiated04:06:01

Keep your backend in sync with clean payloads and a simple event model.

Idempotency

Safe retries

Retry requests without duplicate charges. Designed for unstable networks and real-world traffic.

Errors

Readable by default

Clear error codes and messages so you can fix issues fast during integration.

Sandbox

Test end to end

Run your full flow before going live, including webhooks and payouts.