---
title: Checkout Options
description: Compare the three ways to collect payments with ZevPay Checkout - inline modal, standard hosted redirect, and programmable invoices. Pick the one that fits your stack.
---

# Checkout Options

ZevPay Checkout gives you three ways to collect a payment. They all settle to the same account, support the same payment methods, and emit the same webhooks. The difference is where the checkout runs and who creates the session.

Pick one based on how much of the flow you want to own.

## The three options

| Option | Where it runs | Who creates the session | API key | Best for |
|--------|---------------|-------------------------|---------|----------|
| [Inline Checkout](/checkout/inline) | A modal on your own page | The browser SDK, for you | Public (`pk_`) | Vanilla JS, jQuery, and single-page apps that want the customer to stay on the page |
| [Standard Checkout](/checkout/standard) | A page we host | Your server, before redirect | Secret (`sk_`) to create, then a redirect | Server-rendered stores, carts, and email or SMS payment links |
| [Invoice Checkout](/checkout/invoice) | A hosted, tokenised invoice page | Your server, via the invoice API | Secret (`sk_`) | Itemised billing, due dates, and partial payments |

## How to choose

**Choose Inline** if you want the customer to stay on your page and you would rather not run a server step. The SDK creates the session with your public key and renders a modal. You handle the result in JavaScript callbacks.

**Choose Standard** if you already have a backend and want us to host the payment page. Your server creates the session with your secret key, you redirect the customer to the returned URL, and they come back to your `callback_url` with the result.

**Choose Invoice** if you need line items, tax, a due date, or the option for a customer to pay in parts. You create the invoice on your server and share the returned `payment_url`. The customer pays on a hosted page that doubles as a receipt after payment.

## What they share

Regardless of the option you pick:

- **Amounts are in kobo.** 100 kobo is 1 Naira. An amount of `500000` is ₦5,000.00.
- **Payment methods** are bank transfer and ZevPay ID by default. See [Payment Methods](/payment-methods/overview) for how availability is decided.
- **Verification is server-side.** Never treat a client callback or redirect as proof of payment on its own. Confirm every payment from your server before you fulfil an order. See [Payment Lifecycle](/guide/payment-lifecycle).
- **Webhooks** notify your server of every status change. See [Webhook Events](/webhooks/events).

## Next steps

- [Inline Checkout](/checkout/inline)
- [Standard Checkout](/checkout/standard)
- [Invoice Checkout](/checkout/invoice)
- [Payment Methods](/payment-methods/overview)
- [Authentication](/guide/authentication)
