For the complete documentation index, see llms.txt. This page is also available as Markdown.

Why is my payment still Created or In Progress?

A payment that shows created or processing is not necessarily stuck. Most of the time the customer started a payment and did not finish it. This page explains what each state means, when a payment closes out on its own, and what your integration should do while it waits.

What do created and processing mean?

  • created: the payment record exists and Bead is waiting for the customer. The customer may not have opened the hosted payment page, or may have opened it and not yet chosen a tender.

  • processing: Bead has detected funds and conversion or settlement is underway. This is not a final state. For Bitcoin on-chain payments it can last several minutes or longer.

See Payment Statuses for the full status list.

Why do so many payments stay in created?

Creating a payment and completing it are separate steps. Any time a customer starts a checkout and leaves, the payment stays open until Bead closes it. This is common, especially in test and pilot traffic where transactions are started and never finished.

When does a payment close out on its own?

Bead closes unpaid payments automatically after the hosted payment session lifetime has passed. Which final status the payment receives depends on how far the customer got:

How far the customer got
Final status

Never started a payment attempt (no quote, deposit address, or checkout was issued)

abandoned

Started an attempt (for example a crypto quote or hosted checkout was issued) but did not finish before it timed out

expired

Closing out happens on a periodic check, so a payment can remain in created for a while after the customer walked away.

Will I get a webhook when a payment is abandoned or expires?

Do not rely on it. When Bead closes a payment automatically after the session lifetime, neither abandoned nor expired is currently delivered as a payment webhook event. Your system may therefore still show the payment as created or processing after Bead has closed it. If you need to know whether a payment that stayed open was closed out, check the payment with GET /Payments/{paymentId}/tracking. See Payment Webhooks.

What should the integrator do?

  • Keep the order or invoice in a pending state while the payment is created or processing.

  • Do not fulfill on created or processing. Fulfill only on completed.

  • Set your own timeout for pending orders, and reconcile any payment still open at that point with GET /Payments/{paymentId}/tracking.

  • Treat abandoned and expired as final non-success states. Create a new payment if the customer wants to try again.

  • For a payment stuck in processing well beyond normal confirmation time, contact Bead support with the paymentId.