> For the complete documentation index, see [llms.txt](https://docs.omni.integratedcommerce.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.omni.integratedcommerce.io/get-started/get-started.md).

# Introduction

What the API covers, and the shape of a typical integration.

The Integrated Commerce Omni-Channel Payment API is a RESTful API that provides a unified interface for processing payments across multiple channels. This API enables developers to integrate payment processing capabilities into their applications with a single set of endpoints, simplifying implementation and reducing development time.

The API supports integration in both the United States and Canada, using USD and CAD currencies.

## The shape of an integration

{% stepper %}
{% step %}

## Get an API key

Every request is authenticated with an `x-api-key` header. Sandbox and production use the same base URL but different keys.

See [Authentication](/get-started/authentication.md).
{% endstep %}

{% step %}

## Find your payment methods

A payment method is the thing you charge against: a physical terminal, a virtual terminal (a Hosted Payment Form), or a token: a stored card or bank account. Call `GET /payment-methods` to list terminals and virtual methods; list tokens with `GET /payment-methods/account-holder/{accountHolderId}`.

See [Payment methods](/payments/payment-methods.md).
{% endstep %}

{% step %}

## Process a transaction

Choose the channel that matches how you take payments, then call the matching endpoint. Card present goes to a terminal; card not present returns a session you render in an iframe or the SDK.

See [Choosing a channel](/payments/payments.md).
{% endstep %}

{% step %}

## Receive the outcome

Configure webhook delivery to receive transaction outcomes on legacy webhooks or, by invitation, on Svix. Card-not-present flows can additionally return the result by redirect or JavaScript callback.

See [Webhooks](/webhooks/webhooks.md).
{% endstep %}

{% step %}

## Reconcile

Settlement reporting tells you what actually reached your bank account, and itemizes every fee charged against it. It is in beta and enabled on request.

See [Settlement reporting](/settlement-reporting/reporting.md).
{% endstep %}
{% endstepper %}

## What the API supports

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Card present</strong></td><td>In-person payments on Verifone T650c and T650p terminals.</td><td><a href="/payments/card-present.md">Card present</a></td></tr><tr><td><strong>Card not present</strong></td><td>Online payments through Hosted Payment Forms, with AVS and CVV validation.</td><td><a href="/payments/card-not-present.md">Card not present</a></td></tr><tr><td><strong>ACH bank transfers</strong></td><td>US bank debits, settled asynchronously over 1-5 business days.</td><td><a href="/payments/ach.md">ACH bank transfers</a></td></tr><tr><td><strong>Tokenization</strong></td><td>Store a card once and charge it from any channel.</td><td><a href="/payments/tokenization.md">Tokenization</a></td></tr><tr><td><strong>Account holders</strong></td><td>Group stored payment methods under a customer identifier.</td><td><a href="/payments/account-holders.md">Account holders</a></td></tr><tr><td><strong>Settlement reporting (beta)</strong></td><td>Deposits, settled transaction lines, and every fee charged. Enabled on request.</td><td><a href="/settlement-reporting/reporting.md">The reporting model</a></td></tr></tbody></table>

## Support

For technical assistance, contact the support team at <support@integratedcommerce.io>.
