Pay at the table and split the bill

Hosted restaurant checkout with exact split-bill calculations

A guest can pay the whole bill or split it equally. The server calculates every share in minor currency units, then prepares an independent hosted link and status for each participant.

Restaurant order dashboard showing tables, orders and payment states

Zadira Dine

The calculation happens on the server

Laravel accepts a split count from 2 to 12 and divides the trusted order total in minor units. Any remainder is distributed deterministically so the shares always add up to the exact bill.

A clearer payment flow for guests and staff

01

One link per share

Every participant receives a hosted checkout link with an independently trackable status.

02

Idempotent retries

Payment creation uses an idempotency key so a retry cannot silently create duplicate payment groups.

03

No card fields inside Zadira

Guests continue to the approved provider instead of entering card numbers in the restaurant app.

An exact split example

  1. 1

    Order total

    A SAR 100.01 bill is stored as 10,001 halalas.

  2. 2

    Guest count

    The guest chooses to split the bill across three people.

  3. 3

    Exact shares

    The result is SAR 33.34 + 33.34 + 33.33, with no missing or extra halala.

  4. 4

    Track settlement

    The admin shows each share state and the overall bill settlement state.

The preview does not make real charges

The current gateway is a demo used to show the flow. Production requires an approved provider, a merchant account, server-side secrets, webhook configuration, and independent security and compliance review.

Included in the current scope

  • Full payment or an equal split into 2–12 shares
  • Exact minor-unit arithmetic
  • Hosted checkout links only
  • Signed webhook confirmation with replay protection

Payment and split-bill questions

Does the live preview charge real money?

No. It uses a demo gateway and never charges a card. A real merchant provider and credentials are required for production.

Does Zadira store card details?

No. The architecture uses a provider-hosted checkout page and the restaurant interface contains no card-number fields.

How are rounding remainders handled?

The server divides the total in minor units and distributes the remainder across the first shares, so the exact total always matches.

See the split-bill experience

Try the non-charging flow, then discuss the payment provider that fits your operation.