Transactions
List Transactions
Returns paginated affiliate transactions for the authenticated publisher. Filter by date range, status, campaign, sub ID, or invoice number. Use updated_since to catch late validations without specifying a date range.
GET
/pub_api/v3/transactions
read:transactions
Query parameters
|
start_date
date (YYYY-MM-DD)
|
Start of transaction date range. Default: 7 days ago. |
|
end_date
date (YYYY-MM-DD)
|
End of transaction date range. Default: yesterday. |
|
status
string
|
Filter by status: pending, validated, payable, invoice_raised, paid, rejected. |
|
campaign_id
integer
|
Filter by campaign ID. |
|
sub_id
string
|
Filter by affiliate sub ID (aff_sub). |
|
invoice_number
string
|
Return only transactions billed under this invoice number (matches the invoice_number in the response and the v2 publisher_invoice_number field). Scoped to your own invoices; an unknown number returns no results. |
|
updated_since
datetime (ISO 8601)
|
Return transactions updated after this time. When provided, start_date / end_date are ignored — useful for catching late validations. |
|
sort
string
|
Sort field: transaction_date (default), updated_at, id. |
|
order
string
|
asc or desc (default). |
|
page
integer
|
Page number. Default: 1. |
|
per_page
integer
|
Results per page. Default 30, max 500. |
Response fields
FieldTypeDescription
data[].id
integer
Transaction ID.
data[].campaign_id
integer
Campaign ID.
data[].campaign_name
string
Campaign display name.
data[].campaign_type
string
Campaign type (e.g. "CPS", "CPC").
data[].transaction_date
string
Date of transaction (YYYY-MM-DD).
data[].status
string
One of:
pending, validated, payable, invoice_raised, paid, rejected.
data[].sale_amount
string
Sale amount (2 decimal places).
data[].currency
string
Currency code (e.g. "INR").
data[].user_commission
string
Publisher commission earned (2 decimal places).
data[].merchant_reference_id
string | null
Network/merchant reference ID for the transaction.
data[].order_id
string | null
Merchant order ID, if available.
data[].product_name
string | null
Product name, if available.
data[].category
string | null
Product category, if available.
data[].extra_info
string | null
Additional transaction info from the network.
data[].channel_id
integer | null
Channel ID the transaction was tracked through.
data[].channel_name
string | null
Channel name.
data[].sub_id
string | null
Affiliate sub ID (aff_sub).
data[].sub_id_2 – sub_id_5
string | null
Additional sub IDs.
data[].invoice_number
string | null
Invoice number, if payment has been invoiced.
data[].created_at
string
ISO 8601 timestamp.
data[].updated_at
string
ISO 8601 timestamp.
meta
object
Pagination:
page, per_page, total, total_pages, next_page, prev_page.
Request
curl https://developers.cuelinks.com/pub_api/v3/transactions \ -H "Authorization: Token YOUR_API_KEY" \ -G \ -d "start_date=2026-03-01" \ -d "end_date=2026-03-25" \ -d "status=validated"
200 OK
200
{ "data": [ { "id": 123456, "campaign_id": 101, "campaign_name": "Flipkart", "campaign_type": "CPS", "transaction_date": "2026-03-20", "status": "validated", "sale_amount": "1500.00", "currency": "INR", "user_commission": "67.50", "merchant_reference_id": "NW-TXN-98765", "order_id": "OD123456789", "product_name": "Samsung Galaxy S24", "category": "Electronics", "extra_info": null, "channel_id": 3424, "channel_name": "My Telegram", "sub_id": "homepage_banner", "sub_id_2": null, "sub_id_3": null, "sub_id_4": null, "sub_id_5": null, "invoice_number": null, "created_at": "2026-03-20T10:30:00Z", "updated_at": "2026-03-22T14:00:00Z" } ], "meta": { "page": 1, "per_page": 30, "total": 350, "total_pages": 12, "next_page": 2, "prev_page": null } }
Tip — updated_since
Use
Use
updated_since for incremental sync. Transactions may be validated or rejected days after the original transaction date. Polling with updated_since catches these late status changes regardless of the original date.
Prefer webhooks over polling
Instead of polling this endpoint, set up a Global Postback in your publisher dashboard to receive real-time Transaction Update notifications at your URL whenever a transaction is created or changes status. Use this API for backfills and reconciliation.
Instead of polling this endpoint, set up a Global Postback in your publisher dashboard to receive real-time Transaction Update notifications at your URL whenever a transaction is created or changes status. Use this API for backfills and reconciliation.