Reconciliation Fields
Field reference for all reconciliation API endpoints, query parameters, pagination, and response formats.
Base path: https://api.catalystpay.com/api/v1/reconciliation/
Authentication: Bearer rk_xxx (API key required for all reconciliation endpoints).
Transaction Reconciliation
GET /api/v1/reconciliation/transactions/
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start_date |
YYYY-MM-DD |
Yes | Start of date range (filters on date_processed). |
end_date |
YYYY-MM-DD |
No | End of date range. Maximum 90 days from start_date. |
status |
string |
No | Comma-separated transaction statuses (e.g., approved,declined). |
type |
string |
No | Comma-separated transaction types (e.g., sdd_sale,sdd_refund). |
payment_gateway_id |
uuid |
No | Filter by payment gateway UUID. |
format |
string |
No | Response format: json (default), xml, csv. |
page_size |
integer |
No | Results per page. Range: 1-1000. Default: 100. |
cursor |
string |
No | Opaque pagination cursor from next/previous URL. |
Response Fields
| Field | Type | Description |
|---|---|---|
id |
uuid |
Internal transaction UUID. |
adapter_unique_id |
string |
Original unique ID from payment processor. |
merchant_transaction_id |
string |
Merchant transaction ID (unique). |
transaction_id |
string |
Processor transaction ID. |
tenant_reference_id |
string (nullable) |
Merchant-owned reconciliation reference set at payment submission via /payment-sessions/{token}/pay/. Unique per tenant when provided. null for system-generated transactions (rebills, CSV imports) and for submissions that omitted the field. |
status |
string |
CatalystPay standardized status. See Status Lifecycles. |
type |
string |
CatalystPay standardized type (sdd_sale, sdd_refund, other_type). |
amount |
decimal |
Transaction amount. |
currency |
string |
Currency code. |
date_processed |
datetime |
Processing timestamp (UTC). |
iban |
string |
Masked IBAN (last 4 characters visible, rest replaced with *). |
bic |
string |
BIC/SWIFT code. |
customer_email_csv |
string |
Customer email from processor CSV. |
customer_name_csv |
string |
Customer name from processor CSV. |
mandate_reference_id |
string |
SEPA mandate reference ID. |
mandate_date |
datetime |
Mandate signing date. |
source |
string |
Creation source (csv_import, api_submission, admin_refund, webhook, hosted_page). |
order_id |
uuid |
Related order UUID. |
subscription_id |
uuid |
Related subscription UUID. |
lead_id |
uuid |
Related lead UUID. |
payment_gateway_id |
uuid |
Payment gateway UUID. |
created_at |
datetime |
Record creation timestamp. |
updated_at |
datetime |
Record last update timestamp. |
Excluded Fields
The following fields are never exposed in the reconciliation API:
raw_data, import_error, import_session, origin_adapter_status, origin_adapter_txn_type, card_holder, card_number, card_brand, adapter, adapter_id
Chargeback Reconciliation
GET /api/v1/reconciliation/chargebacks/
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start_date |
YYYY-MM-DD |
Yes | Start of date range (filters on report_date). |
end_date |
YYYY-MM-DD |
No | End of date range. Maximum 90 days from start_date. |
status |
string |
No | Comma-separated chargeback statuses (e.g., charged_back). |
type |
string |
No | Comma-separated chargeback types (e.g., chargeback). |
payment_gateway_id |
uuid |
No | Filter by payment gateway UUID. |
format |
string |
No | Response format: json (default), xml, csv. |
page_size |
integer |
No | Results per page. Range: 1-1000. Default: 100. |
cursor |
string |
No | Opaque pagination cursor from next/previous URL. |
Response Fields
| Field | Type | Description |
|---|---|---|
id |
uuid |
Internal chargeback UUID. |
adapter_unique_id |
string |
Original unique ID from payment processor. |
merchant_transaction_id |
string |
Merchant transaction ID (unique, primary dedup key). |
tenant_reference_id |
string (nullable) |
Echo of the reference set on the linked original transaction at payment submission. null when the chargeback is unlinked or when the original submission did not supply a reference. |
status |
string |
CatalystPay standardized status (charged_back). |
type |
string |
CatalystPay standardized type (chargeback). |
amount |
decimal |
Chargeback amount. |
currency |
string |
Currency code. |
report_date |
datetime |
Chargeback report date. |
transaction_date |
datetime |
Original transaction date. |
reason_code |
string |
Chargeback reason code. |
reason_message |
string |
Chargeback reason message. |
report_type |
string |
Report type. |
report_message |
string |
Report message. |
report_info |
string |
Report info. |
arn |
string |
Acquirer Reference Number. |
iban |
string |
Masked IBAN (last 4 characters visible). |
bic |
string |
BIC/SWIFT code. |
email |
string |
Customer email. |
country |
string |
Country. |
source |
string |
Creation source (csv_import, webhook, reconciliation, manual). |
cb_bank_fee |
decimal |
Bank fee charged for the chargeback (nullable). |
transaction_id |
uuid |
Linked original transaction UUID. |
lead_id |
uuid |
Related lead UUID. |
payment_gateway_id |
uuid |
Payment gateway UUID. |
created_at |
datetime |
Record creation timestamp. |
updated_at |
datetime |
Record last update timestamp. |
Excluded Fields
raw_data, import_error, import_session, origin_adapter_cb_status, origin_adapter_cb_type, adapter, adapter_id, card_holder, card_number, card_brand, remote_ip, reference_transaction_id, reference_transaction_type, order_id (internal CharField), transition, merchant, terminal
Subscription Reconciliation
GET /api/v1/reconciliation/subscriptions/
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start_date |
YYYY-MM-DD |
Yes | Start of date range (filters on created_at). |
end_date |
YYYY-MM-DD |
No | End of date range. Maximum 90 days from start_date. |
status |
string |
No | Comma-separated subscription statuses, UPPERCASE (e.g., ACTIVE,CANCELLED). |
payment_gateway_id |
uuid |
No | Filter by payment gateway UUID. |
next_billing_date_from |
YYYY-MM-DD |
No | Filter subscriptions with next_billing_date >= date. |
next_billing_date_to |
YYYY-MM-DD |
No | Filter subscriptions with next_billing_date <= date. |
format |
string |
No | Response format: json (default), xml, csv. |
page_size |
integer |
No | Results per page. Range: 1-1000. Default: 100. |
cursor |
string |
No | Opaque pagination cursor from next/previous URL. |
Response Fields
| Field | Type | Description |
|---|---|---|
id |
uuid |
Internal subscription UUID. |
status |
string |
Subscription status (UPPERCASE). See Status Lifecycles. |
billing_amount |
decimal |
Amount charged per billing cycle. |
currency |
string |
Currency code. |
billing_frequency |
string |
Billing frequency (WEEKLY, BIWEEKLY, MONTHLY, etc.). |
start_date |
datetime |
When subscription started. |
next_billing_date |
date |
Next scheduled billing date (nullable). |
last_billing_date |
datetime |
Last successful billing timestamp (nullable). |
cancelled_at |
datetime |
Cancellation timestamp (nullable). |
trial_end_date |
date |
Trial period end date (nullable). |
billing_anchor_date |
date |
Reference date for day-of-month billing alignment (nullable). |
successful_billing_count |
integer |
Number of successful rebills. |
failed_billing_count |
integer |
Number of failed rebill attempts. |
total_revenue |
decimal |
Total revenue from this subscription. |
order_id |
uuid |
Original order UUID. |
lead_id |
uuid |
Customer lead UUID. |
offer_id |
uuid |
Offer UUID (nullable in direct mode). |
payment_gateway_id |
uuid |
Payment gateway UUID. |
created_at |
datetime |
Record creation timestamp. |
updated_at |
datetime |
Record last update timestamp. |
Excluded Fields
payment_details_token, edit_history, metadata, error_reason, billing_frequency_days (deprecated)
Pagination
All reconciliation endpoints use cursor-based pagination.
Mechanics
- Cursor encodes the position using the ordering field +
idfor deterministic ordering. - Default ordering: most recent first (
-date_processedfor transactions,-report_datefor chargebacks,-created_atfor subscriptions). - Default page size: 100. Maximum page size: 1000.
Paginated Response Structure (JSON)
{
"next": "https://api.catalystpay.com/api/v1/reconciliation/transactions/?cursor=cD0yMDI0LTA...",
"previous": null,
"results": [...]
}
| Field | Type | Description |
|---|---|---|
next |
string (nullable) |
URL to the next page. null when on the last page. |
previous |
string (nullable) |
URL to the previous page. null when on the first page. |
results |
array |
Array of serialized records. |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
cursor |
string |
Opaque cursor string from next or previous URL. |
page_size |
integer |
Number of results per page (1-1000, default 100). |
Date Range Constraints
start_dateis required on all reconciliation endpoints.end_dateis optional. When provided, the range fromstart_datetoend_datemust not exceed 90 days.- Dates are inclusive:
start_datefilters from start of day UTC,end_datefilters through end of day UTC. - Date format:
YYYY-MM-DD(ISO 8601).
Output Formats
All reconciliation endpoints support three output formats via the format query parameter:
JSON (default)
Standard paginated JSON response.
XML (?format=xml)
<reconciliation>
<next>https://api.catalystpay.com/api/v1/reconciliation/transactions/?cursor=...</next>
<previous/>
<results>
<transaction>
<id>...</id>
<status>approved</status>
...
</transaction>
</results>
</reconciliation>
Root element: <reconciliation>. Item elements: <transaction>, <chargeback>, or <subscription> depending on endpoint.
CSV (?format=csv)
Returns a downloadable CSV file with a Content-Disposition header:
Content-Disposition: attachment; filename="transactions_2024-01-15.csv"
CSV columns match the serializer field order. null values render as empty strings.
See How to Reconcile Transactions for usage examples.