E-commerce

Checkout that tells your order system the truth.

For stores shipping physical or digital goods: create a payment intent when the cart is final, redirect to the hosted checkout, and fulfil only on a confirmed, signed event.

Workflow

How it runs, step by step.

  1. Your store

    Cart finalised

    Create a payment intent with your order ID and the amount in your currency.

    merchant_order_id
  2. Customer

    Hosted checkout

    The customer chooses an asset and sees the exact amount and the address for this payment, valid for a fixed window.

    /c/{session}
  3. GRYPHEM

    Payment observed

    Detected and confirming states update live on the checkout page as Bitcart reports them.

    detected · confirming
  4. Your store

    Fulfil on confirmed

    A signed payment.confirmed webhook marks the order paid. Deduplicate on event_id before shipping.

    payment.confirmed
  5. Your team

    Handle exceptions

    Under-, over- and late payments land in the dashboard review queue with the evidence attached.

    review_required

Outcomes

What changes for your team.

  • Order states mapped to payment states

    Each payment state has a precise meaning, so your order system never has to guess whether “seen” means “paid”.

  • No double fulfilment

    Event IDs are stable across retries. Treat them as idempotency keys and a repeated webhook becomes harmless.

  • Honest progress for customers

    The checkout shows each step as it happens — detected, confirming, confirmed — instead of an endless spinner.

  • Refunds stay in your hands

    Crypto has no chargebacks. You decide on refunds, send them from a wallet you control and record them against the payment for reconciliation.

Before you integrate

Things to decide up front.

  • Crypto payments have no chargebacks. Your refund policy should say how and in which asset refunds are issued.
  • Choose a payment window that matches your checkout: long enough for a wallet confirmation, short enough to limit price drift.
  • Decide how to treat partial payments. The dashboard lets you resolve them with a recorded reason, never silently.
  • Fulfil on confirmed, not detected. For high-value orders, fetch the payment from the API before shipping.