Skip to content

Going live

Signing up is self-service. Going live is not, and the gap between them is where a payments product earns the right to hold money.

What has to be true

  1. The business is live. A person at PamoPay reads your BRELA certificate and TIN and records the bank account settlement is paid into. Until then a live key is refused at every call with MERCHANT_NOT_LIVE — a fact about the account, not about your integration, which can be finished against the sandbox first.
  2. You have a live key. Made on the Developers screen by an owner or developer seat, from a session that signed in within fifteen minutes, with the scopes this server needs and no more.
  3. You have a live endpoint. Registered for live mode — the test-mode endpoint does not carry over — and its whsec_ secret is in your secret store. The two secrets are different.
  4. The checklist is done. In particular the retry path and the two slow trigger numbers, because those are the failures you cannot rehearse against a real network.

The change

Two strings: the base URL and the key.

PAMOPAY_BASE=https://europe-west1-pamopay-fintech.cloudfunctions.net/merchantApi
PAMOPAY_KEY=sk_live_…
PAMOPAY_WHSEC=whsec_…      # the LIVE endpoint's secret

Nothing else. Request and response shapes are identical, and the sandbox refuses what production refuses. If your integration passed against the sandbox, the first live charge is the same code with a real payer.

The first live charge

Make it small, make it to your own phone, and watch three things: the prompt arrives on the handset, charge.succeeded arrives at your endpoint with livemode: true, and net_minor on it is amount_minor less the fee you expected from your tariff. If the fee surprises you, that is the moment to ask, not month end.

Afterwards

  • The Developers screen shows Used … ago on the live key. If it says "never used" after your first charge, the server is still holding the test key.
  • Settlement is by arrangement until it is automated; GET /v1/balance says so in as many words, and settling_minor stays zero. See not built yet.
  • Keep the test key. The sandbox is where you test the next change.

Every code, scope and route on this site is rendered from the API's own source.