> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.trypila.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get help with Pila

> Three ways to reach the Pila team — dashboard live chat, technical support, and the Help Centre — plus what to include so a payment issue can be traced quickly.

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.

<Columns cols={2}>
  <Card title="Dashboard live chat" icon={<span className="pl-card-emoji">⚡</span>} href="https://dashboard.trypila.co/">
    A live thread with the team, inside your dashboard. Fastest route to a human.
  </Card>

  <Card title="Technical support" icon={<span className="pl-card-emoji">🛠️</span>} href="https://dashboard.trypila.co/">
    Failing calls, stuck transfers, unexpected responses and production incidents.
  </Card>

  <Card title="Help Centre" icon={<span className="pl-card-emoji">📚</span>} href="/dashboard-guide/faq">
    Self-serve answers on pricing, onboarding, accounts and billing.
  </Card>

  <Card title="Browse the docs" icon={<span className="pl-card-emoji">🧭</span>} href="/get-started">
    Search every task across the dashboard and the API.
  </Card>
</Columns>

<Note>
  Account and technical support are handled by the same team.
</Note>

## Which channel do I need?

| If you… | Use |
| - | - |
| Need your Pila wallet funded or a settlement reconciled | [Dashboard live chat](https://dashboard.trypila.co/) |
| Want to talk to an agent now | [Dashboard live chat](https://dashboard.trypila.co/) |
| Have a transfer stuck in `PROCESSING` longer than expected | [Technical support](https://dashboard.trypila.co/) |
| Are getting an error you cannot explain from the reference | [Technical support](https://dashboard.trypila.co/) |
| Need a webhook redelivered | [Technical support](https://dashboard.trypila.co/) |
| Are waiting on live access or account verification | [Help Centre](/dashboard-guide/faq) |
| Have a pricing or billing question | [Help Centre](/dashboard-guide/faq) |

## 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:

| Detail | Why it helps |
| - | - |
| The endpoint and method | `POST /api/v1/wallet/ngn/transfer` narrows it immediately. |
| Environment | Whether you called `api.trypila.co` or `sandbox.trypila.co`. |
| Your `AppId` | Identifies the app whose logs to search. |
| The `transaction_id` | The single fastest way to find a specific payment. |
| Timestamp, with the time zone | Lets the team find the request in the logs. |
| The HTTP status code | Tells the team whether it is your request, your balance, or an upstream bank. |
| What you expected instead | Separates a bug from an endpoint doing what it is documented to do. |

<Warning>
  **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.
</Warning>

<Tip>
  **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.
</Tip>

## Check these first

A large share of the questions that reach support are answered by four pages:

* [Response format](/api-reference/core-concepts/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](/api-reference/get-started/authentication) — the cause of nearly every authorization error, usually a missing `AppId` header.
* [Environments](/api-reference/get-started/environments) — why a call that works in sandbox can fail in live.
* [Webhook signatures](/api-reference/core-concepts/webhook-signatures) — if events are arriving but failing verification.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="My transfer says PROCESSING. Did it go through?">
    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](/api-reference/wallets/transaction-details) with the `transaction_id`. Do not retry the transfer — you risk paying twice.
  </Accordion>

  <Accordion title="I am not receiving webhooks.">
    Check three things: that you [subscribed](/api-reference/webhooks/subscribe) 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.
  </Accordion>

  <Accordion title="My webhook signature never matches.">
    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](/api-reference/core-concepts/webhook-signatures).
  </Accordion>

  <Accordion title="My live keys are not working.">
    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](/api-reference/get-started/environments).
  </Accordion>

  <Accordion title="How do I report a suspected outage?">
    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.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.