Restaurant Online Ordering Payment Integration: A Developer's Guide

October 13, 2026
Software
Online Ordering Payments

1. Online Ordering Is a Payment Design Problem

Restaurant ecommerce has a longer gap between order creation and settlement than most in-person channels. A customer may place an order hours before pickup, request substitutions, add a tip, or cancel after production begins.

Revenue leakage usually comes from payment-state errors rather than menu presentation. Common failures include abandoned checkouts that leave open authorizations, refunds created because an order was captured too early, unfulfilled orders released after a browser redirect, and settlement records that cannot be matched to internal orders.

Build the payment lifecycle before optimizing the menu interface. Your application must know what was authorized, what was fulfilled, what was captured, and what remains unresolved.

Review the payment gateway integration architecture guide before defining application responsibilities.

2. Map Every Ordering Surface

Online ordering may begin on a restaurant website, branded mobile app, self-service kiosk, marketplace handoff, phone order, catering form, text message, or chat interaction. Each surface can have different authentication, pricing, fulfillment, and customer-notification requirements.

Use one payment service layer for every surface. Do not build separate payment logic for the website, app, kiosk, and phone-order dashboard.

A unified service layer provides:

  • One authorization and capture model.
  • Consistent refund, void, and adjustment controls.
  • Centralized fraud and payment-state handling.
  • Common transaction identifiers across ordering channels.
  • One reconciliation process for all online revenue.

The ordering surface should collect customer intent. The payment service should validate the amount, apply the permitted payment action, and return a verified result to the order system.

Ordering Surface Overview

3. Model the Basket Separately From the Order

A basket is a customer’s working selection. An order is a committed business record with a fulfillment mode, customer details, payment status, and operational history.

Do not treat a saved basket as a final price. Menu versions, modifier prices, taxes, service fees, availability, and delivery rules can change between basket creation and checkout.

At checkout, re-price the basket on the server. Validate:

  • Current item prices and menu version.
  • Modifier and option price deltas.
  • 86’d or unavailable items.
  • Current tax and fee rules.
  • Minimum order requirements.
  • Available fulfillment windows.
  • Promotions, store credit, gift card balances, and loyalty redemption.

Present any price or availability change before payment confirmation. Store the submitted basket and the finalized order as separate records so the application can explain how the final amount was calculated.

4. Select the Checkout Collection Model

Your collection model affects conversion, development effort, and PCI scope. Choose the model that gives the product team the required checkout control without bringing unnecessary cardholder data into the application environment.

Hosted Payment Page

A hosted payment page moves payment entry to a gateway-controlled checkout experience. Your application creates the order context, sends the customer to the hosted page, and verifies the resulting transaction before changing the order to a payable or accepted state.

This model reduces the amount of payment data handled by your website. It is useful for an initial release, a lower-maintenance checkout, or a product team that does not need complete control over the payment form.

Hosted Payment Fields or Client-Side Tokenization

Hosted fields keep the customer within your branded checkout while payment inputs remain controlled by the gateway integration. The browser returns a payment reference rather than raw card data to your application.

Review the client-side payment integration resources for the current implementation requirements. Do not invent client-side parameters or rely on undocumented behavior.

Customer Vault and Guest Checkout

Use guest checkout to reduce friction for first-time customers. Offer saved payment methods only after obtaining the required customer consent and storing the permitted Customer Vault reference.

The Customer Vault allows the gateway to retain encrypted payment information while your application stores a reference connected to the customer record. Never store full card numbers or CVV values in the ordering database.

Hosted Payment Page

5. Authorize Versus Capture

Authorization and capture are separate payment actions. An authorization reserves an amount; capture submits an amount for settlement.

For many restaurant online-ordering workflows, authorize the estimated amount at checkout and capture the final amount at or after fulfillment. The exact timing depends on the fulfillment mode, authorization validity window, merchant configuration, and gateway capabilities.

Why Early Capture Creates Refund Work

Capturing at checkout makes the initial estimate the settled amount. Every later change must then be handled through a refund, a separate adjustment, or a second payment.

Changes may result from:

  • Item substitutions.
  • Modifier or option changes.
  • Unavailable items.
  • Kitchen rejection.
  • Delivery fee changes.
  • Customer-added tips.
  • Partial fulfillment.

Store the authorized amount and final captured amount as separate values. Never assume they are equal.

If the final amount exceeds the authorization, follow the supported gateway workflow for an additional authorization, reauthorization, or permitted adjustment. Do not silently capture more than the approved amount.

Future-Dated Orders

A scheduled order may be authorized well before fulfillment. Authorization validity windows vary, so the application must track the authorization date and determine whether it remains usable when production approaches.

If the authorization cannot remain valid until fulfillment, define a customer-approved reauthorization or payment-collection process. Do not allow a stale authorization to become an unexplained decline at the kitchen handoff.

Authorize Capture Timeline

Failure Mode: Capturing Before Fulfillment

Early capture creates unnecessary refunds when the restaurant rejects an order, removes an unavailable item, or fails to deliver. It also makes reporting less precise because the captured payment no longer matches the fulfilled order.

Use a clear rule: payment confirmation permits the order to enter the appropriate workflow; fulfillment determines when the final amount should be settled.

6. Define the Order Lifecycle

Use explicit states instead of one paid value. A practical online order model includes:

  • Created: The order record exists, but payment has not started.
  • Pending payment: Checkout is active or payment verification is incomplete.
  • Authorized: The payment amount has been approved but not necessarily captured.
  • Accepted: The restaurant has accepted the order for fulfillment.
  • In production: Preparation has started.
  • Ready: The order is prepared for pickup, delivery, or handoff.
  • Fulfilled: The customer received the order or the delivery was completed.
  • Cancelled: The order will not be fulfilled.
  • Partially refunded: Some captured value has been returned.
  • Refunded: The captured amount has been returned.
  • Unknown: The application cannot determine the final payment result and requires verification.

Void an authorization when an order is cancelled before capture, where supported. Refund a captured amount after settlement or after the transaction has entered the applicable refund state.

Never release an order to production based only on a browser redirect, client callback, or customer-facing success page. Confirm the server-side payment result through the documented gateway response or event process.

Make payment, order, and fulfillment events idempotent. Persist event identifiers and internal references so retries do not double-charge, double-refund, or double-fulfill an order.

7. Store Fulfillment Mode as Data

Fulfillment mode should drive payment timing. Do not infer it from free-text notes.

Pickup

Capture when the order is accepted for preparation or when it reaches the defined pickup stage. Void or refund according to whether capture has occurred.

Curbside

Capture when the order is ready or when the customer arrives, depending on the restaurant’s operating rule. Keep arrival status separate from payment status.

In-House Delivery

Capture at the defined dispatch or fulfillment point. Retain the delivery confirmation and handoff record.

Third-Party Delivery Handoff

Store the handoff as an operational event. Payment ownership, fee treatment, and capture timing should remain controlled by the order’s configured agreement.

Dine-In Pre-Order

Treat the online order as a separate payment workflow until it is connected to the in-restaurant transaction. Do not duplicate the charge when the customer later pays through the restaurant’s in-person process.

Catering and Scheduled Orders

Long-lead catering orders require explicit deposit, balance, cancellation, and reauthorization rules. Future-dated orders need a payment schedule that reflects the authorization window and fulfillment date.

8. Separate Delivery Fees, Minimums, and Taxes

Configure delivery zones by postal code, distance, or another supported geographic rule. Validate the customer’s location before taking payment.

Keep these amounts as separate order lines:

  • Food and beverage items.
  • Modifier charges.
  • Delivery fee.
  • Service fee.
  • Tax.
  • Tip.
  • Discount.

A delivery fee should not be treated as automatically non-refundable. If delivery fails or the order is cancelled before dispatch, the fee may require separate reversal under the restaurant’s policy and applicable requirements.

Apply tax rules to each line according to the merchant’s configuration. Do not calculate one blended total that prevents support and reconciliation teams from identifying the source of a difference.

9. Control Capacity Before Payment

Order throttling should protect kitchen capacity before payment is taken. Calculate available capacity by time slot, fulfillment mode, preparation time, item restrictions, and location.

Close a full slot before checkout begins. If capacity changes during checkout, revalidate the slot before authorization and present a new time if the original slot is no longer available.

For scheduled orders, reserve capacity independently from payment status. An authorized payment does not guarantee that a production slot remains available unless the application has recorded the reservation successfully.

10. Handle Online Tips as Separate Values

Support the restaurant’s chosen tip workflow:

  • Tip selected during checkout.
  • Tip added at pickup.
  • Tip added after delivery.
  • No-tip quick-service ordering.
  • Suggested tip percentages or fixed amounts.

Keep the authorized amount, tip amount, and final captured amount distinct. If a tip is added after capture, process it through the supported adjustment workflow rather than changing the settled amount silently.

Display tip suggestions clearly and preserve the customer’s selected value in the order record.

11. Keep Gift Cards, Loyalty, and Promotions Separate

These instruments do different jobs.

A gift card is a payment tender with a balance. Store credit is an adjustment issued by the merchant. Loyalty points represent an earned and redeemed value. A promotional code changes the eligible price.

Create separate records for each. Do not combine all reductions and tenders into one opaque total.

Support partial gift card redemption by applying the available balance first and collecting the remaining amount through the permitted payment method. Record the gift card reference, redeemed amount, residual payment, and resulting order total independently.

12. Apply Card-Not-Present Risk Controls

Online ordering requires controls for card-not-present risk. Evaluate:

  • Address verification responses.
  • CVV response handling.
  • Velocity by card, device, customer, email address, and delivery location.
  • Repeated failed attempts.
  • Unusually large catering or gift card orders.
  • Step-up authentication for higher-risk transactions.

Step-up authentication is a liability and conversion decision. Define when it is required, what happens if it fails, and whether the order remains pending or is cancelled.

Display cancellation, refund, delivery, and pickup policies before checkout. Retain the accepted policy version with the order.

A defensible order record should include the order contents, customer communications, timestamps, fulfillment events, payment references, authorization and capture results, refund actions, and delivery or pickup confirmation.

13. Manage Cancellations, Refunds, and Disputes

Map each action to the correct payment state.

  • Cancel before production: void the authorization when possible.
  • Cancel after capture: issue a full or partial refund.
  • Remove one unavailable item: refund or adjust that line only.
  • Refund delivery or service fees: create separate fee refund records.
  • Return a tip: record the tip refund or adjustment independently.
  • Dispute an unknown result: verify the gateway and settlement records before taking another payment.

Require permission controls for refunds, voids, captures, and adjustments. Use idempotency safeguards so a repeated support action does not create multiple financial transactions.

14. Reconcile the Complete Identifier Chain

Reconciliation should connect:

Payment Reconciliation Chain

  • Basket.
  • Order.
  • Authorization.
  • Capture.
  • Tip adjustment.
  • Refund.
  • Settlement line.
  • Payout.
  • Bank deposit.

Run daily reconciliation across order records and settlement reporting. Surface unmatched records for review instead of absorbing them into a generic variance.

Common mismatches include tips adjusted after settlement, refunded delivery fees, delayed captures, duplicate payment attempts, and orders accepted internally without a matching gateway transaction.

The Integrate Payments developer sandbox provides a controlled environment for testing approvals, failures, captures, refunds, and reconciliation behavior before production.

15. Connect Production and Delivery Systems

Kitchen display and production routing should receive an order only after the required payment verification has completed. The production system should return accepted, rejected, in-production, ready, and fulfilled events to the ordering service.

Delivery dispatch should return assignment, handoff, cancellation, and completion events. These events may change the payment action, but they should not overwrite the payment record.

Keep kitchen status, delivery status, customer notification status, and payment status as separate state groups connected by internal identifiers.

16. Support Repeat Ordering and Stored Credentials

Repeat ordering can use a saved Customer Vault reference after the customer provides the required consent. Preserve the original customer-initiated transaction reference and the applicable credential-on-file record.

For scheduled orders, distinguish between:

  • A new customer-initiated checkout.
  • A merchant-initiated stored-credential charge.
  • A recurring billing agreement.
  • A prepaid balance deduction.

Meal plans and prepaid meal credits should be tracked as balances. Do not assume that a prepaid balance is a subscription or that a subscription automatically authorizes every future order.

Use the recurring billing API information for the documented recurring workflow and supported values.

17. Use a Practical Data Model

Separate the following records:

  • Basket.
  • Order.
  • Order line.
  • Modifier.
  • Payment attempt.
  • Payment.
  • Adjustment.
  • Tip adjustment.
  • Refund.
  • Settlement line.
  • Payout.

Give each record an explicit state and internal identifier. Store permitted gateway references, transaction IDs, customer references, timestamps, amounts, and event IDs.

Do not store full card numbers, CVV values, or unfiltered payment payloads. For broader application architecture guidance, review how to integrate payments into custom software.

18. Avoid Common Implementation Mistakes

  • Capturing an order before fulfillment.
  • Releasing production work on a browser redirect.
  • Trusting a saved basket price.
  • Treating delivery fees as non-refundable by default.
  • Folding gift cards and loyalty redemption into one total.
  • Building a separate checkout for every ordering surface.
  • Reconciling only at the end of the day without transaction identifiers.
  • Using one Boolean field for authorization, capture, settlement, and fulfillment.
  • Retrying an unknown payment without first verifying the original result.
  • Storing raw card data in application logs or analytics tools.

Correct these decisions during architecture planning. Retrofitting payment-state controls after launch creates operational and accounting risk.

19. Online Ordering Payment Checklist

  1. Map every ordering surface to one payment service layer.
  2. Separate baskets from committed orders.
  3. Re-price every basket at checkout.
  4. Choose a hosted page, hosted fields, or another supported collection model.
  5. Keep card data out of application storage whenever possible.
  6. Define authorization and capture timing for each fulfillment mode.
  7. Store authorized and captured amounts separately.
  8. Model explicit order and payment states.
  9. Verify server-side payment results before production release.
  10. Make payment, order, fulfillment, and refund events idempotent.
  11. Store delivery fees, taxes, tips, discounts, and tenders separately.
  12. Apply capacity limits before payment is authorized.
  13. Configure card-not-present risk controls.
  14. Retain policy acceptance and fulfillment evidence.
  15. Reconcile orders through payout and bank deposit.
  16. Test declines, timeouts, duplicate events, refunds, and unknown results in the sandbox.
  17. Complete the applicable PCI and Self-Assessment Questionnaire process.

Build the Ordering Payment Layer First

Restaurant websites, apps, kiosks, catering forms, and delivery platforms need a shared payment model that can handle changing baskets, delayed fulfillment, refunds, tips, and settlement reporting.

If you are building online ordering, restaurant ecommerce, a delivery platform, or an ordering application, bring your order and payment model into an integration discussion with the Integrate Payments team. Start in the developer sandbox before moving to production.

Integrations remain subject to processor, card brand, regulatory, and PCI DSS requirements. Completing a Self-Assessment Questionnaire does not by itself establish compliance. Merchants and software providers remain responsible for validating their complete environment, controls, responsibilities, and applicable compliance obligations.

Integrate Payments Related Blog Posts

Please Contact Me