المسافر
Active member
- Joined
- Dec 3, 2025
- Messages
- 189
- Reaction score
- 0
- Points
- 16
Payment Problems in Turkish Stores: Declines, Pending Payments and Order Status
Verify each payment attempt before retrying or releasing an order
Verify each payment attempt before retrying or releasing an order
When a customer says their card was charged but the order remains pending, the most important decision is to verify the payment before requesting another attempt or shipping. The problem may be a genuine decline, incomplete authentication, a missing notification, or an order status that failed to update despite a successful transaction. This guide provides a diagnostic procedure for a Turkish store using a payment gateway, combining clear support language with steps developers and finance staff can follow. Your employee does not need full card details to begin; they need the order and payment-attempt references, amount, time and provider status. Names and operational statuses are examples; interpret exact codes using your service's documentation.
A customer's message starts an investigation; the authoritative result comes from the payment process.
Pause fulfillment and collect the facts
Place the disputed order in an internal status that temporarily blocks preparation, and identify who can release it. Collect the order number, amount, currency, attempt time, payment method and displayed message, plus the provider reference if available. Ask whether the same cart has multiple attempts. Do not treat a banking-app screenshot as a final result; it may show an authorization hold or debit requiring clarification from the bank and provider.
Save the order's status and notes before editing. If shipping has already started, check with operations whether it can be stopped without making an unconfirmed promise to the customer. The first support message should explain that you are checking a specific attempt and that the customer should not pay again until the result is clear. This step protects funds and stock and explains the expected review time; its purpose is not to prove the customer or bank wrong.
Notice: Do not request a full card number, security code or verification code; these details do not belong in a support case file.
Classify the problem before changing settings
Start by distinguishing a confirmed decline, an unresolved result, and a confirmed success not linked to the order. A confirmed decline requires an explanation you are permitted to disclose and, where needed, customer follow-up with their bank. An unresolved result requires a status inquiry. Success with a pending order requires reviewing notification storage and integration. Fixing every case by changing the plugin or manually editing the order hides the cause and may create more errors.
Ask whether the problem affects one order or all customers, a specific card, currency or browser, and whether it began after an update, key change or firewall change. Compare with a successful example from around the same time without exposing another customer's data. A pattern helps the developer narrow the investigation. Do not use increased support volume as a reason to release all orders; accelerate verification while retaining the requirement for an authoritative result.
| Symptom | First area to check | Interim decision |
|---|---|---|
| Explicit decline | Provider result and code | No preparation |
| Customer left authentication | Authentication and ongoing attempt | Check status before another attempt |
| Provider successful; store pending | Notification and status storage | Documented linkage, then a decision |
| Two successful transactions | Attempt and order references | Prevent duplicate shipping; resolve the finances |
Bank or provider declines
Retrieve the error code and message from a reliable log and check the code's meaning in the service documentation. The message may concern the card, a limit, incorrect details, a risk decision or an inactive setting. Do not describe every decline as insufficient funds; the store does not always know the detailed reason. When customers need to contact their bank, give them the attempt amount, time and displayed merchant name if known.
Avoid repeated automatic attempts without understanding the result, as they may increase confusion and unresolved transactions. Suggest another payment method only after confirming the previous attempt did not succeed, or under an official procedure for that situation. If your store uses several gateways, record the gateway for each attempt; moving customers between them without tracking transactions may produce two successful payments. A decline from one service does not prove that every payment option has failed.
3D Secure authentication and return flow
Check whether authentication started, whether the customer completed it, and which status the flow returned. iyzico documentation explains different authentication statuses, so do not handle every result identically or reduce it to a successful verification page. Authentication may succeed while the financial step or result storage fails. The integration must interpret codes for its version and service, recording events so what happened can be reconstructed.
A lost internet connection or closed window does not prove payment failed. Likewise, reaching a success page is not sufficient proof of success. Look up the transaction in the provider dashboard or query its reference before asking the customer to act again. Do not ask customers to send their authentication code to support so staff can complete the transaction. If mobile users repeatedly leave the flow, test the return experience and browser and plugin compatibility while retaining the service's required protection.
Track the order and transaction references instead of retrying without verification.
The notification endpoint is separate from the customer page
In a PayTR integration, the payment result is sent to a notification endpoint on the store's server, separate from the page customers see. The provider must be able to reach it, and the message must be processed and verified according to the documentation. A firewall, login requirement or site-route change may block access. Review incoming request logs and server responses using the transaction reference instead of relying on opening the page in a browser.
PayTR instructions specify a required text response and explain that its absence may leave the status showing as ongoing and cause notification retries. Do not add a designed page or HTML message to the service response. For another provider, follow its own notification contract rather than copying PayTR rules verbatim. Make verification and transaction storage inspectable, and retain delivery outcomes without logging secrets or card data.
Repeated notifications and preventing duplicate fulfillment
The same notification may arrive more than once because delivery is retried. A sound integration recognizes an already processed transaction and returns the appropriate response without reducing stock or creating a second shipment or invoice. This differs from two successful financial attempts, each with its own reference. Your store's records must distinguish repeated messages for the same payment from actual duplicate payments for one order.
When repairing a problem, do not delete the old notification log and reprocess indiscriminately. Inspect the transaction, order and events already executed, then complete the missing part once through a documented procedure. Maintain a lock or rule preventing concurrent processing of the same order. Even a small store can expose an integration weakness when a customer clicks twice or two notifications arrive simultaneously.
| Situation | Distinguishing feature | Resolution |
|---|---|---|
| Same payment reference repeated | One transaction, multiple messages | Safe processing without duplicate fulfillment |
| Two successful references for one order | Two independent payments | Financial review and excess-payment refund under the procedure |
| One payment and two orders | Incorrect order linkage | Identify the correct order before shipping |
| Untrusted notification | Failed verification | No automatic financial or operational changes |
Understanding WooCommerce statuses
Pending payment means the platform has recorded the order without confirming payment yet. Stock-hold settings may automatically cancel some orders after a configured period. On hold requires understanding the payment method, plugin and notes and should not be treated as general financial confirmation. Refer to platform and gateway documentation; changing a status alone does not always issue a refund or correct an external transaction.
If the platform canceled an order and payment is later confirmed successful, review stock, the product and the customer's decision before reopening it. Reserved stock may have been released and sold to another order. If you choose final cancellation, perform the refund through the correct financial process and reconcile it instead of merely marking Cancelled. Add a note linking the decision to the payment reference and reason so another employee does not reverse it without understanding what happened.
Querying transaction status
iyzico documentation provides payment inquiries and detailed reports, while PayTR offers a status inquiry service. Use the service for your integration and authorized permissions, checking the amount, currency, order and refunds as well as the success label. A transaction may have succeeded and then been partially refunded, or relate to a different reference than expected. An inquiry resolves missing information but does not by itself repair failed status storage within the store.
Hypothetical example: Order A is worth one thousand lira; its first attempt is declined and its second succeeds. If staff query only the first, they may wrongly request another payment. Start with all attempts for the order, then identify the authoritative transaction. Reconcile again after the repair to check for any ongoing attempt or required refund. Record the inquiry time and result used so the fulfillment decision can be assessed later.
Testing notifications and status storage reduces stuck orders.
An actionable support case file
Collect a small but specific set of details: the store's provider identity, order number, transaction identifier, amount and currency, time and time zone, statuses on both sides, and error code. Add the plugin and platform versions, changes before the fault, and reproduction steps where repeatable. Explain the expected and actual results in two sentences instead of sending many disorganized screenshots.
Redact unnecessary personal information, integration secrets and sensitive tokens from logs. If support requests a sensitive technical file, use the approved channel and provide only what is required. Do not open multiple unlinked tickets for the same incident; retain the escalation reference, owner and latest response. When a solution arrives, test it on a specific example before applying a broad change to all pending orders.
| Case detail | Hypothetical example | Purpose |
|---|---|---|
| Order and transaction | TR-2801 / PAY-EX-02 | Identify the transaction |
| Amount and currency | 1,000 TRY | Detect an amount discrepancy |
| Status | Provider successful / store pending | Identify the failed component |
| Time and change | Known time / plugin update | Narrow the investigation |
| Reference and owner | Ticket SUP-01 / developer | Follow up on the decision |

Test a limited repair, then roll it out
Use a test environment where available to cover success, decline, abandonment, delay, repetition and refunds. Define expected outcomes for the order, inventory, notification and finances in each case. Do not test only the payment click and a visually pleasing page. Some faults appear when a server notification arrives or is received again, so request evidence from logs, reports and reconciliation.
After deploying the repair to the live environment, follow provider instructions for limited, authorized testing and monitor new orders. Do not automatically rerun all old transactions without review; some have already been shipped or refunded. Measure stuck-order counts and verification times before and after the repair, with samples showing that funds and stock were not duplicated. If verification fails, use the agreed rollback plan and continue investigating.
| Test scenario | Financial outcome | Operational outcome |
|---|---|---|
| Confirmed success | One valid transaction | One order ready for preparation |
| Decline | No successful collection of funds | No shipping |
| Repeated notification | Same transaction | No new invoice or shipment |
| Success with an interrupted return flow | Independent verification | Correct status after notification |
| Partial refund | Matching amount | Clear balance and note |

Communicate without overpromising
Tell customers only what has been established: if you are investigating, do not say a refund has been issued; if a refund succeeds, send its reference and explain what to expect under the provider's and bank's processes. Do not promise funds will appear within an unconfirmed minute or day. If bank follow-up is needed, provide details that help locate the transaction instead of passing the customer between organizations without explanation.
Once resolved, correct any order message suggesting an outdated status. A customer who saw a failure and then receives confirmation needs a brief explanation that the transaction was verified as successful and linked to the order. For duplicate payment, document the separate financial resolution before closing the case. Retain communication in the order record so another employee does not contradict the outcome or request a third attempt.

FAQs and response checklist
Assign a decision owner at each level: support collects details, the developer checks integration, finance confirms the movement of funds, and operations acts after release. Set an internal review period suited to your scale and alerts for older cases, respecting the provider's actual timeframe. This prevents orders remaining pending because each team assumed another was handling them.
Review failure causes and the change log weekly. One notification-access problem may have produced several cases, or an employee may have treated the return page as proof of success. Repair procedures and instructions alongside code. The rule governing the entire response is to tie financial and operational decisions to a specific confirmed transaction, prevent duplicate fulfillment and preserve an audit trail of changes.
The customer says their card was charged. Should I ship?
First verify the transaction, amount and currency with the provider. If the result remains unresolved, pause preparation until the decision is clear.
Should I manually change Pending payment to Processing?
Only after documented confirmation of success and checks of inventory and integration; changing status does not replace checking the financial transaction.
Does a repeated notification mean a duplicate payment?
No. Compare transaction identifiers: the same identifier may be a redelivered message, while two successful identifiers require separate review.