Bonaventure OgetoBy Bonaventure Ogeto|

Handling Customer Payment Complaints

When a customer complains about a payment, your first step is always to check the Paystack Dashboard. Search for the transaction by customer email or amount. The transaction status tells you what happened: successful means the money came through, failed means it did not, and abandoned means the customer started but never completed the payment. Respond to the customer with the specific status and next steps. Never guess or promise a resolution you cannot confirm.

Your First Step: Check the Dashboard

Before you respond to any payment complaint, log into your Paystack Dashboard. Go to Transactions and search for the customer's email address or the transaction amount and approximate time.

The transaction status tells you what happened:

  • Success: The customer paid and the money was collected. If your system does not show the order as paid, the problem is on your side (likely a webhook issue), not on the customer's side.
  • Failed: The payment did not go through. The customer was not charged. Common reasons: card declined, insufficient funds, network error.
  • Abandoned: The customer started the payment process but never completed it. They may have closed the page, lost internet connection, or changed their mind. No money was collected.
  • Reversed: The payment was initially successful but was later reversed (for example, due to a chargeback or a system reversal).

With this information, you can give the customer a factual, specific response instead of guessing.

Complaint: "I Was Charged Twice"

Search the Paystack Dashboard for the customer's email. If you see two successful transactions with the same or similar amounts close together, the customer was indeed charged twice. This is usually an integration problem where the pay button allowed multiple clicks.

Respond immediately: "We can see a duplicate charge and we apologize for the inconvenience. We are processing a refund for the extra charge right now." Then initiate a refund for the duplicate transaction from the Paystack Dashboard.

If you only see one successful transaction, the customer might be seeing a temporary hold from a failed attempt. Ask them to check again in 24 to 48 hours, as temporary holds from failed attempts are usually released by the bank automatically.

After resolving the immediate issue, talk to your developer. Double charges should not happen. The integration needs to be fixed to prevent this from recurring. See signs your integration was built badly for more details.

Handling Refund Requests

Customers will sometimes ask for refunds for legitimate reasons: they changed their mind, the product was not as described, or the service was not delivered. Here is how to handle this:

Check your refund policy. If you have a refund policy on your website, follow it. If you do not have one, consider creating one. A clear policy prevents arguments.

Initiate the refund through Paystack. In the Paystack Dashboard, find the transaction and click the refund option. You can refund the full amount or a partial amount. The refund is sent back to the customer through the same payment method they used.

Set expectations about timing. Tell the customer how long the refund will take. Refunds are not instant. Depending on the payment method and the customer's bank, it can take several business days to a couple of weeks for the money to appear back in their account.

Be aware of fee implications. In most cases, Paystack does not refund the transaction fee back to you. So a refund costs you the original transaction fee. This is standard for payment gateways, but it means refunds are not free for your business.

Keep records. Note the refund reference, the reason, and the date. This helps with reconciliation and with spotting patterns (for example, if the same product generates many refund requests, the product might be the problem).

When to Escalate to Paystack Support

Most payment complaints can be resolved using the dashboard. But some situations require Paystack's help:

  • A settlement is missing. If the dashboard shows "sent" but the money has not arrived in your bank after several business days, and your bank confirms no incoming transfer.
  • A transaction is stuck. The transaction shows "pending" for an unusually long time.
  • A chargeback you want to dispute. If a customer filed a chargeback and you believe the charge was legitimate.
  • System errors you cannot explain. If the dashboard shows something that does not make sense (for example, a refund you did not initiate).

When contacting Paystack support, include:

  • Your business name and registered email
  • The specific transaction or settlement reference number
  • A clear description of the issue
  • Any screenshots that show the problem

Paystack's support team responds faster when you give them specific details. "My money is missing" takes longer to resolve than "Settlement reference SET_abc123 from July 15th shows as sent but has not arrived in my GTBank account ending in 1234."

Preventing Payment Complaints in the First Place

The best complaint is one that never happens. Here are ways to reduce payment complaints:

  • Send instant confirmation. When a payment succeeds, send the customer an email or SMS immediately. This reassurance prevents "I paid but nothing happened" calls.
  • Show a clear success page. After payment, the customer should see a page that says "Payment successful" with their order details and reference number. Not a blank page. Not a generic "thank you."
  • Provide your contact details. Make it easy for customers to reach you. A visible WhatsApp number, email, or phone number reduces anxiety and gives customers a channel before they escalate to a chargeback.
  • Test your checkout regularly. Place a test order on your own site at least once a month. Make sure the full flow works: payment, confirmation email, order in your system.
  • Monitor the Paystack Dashboard daily. Check for failed transactions, abandoned transactions, and any anomalies. Catching problems early means fewer customer complaints.

How to Communicate With Frustrated Customers

A customer complaining about a payment is often anxious or angry. Their money is involved. Here are communication principles:

Respond quickly. Speed matters more than perfection. Even a quick "We are looking into this and will get back to you within the hour" is better than silence.

Be specific. "We have checked and your payment of 5,000 with reference PAY_xyz was received at 3:42 PM. Your order is being processed." This is much better than "We will look into it."

Acknowledge the frustration. "I understand this is frustrating and I am sorry for the trouble" goes a long way, even if the problem was not your fault.

Do not blame the customer. Even if the customer made a mistake (entered the wrong amount, did not complete the payment), phrase it neutrally. "It looks like the payment session timed out before it was completed" is better than "You did not finish paying."

Follow up. After resolving the issue, send a brief follow-up: "Just confirming that your refund of 3,000 was processed today. You should see it in your account within 3 to 5 business days." This closes the loop and shows professionalism.

Key Takeaways

  • Always check the Paystack Dashboard before responding to a customer complaint. The transaction status tells you exactly what happened.
  • The most common complaint is "I paid but nothing happened." This usually means the webhook failed, not that the customer did not pay.
  • When a customer says they were charged but did not receive their product, verify the transaction first and then escalate to your developer if your system did not register the payment.
  • Refunds can be initiated from the Paystack Dashboard. They take several business days to reflect in the customer account.
  • Keep your tone calm and professional. Payment complaints are stressful for customers who feel their money is at risk.
  • Document every complaint and resolution. Patterns in complaints reveal integration problems you can fix permanently.

Frequently Asked Questions

Can I refund a customer who paid with mobile money?
Yes, Paystack supports refunds for mobile money transactions. The refund goes back to the same mobile money account the customer paid from. The timing depends on the mobile money provider but is typically within a few business days.
A customer says their bank shows a deduction but Paystack shows the transaction as failed. What happened?
This is usually a temporary hold by the bank. When a card payment fails during processing, the bank sometimes puts a temporary hold on the funds. This hold is released automatically within 24 to 72 hours. The customer was not actually charged. Ask them to check their statement after a few days.
How long do I have to respond to a chargeback?
Chargeback response deadlines vary by card network and bank, but you typically have a limited window (often 7 to 14 days) to provide evidence disputing the chargeback. Paystack will notify you when a chargeback is filed and provide instructions on how to respond.
Should I give the customer a refund to avoid a chargeback?
Sometimes, yes. If the customer has a legitimate complaint and you know the chargeback will succeed, a proactive refund is often cheaper and faster than going through the chargeback process, which may include additional fees. However, if the charge was legitimate and you have evidence, it is reasonable to dispute it.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon