# See every payment

> Find every payment, refund, chargeback and wallet movement on your customers' accounts, narrow the list, and export it as a CSV file.

Source: https://www.coritan.com/docs/organizations/billing/payments/

In the dashboard:

- /dashboard/organizations/…/billing/payments: https://www.coritan.com/dashboard/organizations

The **Payments** page of **Billing** lists every movement of money your organization has recorded for its customers, newest first: payments, refunds, chargebacks, and credit added to or taken from a customer's wallet. Use it to find a payment by the gateway's reference, to see what came in over a period, or to give your accountant a file of it.

## Before you begin

You need the owner, admin or billing role.

## Find a payment

1. In the [dashboard](https://www.coritan.com/dashboard/organizations), open the organization, then **Billing**, then **Payments**.
2. Type a gateway reference, an invoice ID or any part of a payment's note in the search box. The note of a payment, refund or chargeback on an invoice names the invoice's number, so the number finds those too.
3. To narrow the list, choose a type in place of **Any type**, a gateway in place of **Any gateway**, or the first and last day in **From** and **To**.
4. Select a row to open the invoice it was on. A wallet movement that was not on an invoice has no invoice to open.

The four figures above the list count the **Payments**, **Refunds**, **Chargebacks** and **Wallet credits** of the last 30 days, and under each count is what they came to in each currency they moved in. Payments, refunds and chargebacks are recorded in US dollars, the currency your payouts are worked out in. Wallet credit is recorded in the currency of the customer's wallet, except a top-up by card, which is in dollars. Amounts in different currencies are never added together, so a figure can show dollars and euros side by side. Select one to show only that type, and select it again to show every type. The search and the filters are kept in the address, so a reload or a link you share opens the list as you left it.

To see one customer's payments, open one of their [invoices](/docs/organizations/billing/invoices/), open its menu and select **This customer's payments**. Select the cross next to the customer's name to show every customer again.

## Read the list

Each row shows:

- **When** it happened, the day with the time under it.
- Its **Type**: a payment, a refund, a chargeback, a wallet credit or a wallet deduction. A wallet movement that was not on an invoice also shows the note it was recorded with.
- The **Customer**, and the **Invoice** it was on.
- The **Method**: the gateway that took it, with the gateway's reference under it. An invoice you or your staff marked paid reads "Marked paid", and money from the customer's credit reads "Wallet". On a tablet or a phone the method is left out; open the invoice to see it.
- The **Amount**. Money that left your organization, such as a refund or a chargeback, is shown in red. A payment taken in another currency shows what the customer was charged under the amount.

## Export payments

1. Narrow the list as above, by search, type, gateway, days or customer.
2. Select **Export as CSV**.

The file holds every payment the search and the filters match, not only the page on screen, oldest first, up to 20,000 rows. Each row has the payment's ID, when it happened, its type, the amount and the currency, what the customer was charged when that was in another currency, the gateway and its reference, the customer's ID and email, the invoice's ID and number, and the note. The export is recorded in the [audit log](/docs/organizations/audit-log/).

## Troubleshooting

A payment is not in the list
: Search by the gateway's reference or the invoice ID. An invoice number finds a payment only through its note, which a payment recorded with a note of its own does not carry. A payment your own PayNow store took is listed once PayNow has told Coritan about it, which needs the store's webhook ([Check the webhook](/docs/organizations/billing/paynow/#check-the-webhook)).

Selecting a row does nothing
: The row is a wallet movement that was not on an invoice.

A figure above the list shows two amounts
: The type moved in more than one currency over the 30 days, most often wallet credit added in the wallet's currency beside top-ups in dollars. Each currency is shown on its own because a sum of the two would be no amount.

## Related

- [Organization billing](/docs/organizations/billing/)
- [Manage customer invoices](/docs/organizations/billing/invoices/)
- [Decide refund requests](/docs/organizations/billing/refunds/)
- [Follow payment disputes](/docs/organizations/billing/disputes/)

## With the API

List the payments, newest first. `type` takes `payment`, `refund`, `chargeback`, `credit_add` or `credit_deduct`; `gateway`, `customer_id`, `since` and `until` (days, both included) narrow the list, `q` searches the gateway reference and the note, and an ID or an invoice ID when it is a number. `limit` (50 by default, at most 200) and `offset` page it.

```bash
curl "https://api.coritan.com/api/v1/orgs/acme/staff/transactions?type=refund&since=2026-09-01" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

The answer is a list. Each entry has `id`, `created_at`, `transaction_type`, `amount` and `currency`, `charge_amount` and `charge_currency`, `gateway`, `gateway_reference`, `description`, `customer_id`, `customer` (`id`, `email` and `name`), `invoice_id` and `invoice_number`. An unknown `type` answers `400`.

`GET /api/v1/orgs/acme/staff/transactions/stats` counts each type over the last `days` (30 by default, at most 365) and adds up its amounts in each currency apart, as `{days, by_type, currencies}`. Each `by_type` entry is `{count, total, currency, by_currency}`: `by_currency` holds the count and the total for every currency the type moved in, and `total` with `currency` is that one figure when there was a single currency. Both are `null` when there were several, and a type with no rows has a `total` of `"0"` and no `currency`. `currencies` lists every currency in the window. Every type is in `by_type`; this answer shows one of them:

```json
{
  "days": 30,
  "by_type": {
    "credit_add": {
      "count": 3,
      "total": null,
      "currency": null,
      "by_currency": {
        "EUR": {"count": 2, "total": "123.7800"},
        "USD": {"count": 1, "total": "43.2000"}
      }
    }
  },
  "currencies": ["EUR", "USD"]
}
```

`GET /api/v1/orgs/acme/staff/transactions/export.csv` downloads the CSV file for the same `type`, `gateway`, `customer_id`, `q`, `since` and `until` as the list.

## API

- `GET /api/v1/orgs/{org_slug}/staff/transactions`: Every payment, refund and wallet movement the brand has recorded (https://www.coritan.com/docs/api/reference/organizations/org-staff-billing/#op-get-api-v1-orgs-org-slug-staff-transactions)
- `GET /api/v1/orgs/{org_slug}/staff/transactions/export.csv`: Staff transactions export (https://www.coritan.com/docs/api/reference/organizations/org-staff-billing/#op-get-api-v1-orgs-org-slug-staff-transactions-export-csv)
- `GET /api/v1/orgs/{org_slug}/staff/transactions/stats`: Counts and totals per type over the last days, for the strip above the list (https://www.coritan.com/docs/api/reference/organizations/org-staff-billing/#op-get-api-v1-orgs-org-slug-staff-transactions-stats)
