List Transactions by Creator
Returns the payments and free registrations recorded against your products. Use it to reconcile revenue, refunds, tax and customer records in your own systems.
An empty body returns page 1 with 25 transactions, every status, every Mango, every currency, and no date restriction. Abandoned checkouts are never returned, under any combination of filters. Transactions are ordered by occurredAt descending — the completion time, or the creation time for transactions that never completed. Ordering among transactions sharing the same occurredAt is not guaranteed, so de-duplicate on id when walking pages. A page beyond the last returns an empty data array while total still reports every match.
The response uses the standard pagination fields: data, total, page, limit, and hasNext. Within each transaction, payment holds customer-side amounts in the customer's currency, while commission, refund, affiliate, and noCostEmi hold creator-side amounts in the top-level reportingCurrency.
Filter rules:
startDateandendDateare inclusive and must be supplied together, no more than 366 days apart. Omit both to search every transaction.freeRegistrationsOnlynarrows to zero-cost registrations, which can only be filtered further bystartDate/endDate,mangoes, andpaymentCycle. Nothing about payment applies to them, soupsellOnly,couponCodes,customerCurrency,status, andcustomerSearchare rejected rather than silently ignored.- A recurring
paymentCycleselects your Mangoes on that cycle. Sent together withmangoes, the two intersect rather than one replacing the other. - Omitting
couponCodesincludes every transaction except those redeemed with an internally generated coupon.
Every creator-side money figure is expressed in the reportingCurrency you request, which defaults to the currency configured on your account and is echoed in the response.
This POST performs a read and is safe to retry. Malformed fields return the standard validation 400; contradictory combinations return TRANSACTION_INVALID_REQUEST.
Authorization
bearer In: header
Header Parameters
Host name of the dashboard, ex: mydomain.tagmango.com
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api-prod-new.tagmango.com/api/v1/external/transactions" \ -H "x-whitelabel-host: string" \ -H "Content-Type: application/json" \ -d '{}'{
"total": 100,
"data": [
{
"id": "66f3a1c4d9f135a7b2c3d4e5",
"occurredAt": "2026-08-24T11:02:41.517Z",
"status": "completed",
"quantity": 1,
"couponCode": "SUMMER20",
"customer": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"email": "john.doe@example.com",
"phone": 1234567890,
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg",
"country": "India"
},
"mango": {
"_id": "66a1390268a76f2f5c9f39a3",
"title": "Introduction to Coding"
},
"linkedMangoes": [
{
"_id": "66a1390268a76f2f5c9f39a3",
"title": "Introduction to Coding"
}
],
"payment": {
"type": "onetime",
"chargedAmount": 4999,
"currency": "INR",
"discountAmount": 0,
"gstAmount": 762.56,
"subtotalBeforeDiscount": 4236.44
},
"commission": {
"totalAmountIncludingGst": 499.9,
"reportedGstAmount": 89.98
},
"refund": {
"amount": 0,
"amountByCurrency": {
"inrAmount": 4999,
"usdAmount": 60,
"eurAmount": 55
},
"status": "completed",
"isPartial": false,
"retrievalReferenceNumber": "203945873421",
"initiatedAt": "2026-08-14T09:02:11.000Z"
},
"invoices": {
"customer": {
"url": "https://invoices.tagmango.com/10482.pdf",
"number": 10482
},
"commission": {
"url": "https://invoices.tagmango.com/10482.pdf",
"number": 10482
}
},
"affiliate": {
"commissionAmount": 250,
"withdrawalStatus": "pending",
"withdrawalDate": "2026-09-01T00:00:00.000Z"
},
"noCostEmi": {
"absorbedInterestAmount": 180,
"absorbedInterestByCurrency": {
"inrAmount": 4999,
"usdAmount": 60,
"eurAmount": 55
}
},
"priceBreakdown": [
{
"mangoId": "66c8f2a4b7d913e5f0a1b2d4",
"mango": {
"_id": "66a1390268a76f2f5c9f39a3",
"title": "Introduction to Coding"
},
"inrAmount": 4999,
"usdAmount": 60,
"eurAmount": 55
}
],
"upsells": [
{
"mangoId": "66c8f2a4b7d913e5f0a1b2d4",
"mango": {
"_id": "66a1390268a76f2f5c9f39a3",
"title": "Introduction to Coding"
},
"inrAmount": 4999,
"usdAmount": 60,
"eurAmount": 55
}
],
"customFields": {
"Company name": "Acme Pvt Ltd",
"Team size": "25"
}
}
],
"page": 1,
"limit": 10,
"hasNext": true,
"reportingCurrency": "INR"
}{
"code": 400,
"type": "Bad Request",
"statusMessage": "BAD_REQUEST",
"errorCode": "TRANSACTION_INVALID_REQUEST",
"message": "Check the request body for a contradictory filter combination: supply startDate and endDate together with startDate no later than endDate and a span within the allowed window, and combine freeRegistrationsOnly only with startDate/endDate, mangoIds, and paymentCycle.",
"result": "Check the request body for a contradictory filter combination: supply startDate and endDate together with startDate no later than endDate and a span within the allowed window, and combine freeRegistrationsOnly only with startDate/endDate, mangoIds, and paymentCycle.",
"success": false
}{
"code": 401,
"type": "Unauthorized",
"statusMessage": "UNAUTHORIZED",
"message": "Invalid token",
"result": "Invalid token",
"success": false
}{
"code": 403,
"type": "Forbidden",
"statusMessage": "FORBIDDEN",
"errorCode": "WORKSHOP_MANGO_FORBIDDEN",
"message": "You can not access this api with a TagMango account, only available for whitelabel hosts",
"result": "You can not access this api with a TagMango account, only available for whitelabel hosts",
"success": false
}{
"code": 404,
"type": "Not Found",
"statusMessage": "NOT_FOUND",
"errorCode": "TRANSACTION_HOST_NOT_FOUND",
"message": "We could not resolve a creator for the authenticated host.",
"result": "We could not resolve a creator for the authenticated host.",
"success": false
}{
"code": 429,
"type": "Too Many Requests",
"statusMessage": "TOO_MANY_REQUESTS",
"message": "Request limit exceeded. try after 10 seconds",
"result": "Request limit exceeded. try after 10 seconds",
"success": false
}{
"code": 500,
"type": "UnknownError",
"statusMessage": "INTERNAL_SERVER_ERROR",
"errorCode": "TRANSACTION_LIST_FAILED",
"message": "We could not load the transactions. Please try again later.",
"result": "We could not load the transactions. Please try again later.",
"success": false
}