Skip to main content
Start with the Help Centre for account and pricing questions. Come to technical support when an endpoint is not behaving the way the reference says it should, or when money has not arrived where it should have.

Dashboard live chat

A live thread with the team, inside your dashboard. Fastest route to a human.

Technical support

Failing calls, stuck transfers, unexpected responses and production incidents.

Help Centre

Self-serve answers on pricing, onboarding, accounts and billing.

Browse the docs

Search every task across the dashboard and the API.
Account and technical support are handled by the same team.

Which channel do I need?

Before you report a technical issue

The team can trace a payment far faster with the details that identify the exact call. Include as much of this as you have:
Never share your secret key. Not in an email, not in a screenshot, not in a chat. Pila will never ask for it. Send your AppId instead — it identifies your app without granting access to it. If a secret key has been exposed, regenerate it from Developers → Configuration straight away.
Redact customer data. Mask BVNs and account numbers when you quote them — *8901 is enough for the team to match a record. Never paste full request or response bodies containing customer names, phone numbers or card details.

Check these first

A large share of the questions that reach support are answered by four pages:
  • Response format — what each status code means, which failures are worth retrying, and why a 200 on a transfer does not mean it settled.
  • Authentication — the cause of nearly every authorization error, usually a missing AppId header.
  • Environments — why a call that works in sandbox can fail in live.
  • Webhook signatures — if events are arriving but failing verification.

Frequently asked questions

Not yet. PROCESSING means Pila accepted the instruction and it is in flight with the receiving bank. Wait for the webhook, or poll Transaction details with the transaction_id. Do not retry the transfer — you risk paying twice.
Check three things: that you subscribed in the environment you are testing, that your endpoint is reachable over HTTPS from the public internet, and that you are not rejecting Pila’s IP. If your endpoint returns anything other than a 200, the event is treated as undelivered.
Almost always because the payload was re-serialised before hashing. Compute the HMAC over the raw request body, not over a parsed-and-re-stringified object. See Webhook signatures.
Live access requires a verified account, and the base URL has to change alongside the key. A sandbox key will not authenticate against api.trypila.co. See Environments.
Contact technical support from the dashboard with the endpoint, the time the failures started, and the status codes you are seeing. A run of 5xx responses on transfers usually means an upstream bank is unavailable rather than a fault in your integration.