Payment controls and records

Collect evidence when a card payment is declined

Separate three Stripe outcomes before you change the store. An issuer or payment-provider decline means their systems refused authorization, and Stripe passes along the decline information it received. A blocked payment means Stripe Radar or another Stripe block stopped it before issuer authorization. An invalid API call is a request the integration sent incorrectly, and it often never appears as a payment in the Dashboard. WooCommerce uses Failed when the payment failed or was declined and no payment succeeded, which is not the same status as Pending payment or On hold. Record the time, order number, outcome type, and any decline or advice code. Follow the advice code. Do not change the business description, descriptor, or category to obtain a different result. The issuer discusses the specific reason with the cardholder, not with the merchant. Describe the work you need. Prism will confirm scope, responsibilities, fees, and terms before work begins.

For: An owner or authorized representative of a research-use-only peptide business looking at a card payment that did not complete.

Updated 2026-09-21

Three different failures

Stripe's declines page says a payment can fail as an issuer decline, a blocked payment, or an invalid API call. For an issuer or other payment-provider decline, that party's systems decide whether to authorize. Stripe shares the decline information it receives, in the Dashboard and the API, including a decline code when the issuer provided a specific reason. Many declines are generic, so the code may not name a precise cause.

A blocked outcome means Stripe did not obtain issuer authorization. The example Stripe gives for a high-risk block has network_status not_sent_to_network, type blocked, and a seller message that Stripe blocked the charge. Adding a payment to an allow list, where that button exists, does not retry the payment. It only stops later matching attempts from being blocked by your rules. An invalid outcome is the third type. Stripe says invalid API calls typically do not appear in the Dashboard.

Those three labels are the first sort. A store error that prevented the request from being sent is not an issuer decline. An issuer decline is not fixed by editing the product page.

What the advice code tells you to do next

Stripe's card-decline page says the outcome's advice_code is the next step. do_not_try_again means the card was declined and you should not use it again for the same transaction. The customer may need to contact the issuer. try_again_later means the issuer declined it and a later attempt is allowed. confirm_card_data means some submitted information was incorrect and the customer needs to correct it.

The same page says card networks limit how many times a charge can be reattempted. Stripe recommends a maximum of eight retries for charges that permit retries, and says issuers might treat further retries as fraud, which can increase declines on legitimate charges. That maximum is not permission to retry a do_not_try_again card, and it is not a method for getting a refused payment through.

For privacy and security, Stripe says issuers discuss the specifics of a decline only with their cardholders. If the card data is correct and the code is generic, the documented next step is for the customer to contact the issuer. You record the code. You do not receive the issuer's internal reason.

The order status is a second record

WooCommerce Failed means the customer's payment failed or was declined and no payment has been successfully made. If stock was reduced earlier, WooCommerce returns it when the order moves to Failed. The status may not appear immediately. A delayed payment can stay On hold while it is confirmed and move to Failed only if it is rejected. Pending payment means the order was received and no payment has been made. On hold means the store is waiting for payment confirmation, and stock is reduced. Completed and Processing are not decline states.

When an order is marked failed from pending or on hold, WooCommerce sends a notice to the store recipients and a notice to the customer that the payment was unsuccessful, with instructions to try again using a different payment method. That customer email is the store's message. It is not the issuer's decline code. Read both.

An authentication failure is evidence too, but it is a different fact from a generic issuer decline. Stripe documents authentication_required for some off-session payments. Record the code if it is present, and use the authentication guide to understand the step. Do not fold every failure into one retry.

What to keep, and what not to change

You can collect a redacted incident: time, order number, provider payment identifier, outcome type, decline code, advice code, whether the outcome says the network was not contacted, the WooCommerce status, and any plugin, theme, or checkout change made before the failure. You can decide to stop and ask the provider when the outcome is blocked or invalid. You can ask the customer to correct card data or contact the issuer when the advice code says so.

The issuer decides an issuer decline. Stripe decides a Radar block under its rules and yours. The provider decides whether the account remains in good standing. Prism can help you organize a checkout question for a consultation. A consultation does not guarantee reversal of a decline; confirm any diagnostic or provider-follow-up scope separately. A request does not submit a processing application.

Do not respond to a decline by renaming the business, changing a descriptor, hiding a product, or splitting the payment so the same attempt looks different. Do not put the full card number, security code, or customer list in the consultation form. Unknown, unless the dashboard shows it: the issuer's unpublished reason, and whether a code on another provider means the same thing as a Stripe code.

Decline evidence matrix

One row is one attempt. Record codes the dashboard already shows. Do not type a full card number. Worksheet entries are not submitted by this worksheet or saved by this site. Use only non-sensitive summaries; do not enter credentials, government identifiers, card or bank-account numbers, private receipt links, or customer details.

Worksheet entries are not submitted by Prism’s worksheet and are not saved by the site. Use record types, availability, anonymized observations, or match/mismatch results. Do not enter government identifiers, customer names or addresses, customer messages, receipt-access links, card or bank details, passwords, or keys. Send sensitive documents only through the provider’s verified secure channel.

Decline evidence matrix. The last column is for temporary notes.
EvidenceHow it separates the failureWhere it appearsYour record
Time and order numberA single attempt has to be tied to one order. A later retry is a different attempt.WooCommerce order screen. Use the order number, not the customer's card.
Stripe outcome typeissuer_declined, blocked, and invalid are different events. Blocked means Stripe did not send the payment for issuer authorization.The payment in the Stripe Dashboard, or the charge outcome in the API.
Decline code and seller messageA specific code is the issuer's stated reason when one was provided. A generic code means the exact reason was not given.The same payment. Leave blank if the attempt never reached Stripe.
Advice codedo_not_try_again means do not reuse that card for the same transaction. try_again_later and confirm_card_data mean something else.The outcome. Do not retry against do_not_try_again.
Network statusnot_sent_to_network supports a block or an invalid request. declined_by_network supports an issuer or network decline.The outcome object. Do not infer it from the storefront text alone.
WooCommerce order statusFailed means no successful payment. Pending payment and On hold are not the same status and can precede a later failure.The order status and the order notes, including any gateway message.
Emails that went outA failed order can email the store and the customer. The customer email is not the decline code.WooCommerce, Settings, Emails, and the mailbox that received the store copy.
Change just before the failureA theme, plugin, or checkout change points to an integration defect. No change points away from a release you just made.The plugin and theme update log. Record the change, not a theory about eligibility.
What you will not doRenaming the business, hiding the catalog, or extra retries past the advice code are not diagnostic steps.Leave this as a confirmation that the incident notes do not include those actions.

These are temporary notes. Leaving or reloading this page may clear them. The consultation form does not include these entries.

Limits

  • A Prism consultation can help you organize the facts and discuss the website or processing question. The payment provider decides eligibility, pricing, reserves, and whether an account is opened or closed.
  • Do not retry a card when the advice code is do_not_try_again, and do not treat eight retries as a goal.
  • Do not send the full card number, security code, or a customer list. The issuer's detailed reason is available to the cardholder, not to the merchant.

Sources checked 2026-09-21

  • Stripe declines — checked 2026-09-21. Payments fail as issuer declines, blocked payments, or invalid API calls. A block does not obtain issuer authorization. Allow-listing does not retry the payment. Invalid API calls typically do not appear in the Dashboard.
  • Stripe card declines — checked 2026-09-21. Issuers discuss decline specifics only with cardholders. Advice codes do_not_try_again, try_again_later, and confirm_card_data have different next steps. Stripe recommends no more than eight retries where retries are permitted and warns that more can be treated as fraud. authentication_required is documented for some off-session failures.
  • WooCommerce order statuses — checked 2026-09-21. Failed means the payment failed or was declined and no payment succeeded. Pending payment means no payment has been made. On hold means payment confirmation is still outstanding. Failed may not appear immediately for delayed payment methods.
  • WooCommerce email settings — checked 2026-09-21. A failed order sends a notice to the store recipients and a notice to the customer about the unsuccessful payment, telling the customer to try a different payment method.
  • Prism contact — checked 2026-09-21. The consultation form says to leave out payment card details, passwords, and customer records. A request does not submit a processing application.
  • Prism solutions — checked 2026-09-21. The provider decides eligibility and account terms. Prism can help organize a website or processing question. Scope, fees, and terms are discussed before work.

Request a consultation

Describe the business and this specific question. Prism follows up by email to discuss fit and scope. An inquiry is not a processing application or an approval.