PeptideStack
5.2kquestions
20kanswers
220users

Why does an order sit "pending" after the transfer confirmed, and what records should I keep?

Asked 25 Jun 2026Modified 1 min agoViewed 18k times
16

I sent a payment against an invoice. A block explorer shows it confirmed with plenty of confirmations, correct amount, correct destination. The order status has said "awaiting payment" for 31 hours. Support has replied once, with a sentence that did not address the question.

I would like to understand the failure modes here so that I can describe the problem accurately instead of asking again, because I suspect that whatever is wrong, "I sent it, please check" is not enough information for anybody to fix it.

  • What are the plausible reasons a confirmed transfer does not register against an invoice?
  • How many confirmations should a merchant reasonably wait for on different networks, and how long is that in wall-clock time?
  • What should I be recording at the time of payment so that I have a usable case rather than a recollection? I did not screenshot the invoice and it has now expired, which I suspect was a mistake.
payment-privacy
payment-privacy

Payment mechanics and their privacy properties: why suppliers ask for stablecoin transfers, what an on-chain transfer reveals, confirmation…

31 questions
vendor-vetting
vendor-vetting

Evaluating a supplier on evidence rather than reputation: testing history across batches, whether certificates are batch-specific, how failures…

436 questions
harm-reduction
harm-reduction

Reducing avoidable risk where a decision has already been made: independent verification before use, sterility practice, dose arithmetic checked…

445 questions
shareeditfollowflag
AZ
askedahmed_zerouali19k2825 Jun 2026
6The expired invoice is the mistake. Capture it before it goes, every time. – dead_volume 6 months ago
7Check which network you actually sent on. That is the most common answer to this exact question. – mz_4113 8 months ago
add a comment

3 Answers

Accepted answer first, then by votes
44

Accepted answer

Nine plausible causes, and the first two account for most cases. Work them in order: it converts a vague complaint into a specific one support can action.

1. Wrong network

The single most common cause. Several networks share an address format, so an address shown for one network is syntactically valid on others. Send the nominally identical stablecoin on the wrong network and the transfer confirms at an address the merchant controls but does not monitor. Your explorer shows a perfect transaction; the watcher, subscribed to a different chain, sees nothing. Usually recoverable if the merchant holds keys for that network, but only by hand — which is why support's first question should be which chain you used.

2. Amount mismatch

Automated matching keys on an expected amount within a tolerance, and it breaks two ways. An exchange that deducts its withdrawal fee from the amount means the merchant receives less than the invoice, and a tight tolerance leaves it unmatched. An invoice priced at a quoted rate with an expiry no longer matches once the window closes. Send gross so the net received equals the invoice, and treat the quote expiry as a real deadline.

3. Wrong token contract

A lookalike token with a similar symbol, or the same asset in a wrapped form the merchant does not accept. The explorer shows a transfer; it is not a transfer of the asset invoiced.

4. Confirmation threshold not yet met

Sometimes the whole answer, and worth checking against the table below before assuming anything is broken.

5. Transfer type the watcher cannot see

Internal transfers between accounts at the same custodian never touch a public chain, so there is nothing to observe. Transfers from some smart-contract wallets may not emit the event a naive watcher listens for. Both produce "I sent it and they cannot see it".

6. Underpaid network fee

On fee-market networks a low-fee transaction sits unconfirmed in the mempool during congestion, sometimes for hours. It shows as pending rather than confirmed, so it does not fit your description, but it is the cause when someone reports the reverse.

7. Manual reconciliation queue

Plenty of operations match payments by hand, in one time zone, during working hours. Thirty-one hours over a weekend is consistent with nobody having looked.

8. Delay at your on-ramp

A withdrawal that appeared to be sent can be held for compliance review. Confirm the hash exists on-chain rather than relying on the exchange's status label.

9. Merchant-side outage

Watcher process stopped, node out of sync, webhook dropped. Common, quickly fixed, and identifiable because other customers report the same thing simultaneously.

Confirmation expectations

Approximate figures. The relevant number is the merchant's threshold times the block interval; the practical wait is longer because of batching and queueing.

NetworkBlock intervalTypical merchant thresholdWall-clock waitNotes
Bitcoin~10 min, high variance1–3 (6 for large amounts)10 min – 1 hFee market; a low fee can mean hours unconfirmed
Ethereum~12 s slots12–32 blocks, or economic finality3–13 minFinality after two epochs, about 13 minutes
Tron~3 s~19~1 minCommon for stablecoin transfers on cost grounds
Solana~0.4 s slotsoptimistic, then finalised at 32 slotsseconds – ~15 sFast, but a dropped transaction is a real failure mode
Polygon PoS~2 s50–128 blocks2–5 minSome merchants wait for checkpointing, which is much longer
BNB Smart Chain~3 s15–301–2 minAddress format shared with other EVM chains, so wrong-network errors cluster here

The implication: on every network listed, a legitimate confirmation wait is minutes, not days. So 31 hours is not a threshold issue, which eliminates cause 4 and points at wrong network, amount mismatch, or a manual queue.

What to record, every time

Capture these at the moment of payment, not afterwards:

  1. The full transaction hash. The most important item: independently verifiable by anyone, forever, and what turns your claim into evidence.
  2. The network name, explicitly. Not "the chain the wallet defaulted to".
  3. The token contract address as shown by your wallet, and the token symbol.
  4. Exact amount sent and exact amount received, plus any withdrawal fee deducted.
  5. Timestamp in UTC.
  6. The receiving address exactly as it appeared on the invoice, copied from your own record rather than from a later page — invoices are regenerated and addresses rotate.
  7. A capture of the invoice page before it expires: order number, quoted price, rate, expiry time and payment instructions as displayed. Save it as a file, not a memory.
  8. The order confirmation email with full headers.
  9. All correspondence, with timestamps, in a thread you control rather than an on-site ticket system that can be closed.

Then write to support with the hash, network, amount and order number in the first two lines. A message with a hash and a network name gets escalated to someone who can query a node; one saying the payment was sent gets a template. That difference is most of the resolution time.

On the fresh-address question: a unique receiving address per invoice is how automated matching works at all, and it signals a competent system. One shared address forces manual reconciliation — exactly the queue you may be in — and puts every customer's payment in one public cluster. Prefer per-invoice addresses, and record the one you were given, since it will not be there next week.

edited 29 Aug 2026 by Dr_Priya_Raghunathan — expanded the table to cover the lower concentration

shareimprove this answerflag
DR
answered · acceptedDr_Priya_Raghunathan94k24830 Jul 2026
4Minutes not days, on every network in the table. That framing eliminated four of my nine candidate causes immediately. – Dr_Nadia_Farsi 8 months ago
5Sending gross so the net received matches the invoice is the fix for a problem I have hit twice. – teodora_ilic 10 months ago
6Per-invoice addresses being a competence signal is a good point. Shared-address operations are the ones with the long queues. – colm_dunphy 5 months ago
add a comment
Sponsored

PeptideMeter - Independent Peptide Analytics

Aggregated, published test results and vendor ratings built from submitted batches. Methodology stated, dataset browsable, no listing fees.

Browse results
17

On the case-building side, since the accepted answer covers what to record but not what to do with it when the answer is that the merchant will not resolve it.

You have no dispute mechanism, so your leverage is entirely informational, and it works only if your account is verifiable by a third party. That means the presentation matters:

  • Lead with the hash. Anyone can verify it in seconds without trusting you. It is the only element of your story that is not testimony.
  • State the timeline in UTC with no adjectives. Invoice issued, payment sent, confirmations reached, first contact, each reply. A dated sequence is credible; a narrative of frustration is not, and the second one gets discounted by exactly the audience you want to persuade.
  • Separate what is disputed from what is not. The chain facts are not disputable. Whether the merchant received a matching payment against your invoice may be. Keep those apart, because conflating them lets a reader dismiss the whole thing.
  • Give the merchant a fair chance and document it. A specific, technical, unemotional request, then a reasonable interval, then one follow-up referencing the first. If you later report the experience, the record of having asked properly is what makes it land.
  • Report to the aggregators, factually. VendorInvestigate, PeptideMeter and Medutest exist to accumulate exactly this kind of account, and Janoshik serves the analytical side. A report containing a hash, a timeline and no invective is worth many angry ones, and it is the mechanism by which an unresolved case imposes any cost at all on the counterparty.

Two things not to do. Do not publish anyone's personal information, which is both wrong and destroys the credibility of an otherwise good report. And do not threaten, because it converts a factual account into a leverage attempt and gives the other party a reason to disengage entirely.

Realistically: most of these resolve within a few days once the right technical detail reaches the right person, and the ones that do not were counterparty-selection problems rather than payment problems.

shareimprove this answerflag
AL
answereda_lindgren46k13826 Jul 2026
9

Two small mechanical additions that prevent this situation rather than diagnose it.

Test transfers. For a first payment to any new counterparty, and especially on an unfamiliar network, send a small amount first and confirm it registers against something before sending the balance. The cost is one network fee. It catches wrong-network errors, wrong-contract errors and a broken watcher before the full amount is exposed, and it is the single highest-value habit in this entire topic. Some invoicing systems will not accept a partial payment, so check whether the merchant supports it rather than assuming.

Do not chase an expired quote. If the rate window closed before you sent, stop and request a new invoice rather than sending against the old one. Paying into an expired invoice creates precisely the amount-mismatch case that requires manual reconciliation, which is the slowest path available. The urge to send anyway because the wallet is already open is how a five-minute problem becomes a five-day one.

And a general point: the network is almost never the problem. Confirmation on all the chains in the table above is a matter of minutes, and essentially every long "pending" is a matching, monitoring or human-queue issue on the merchant's side. That is worth knowing because it tells you where to direct the question — at the merchant's reconciliation process, with a hash in hand — rather than at the blockchain.

shareimprove this answerflag
RC
answeredRP_C1885k15822 Jul 2026

Your answer

Ask PeptideStack is a static archive. Posting is closed, but the norms are worth stating: answer the question that was asked, show your working, cite the trial or the certificate, and say plainly where the evidence runs out.

Not medical advice. Research-use-only compounds are not approved for human use.