Skip to content
PayDirect Docs

Docs › Reference

Support

How to reach PayDirect support, what to gather before you write, and how to escalate a payment that is stuck.

Contact us

Email support@softmastersgroup.com
Phone (+233) 257 089 520
Address 3 Santana Street, Abelemkpe - Accra, Ghana

Email is best for anything involving a transaction: it keeps the details below together in one thread. Put your Integrator id and the environment (TEST or LIVE) in the subject line.

Before you write

Most payment questions resolve to a single transaction, and nearly all of them are answered faster if the first message already contains this:

Gather Where from
The transaction id The response that created it, or GET /transactions/list over the window
The Idempotency-Key Your own records - essential when no id came back
Request timestamp, with timezone Your logs
HTTP status code and the full response envelope Your logs
Environment TEST or LIVE
The journey snapshot GET /transactions/{id}/journey-snapshot

journey-snapshot is the single most useful attachment. It shows each stage of the transaction with timestamps, and it usually removes a round trip of questions entirely.

Never send your raw API key, secret key or webhook signing secret - not truncated, not in a screenshot. Nobody at PayDirect needs them to diagnose anything, and a credential in a ticket is a credential that has to be rotated.

Check these first

A large share of tickets resolve to one of these:

Symptom Likely cause
401 Request expired on every request Timestamp in seconds instead of milliseconds, or server clock drift
401 Signature verification failed Signing the public key rather than the raw key, or two different timestamps in the header and the message - see Authentication
Webhooks never arrive No webhookUrl set, or it is not HTTPS, or your endpoint does not return 2xx
Signature verification fails on every webhook Verifying re-serialised JSON instead of the raw body - see Verifying signatures
Webhooks arrive twice Working as designed. Dedupe on eventId.
Payment "succeeded" but nothing shipped Reading response.ok instead of data.status - see Errors
422 on a retry Same Idempotency-Key with a changed body
Transaction stuck PENDING Call the flow's reconcile endpoint before escalating
403 on an endpoint that used to work A scope was narrowed, or an IP allowlist entry was added - see IP allowlisting
403 right after adding an allowlist entry Your server's public egress address is not the one you listed, or it calls over IPv6
403 ... pending verification and approval A production key over GHS 1.00 while unverified - see Onboarding
403 SANDBOX keys are limited to GHS 1.00 Working as designed - use a test key for larger test amounts
403 ... type does not match its environment Contact us - the key needs correcting on our side
403 ... cannot manage Integrator configuration A narrowed key used for a configuration change - use the dashboard
Cannot sign requests after issuing or revoking a key Not all three values (apiKey, secretKey, publicKey) were saved - see If you lose a credential

Escalating a stuck payment

  1. Reconcile it - POST /transactions/{flow}/{id}/reconcile. This resolves most cases.
  2. If it stays PENDING past the rail's normal settlement time, pull the journey snapshot.
  3. Send us the id, the timestamp, the environment and the snapshot.

Do not resubmit a payment that is still PENDING. It may yet succeed, and a resubmission with a new idempotency key is a second payment, not a retry.

Where else to look

  • API reference - every endpoint, every field, with "Try it out". Login required; ask us if you do not have one.
  • OpenAPI document - generate a client, or diff it between releases.
  • FAQ - short answers to the questions we hear most.
  • Changelog - read before each deploy.
  • Reconciliation - the playbook for books that disagree.

Asking for a change

Several things in these docs are configuration, not code, and we can change them on request:

  • A higher per-minute rate limit.
  • chargeBearer: RECIPIENT instead of the default SENDER.
  • A new or changed settlement account.
  • Scope changes on an existing key.
  • A new webhook signing secret.
  • Starting or checking verification.

Tell us what you are trying to achieve rather than only which setting you want flipped - there is often a safer arrangement that gets you the same outcome.

Reporting a security issue

If you believe you have found a vulnerability, or a credential of yours has leaked, email support@softmastersgroup.com with Security at the start of the subject line, or call the number above. Do this straight away, rather than in a normal ticket. If a key is involved, revoke it first with PATCH /apikey/revoke-my-key/{id} - you do not need to wait for us to do that.

When reporting a vulnerability, describe what you found and how to reproduce it, but do not test it against other customers' data or try to move real money. See Security best practices.