# About Reefpay features

## Payment processing

Reefpay supports credit card and Automated Clearing House (ACH) transactions through a single endpoint at `POST /v1/transactions`.

### Card transactions

* **Sales**: Authorize and capture in one step. Use transaction type `SALE`.
* **Authorizations**: Place a hold on funds without capturing. Use type `AUTH`, then capture later with `POST /v1/transactions/{id}/capture`.
* **Cancels**: Cancel an authorized transaction before settlement with `POST /v1/transactions/{id}/cancel`.
* **Refunds**: Return funds for a settled transaction.


### ACH transactions

* **Payments (debits)**: Pull funds from a bank account to a merchant. Use type `PAYMENT`.
* **Payouts (credits)**: Push funds from a merchant to a bank account. Use type `PAYOUT`.


## Tokenization and vaulting

Store payment credentials securely and reference them by token in future transactions. This reduces Payment Card Industry Data Security Standard (PCI-DSS) scope because your systems never need to store raw card numbers or bank account details after the initial tokenization.

* **Create tokens**: `POST /v1/payment_tokens` stores a card or bank account and returns a reusable token.
* **Use tokens**: Pass the `payment_token` value in the `payment_method` object when creating a transaction.


## Batch settlement

Transactions accumulate in batches throughout the business day. Batches settle to the merchant's bank account according to a configured schedule.

* **List batches**: `GET /v1/batches` returns batch history with transaction counts and totals.
* **Update batch status**: `PUT /v1/batches/status` allows manual batch closure.


## Transaction reporting

Query and filter transaction data for reconciliation, auditing, and analytics.

* **List transactions**: `GET /v1/transactions` supports pagination (`skip`, `take`), sorting (`sort_column`, `sort_order`), and text search (`search_text`, `term`).
* **Transaction details**: `GET /v1/transactions/{id}` returns the full record for a single transaction.


## Account management

Reefpay uses a hierarchical account model designed for resellers and merchants.

### Clients

* **Merchant accounts**: Individual businesses that process payments.
* **Reseller accounts**: Organizations that onboard and manage multiple merchants.
* Manage clients through `GET`, `POST`, `PUT`, and `DELETE` on `/v1/clients` and `/v1/clients/{id}`.


### Integrations (processor accounts)

Connect merchant accounts to payment processors like TSYS and Vericheck.

* Manage integrations through `/v1/integrations` and `/v1/integrations/{id}`.


### Persons and roles

Create and manage person accounts with role-based permissions.

* Manage persons through `/v1/users` and `/v1/users/{id}`.
* Password management via `PUT /v1/users/me/passwords`.


## Security

### Multi-factor authentication

Protect account access with challenge-based Multi-factor authentication (MFA).

* **Create challenge**: `POST /v1/mfa/challenges` sends a verification code.
* **Verify**: `POST /v1/mfa/verifications` validates the code.


### PCI-DSS compliance

Reefpay is PCI-DSS compliant, reducing the compliance burden on integrators who use tokenization and encryption features.

## Further reading

* [About Reefpay](/docs/get-started)
* [Quickstart](/docs/get-started/quickstart)
* [Supported payment methods](/docs/get-started/supported-payment-methods)
* [Supported processors](/docs/get-started/supported-processors)