R2 Developers
R2 Connect API

Payments

Charges with their method, provider and exact timing. The basis of accounting reconciliation.

GET/paymentsrequires read:payments

Every payment points to the order it settles. A single amount may arrive in several payments (deposit and balance) and through different methods.

Parameters#

ParameterTypeDescription
limitintegerResults per page. Between 1 and 50. Default: 25.
cursorstringCursor for the next page, taken from pagination.cursor.
created_fromdateStart date, format YYYY-MM-DD (UTC) or epoch milliseconds.
created_todateEnd date, inclusive. Same format.
statusstringFilter by exact status.

Fields#

FieldTypeDescription
order_idstringOrder this payment settles.
order_numberstringVisible number of that order, to cross-reference with your system.
amountnumberPayment amount.
currencystringCurrency in ISO 4217 format.
statusstringPayment status.
methodstringcard, cash, transfer, loyalty_points or other.
payment_typestringfull, partial, deferred, cash or preauth.
providerstringProcessor that executed the charge, if electronic.
external_idstringProcessor reference, to reconcile against their statement.
succeeded_atdatetimeWhen the charge was confirmed. This is the accounting date.

Count only what was collected

To total real income use only payments whose status is succeeded or captured. Other statuses represent attempts, uncaptured authorizations or reversals.

Example#

bash
curl -H "Authorization: Bearer TU_LLAVE" \
  "https://api.r2-os.com/api/connect/v1/payments?created_from=2026-07-01&status=succeeded"
json
{
  "data": [
    {
      "id": "n47dk3mzq81ba5tv",
      "order_id": "p97cbaneya88az5ra",
      "order_number": "ORD-MRNCRMX2-3BAW",
      "amount": 2088,
      "currency": "MXN",
      "status": "succeeded",
      "method": "card",
      "payment_type": "full",
      "provider": "stripe",
      "external_id": "pi_3Qx…",
      "created_at": "2026-07-16T10:20:11.402Z",
      "succeeded_at": "2026-07-16T10:20:14.907Z"
    }
  ],
  "pagination": { "cursor": null, "has_more": false }
}