# Introduction

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

The Doura Payments 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

## Step 1: 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](https://doura.ca/docs/get-started/authentication.md).

## Step 2: 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](https://doura.ca/docs/payments/payment-methods.md).

## Step 3: 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](https://doura.ca/docs/payments.md).

## Step 4: 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](https://doura.ca/docs/webhooks.md).

## Step 5: Reconcile

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

See [Settlement reporting](https://doura.ca/docs/settlement-reporting/reporting.md).

## What the API supports

- **Card present** — In-person payments on Verifone T650c and T650p terminals. — [Card present](https://doura.ca/docs/payments/card-present.md)
- **Card not present** — Online payments through Hosted Payment Forms, with AVS and CVV validation. — [Card not present](https://doura.ca/docs/payments/card-not-present.md)
- **ACH bank transfers** — US bank debits, settled asynchronously over 1-5 business days. — [ACH bank transfers](https://doura.ca/docs/payments/ach.md)
- **Tokenization** — Store a card once and charge it from any channel. — [Tokenization](https://doura.ca/docs/payments/tokenization.md)
- **Account holders** — Group stored payment methods under a customer identifier. — [Account holders](https://doura.ca/docs/payments/account-holders.md)
- **Settlement reporting (beta)** — Deposits, settled transaction lines, and every fee charged. Enabled on request. — [The reporting model](https://doura.ca/docs/settlement-reporting/reporting.md)

## Support

For technical assistance, contact the support team at <support@doura.ca>.
