Merchant payments 2026

Forma

A working merchant payments workspace for Studio / 08, carrying an invoice from creation into a branded customer checkout, a receipt and a reconciled merchant record. A warm blush and espresso identity keeps the financial tools connected to the retailer behind them.

  • Merchant workspace
  • Invoice management
  • Customer checkout
Forma’s merchant dashboard with balances, daily receipts and invoices

The small moments
of getting paid.

Follow an order from checkout to receipt, then see it in the merchant workspace.

Forma product walkthrough
Product walkthrough · Illustrative data
  1. 01

    From invoice to checkout

    Build an itemised invoice, select its customer and open a separate customer checkout with the same order total.

  2. 02

    A customer’s own space

    The checkout uses the merchant identity and focuses on the order, delivery and payment method, with a dedicated receipt after payment.

  3. 03

    Gross, fee and net

    A successful sample payment becomes a paid invoice. Gross collections and available proceeds update with the processing fee accounted for.

A commerce story, from beginning to end

An established dashboard structure, a distinctive identity

A persistent merchant rail, balance and collection summaries, cash-flow chart, recent payment stream and invoice table establish a clear daily working view. Warm surfaces and editorial typography connect it to Studio / 08's customer experience.

Forma merchant overview with invoices, collections and available balance
01 / The workspace

Invoice creation with meaningful controls

Choose a saved customer, a catalogue item, quantity, delivery charge and due date. The item subtotal and total update immediately, invalid quantities are rejected, and the new invoice appears in the searchable status-filtered register.

02 / The checkout

A checkout that carries the merchant's identity

An illustrated product, itemised order and fixed total carry into a dedicated Studio / 08 checkout. Sample card and bank methods lead to a customer receipt with a payment reference, amount, method and invoice number.

Connect the merchant and the customer

The walkthrough follows one invoice across both sides of the transaction. Creating it increases the outstanding total; a local checkout produces a receipt, marks the invoice paid and adds the exact net proceeds to the available balance.

Studio 08 customer checkout with itemised order and card or bank payment
Forma paid invoice with processing fee, net proceeds and payment timeline
03 / The payment record

Payment records that reconcile

For the £140 item and £8 delivery, a £148 sample payment deducts a £2.42 processing fee and adds £145.58 to the merchant balance. Invoice status, collection totals, outstanding amounts and payment details all reflect the same local record.

Engineering approach / Proposed architecture

One order. A dependable payment record.

Forma's checkout would connect the merchant's order to a payment provider, then carry that record through confirmation, refunds and settlement. The server would own the amount and payment state; the interface would explain what is happening at each step.

  1. 01

    Create the order

    Calculate the items, delivery and any adjustments on the server. Store a versioned total and create one checkout attempt tied to that order.

  2. 02

    Collect with the provider

    Use provider-hosted fields or wallet components for payment details. Return tokenized references to the application instead of handling raw card data.

  3. 03

    Confirm the result

    Verify and store provider webhook events, then update the payment state. Release fulfilment through a deduplicated job after confirmed success.

  4. 04

    Reconcile the sale

    Link the order, payment, fees, refunds and payout records. Surface unmatched amounts for review before treating a settlement as reconciled.

Under the surface

The decisions
behind the experience.

Explore the system behaviour, integration choices and operational detail.

A repeated click is the same attempt

Reuse an existing checkout attempt when the same order is submitted again. Pair a database uniqueness rule with a stable provider idempotency key. If the order changes, validate a new version and supersede the previous attempt without creating two active payment paths.

Payment state comes from the server

A browser redirect is not the final payment record. Verify webhook signatures, store event IDs and process events without assuming delivery order. Keep pending, succeeded and failed states distinct; issue the receipt and fulfilment job only once after confirmed success.

Refunds keep their own history

Store each partial or full refund as a linked operation, checking the remaining refundable amount. Track pending, succeeded and failed outcomes independently of the original sale. Reconciliation would account for refunds and provider fees when matching the net payout.

A possible production stack
Storefront & checkoutNext.js + TypeScript
Share order, checkout and invoice components while retrieving authoritative totals and payment status from the server.
Payment collectionStripe Checkout Sessions + Payment Element
A proposed provider option for embedded, tokenized payment collection. Available methods would follow the merchant's configuration, currency and customer context.
Order & payment recordsPostgreSQL
Link orders, attempts, events and refunds with exact amounts and uniqueness rules. Store fulfilment jobs alongside the confirmed state change.
Processing & reconciliationNode.js workers + provider APIs
Process stored events, retry unfinished jobs and match provider balance and payout records to the merchant's order history.

Your next fintech product

Make getting paid feel simple.

Tell us about your customers, workflows and technical requirements. We’ll shape the right approach together.

Continue exploring

North

Business treasury

Next project