# Online Transaction Flow

This page describes the shared lifecycle of an online order placed with Resolve.

It is intended as a cross-platform reference for merchants using:

- a platform integration such as Shopify, BigCommerce, Magento 2, or WooCommerce
- a custom integration built with the [Checkout SDK](/guides/checkout-sdk)


## Shared online checkout flow

At a high level, the online transaction flow looks like this:

1. The customer begins checkout on the merchant website.
2. The customer selects Resolve as the payment method.
3. The merchant website or platform sends checkout details to Resolve.
4. The customer completes the Resolve authentication and approval flow.
5. Resolve authorizes the transaction.
6. Resolve redirects the customer back to the merchant's order confirmation experience.
7. The merchant stores the Resolve identifier associated with the authorization.
8. The merchant fulfills the order.
9. The merchant captures the authorization when it is time to receive funds.
10. If needed later, the merchant cancels the authorization or refunds captured amounts according to the integration model being used.


## Where the flow differs

The overall customer journey is similar across integrations, but the operational model after authorization depends on how Resolve is integrated into the merchant's e-commerce stack.

### Platform integrations

For platform integrations, order and payment actions are generally driven through the e-commerce platform and synced into Resolve.

Use these guides if you are on a supported platform:

- [Shopify / Shopify Plus](/guides/shopify)
- [BigCommerce](/guides/bigcommerce)
- [Magento 2](/guides/magento-2)
- [WooCommerce](/guides/woocommerce)


Typical platform-driven behavior:

- the platform controls the checkout experience
- Resolve authorizes the buyer during platform checkout
- capture, cancellation, refund, and fulfillment behavior may be triggered from the platform and reflected in Resolve
- the exact post-authorization behavior depends on the platform integration


### Custom checkout integrations

For custom integrations, the merchant controls the integration flow more directly through the Checkout SDK and Resolve APIs.

Use these guides if you are building a custom e-commerce checkout:

- [Checkout SDK](/guides/checkout-sdk)
- [Charge Management](/guides/checkout-sdk-charge-management)
- [Checkout SDK Order Management](/guides/checkout-sdk-order-management)


Typical custom-driven behavior:

- the merchant embeds or launches the Resolve checkout flow
- Resolve returns either a `charge_id` or an `order_id` after successful authorization
- the merchant stores that identifier and manages the authorization through the appropriate model


## Post-authorization models for custom checkout

If you are using a custom Checkout SDK integration, there are two possible authorization models.

### Charge model

In the charge model:

1. Resolve returns `charge_id` after checkout success.
2. The merchant stores the `charge_id`.
3. The merchant captures or cancels the charge as needed.
4. If the charge has already been captured, refunds are handled against the resulting invoice by issuing a credit note.


Use this model when you want a simpler one-authorization flow.

Related guides:

- [Checkout SDK](/guides/checkout-sdk)
- [Charge Management](/guides/checkout-sdk-charge-management)


### Order model

In the order model:

1. Resolve returns `order_id` after checkout success.
2. The merchant stores the `order_id`.
3. The merchant can fetch, update, capture, or cancel the order before and during fulfillment.
4. If the order has been captured, refunds are handled against the resulting invoice by issuing a credit note.


Use this model when you need partial capture, multiple captures, or a richer order-management workflow.

Order management can be handled either from the Resolve dashboard or through the Merchant API.

Related guides:

- [Checkout SDK](/guides/checkout-sdk)
- [Checkout SDK Order Management](/guides/checkout-sdk-order-management)


> **Note:** To use the Checkout SDK order model, your merchant must opt in to **Checkout - Order Authorization**.


## Choosing the right guide

- If you are using Shopify, BigCommerce, Magento 2, or WooCommerce, start with your platform guide.
- If you are building a custom e-commerce checkout, start with [Checkout SDK](/guides/checkout-sdk).
- If your custom checkout success flow returns `charge_id`, use [Charge Management](/guides/checkout-sdk-charge-management).
- If your custom checkout success flow returns `order_id`, use [Checkout SDK Order Management](/guides/checkout-sdk-order-management).