list revenue records
GET https://api.suger.cloud/org/{orgId}/partner/{partner}/revenueRecord
list the revenue records for the given organization, product, entitlement, or buyer.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
orgId | path | string | yes | Organization ID |
partner | path | string | yes | Cloud Partner |
productId | query | string | no | Filter revenue records by the given product ID |
entitlementId | query | string | no | Filter revenue records by the given entitlement ID |
buyerId | query | string | no | Filter revenue records by the given buyer ID |
startDate | query | string | no | start date (UTC) in YYYY-MM-DD format, default is 30 days before the endDate |
endDate | query | string | no | end date (UTC) in YYYY-MM-DD format, default is today |
limit | query | integer | no | List pagination size, default 1000, max value is 1000 |
offset | query | integer | no | List pagination offset, default 0 |
Responses
200 — OK
Content-Type: application/json · Schema: ListRevenueRecordsResponse
ListRevenueRecordsResponse fields:
| Field | Type | Required | Description |
|---|---|---|---|
nextOffset | integer | no | |
revenueRecords | array<RevenueRecord> | no | list of revenue records. |
RevenueRecord fields:
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | no | The revenue amount for the revenue report |
awsTaxAmount | number | no | AwsTaxAmount is buyer tax collected and remitted by AWS. AWS classifies an AWS_TAX_SHARE row as buyer tax when buyer_transaction_reference_id equals transaction_reference_id. It is informational to the seller and does not affect the seller balance; tax on AWS's listing-fee seller invoice belongs to ChannelFeeAmount instead. |
buyerID | string | no | |
channelFeeAmount | number | no | ChannelFeeAmount is the marketplace commission/fee for this record per F16 / data-model.md. Nullable pointer so partner handlers can leave it unset (post-sync normalization respects nil and skips the URR write, preserving any previous value). Azure derives = RevenueUsd − EarningUsd; AWS derives = -SUM(AWS_REV_SHARE + AWS_TAX_SHARE rows classified by AWS as seller/listing-fee invoices) per invoice relationship; buyer tax is stored separately in TaxAmount. GCP derives = charges − prepay credits − due vendor. |
collectableAmount | number | no | The revenue amount that the seller/ISV can collect. |
collectedAmount | number | no | |
collectedDate | string | no | |
currency | string | no | The currency of the revenue in ISO 4217 format, such as "USD". |
date | string | no | The date for the revenue report |
disburseAmount | number | no | |
disburseDate | string | no | |
entitlementID | string | no | |
id | string | no | |
info | RevenueRecordInfo | no | |
invoiceAmount | number | no | |
invoiceDate | string | no | |
organizationID | string | no | |
partner | string | no | The value is from type Partner string |
paymentDueDate | string | no | |
paymentStatus | string | no | |
productID | string | no | |
refundDisburseAmount | number | no | |
refundDisburseDate | string | no | |
refundInvoiceAmount | number | no | |
refundInvoiceDate | string | no | |
refundStatus | string | no | |
sellerTaxAmount | number | no | SellerTaxAmount is tax collected by the marketplace and disbursed to the seller, who is responsible for remitting it. |
taxAmount | number | no |
RevenueRecordInfo fields:
| Field | Type | Required | Description |
|---|---|---|---|
awsRevenueRecords | array<AwsBillingEvent> | no | For raw revenue records in AWS Marketplace |
azureRevenueRecords | array<AzureCmaRevenue> | no | For raw revenue records in Azure Marketplace |
bankTraceId | string | no | The bank trace ID of the revenue record if applicable |
billingModel | RevenueBillingModel | no | |
cancellationEffectiveDate | string | no | CancellationEffectiveDate is the date a subscription was actually terminated (ISO 8601 date or date-time string). Used by the analytics waterfall churn rule (F30) to distinguish records that were active at a measurement date but later canceled — those still count toward starting ARR and contribute to churn. Empty string means no explicit cancellation date; downstream code falls back to recognition_trigger_date when payment_status=CANCELED. |
channel | RevenueChannel | no | |
chargebeeInvoiceId | string | no | The Chargebee invoice ID for this revenue record if synced to Chargebee |
chargebeePaymentTransactionId | string | no | The Chargebee payment transaction ID for this revenue record if a payment was recorded in Chargebee |
chargebeeRefundTransactionId | string | no | The Chargebee refund transaction ID for this revenue record if a refund was recorded in Chargebee |
createNotificationDigestId | string | no | Stable audited identity for the CREATE digest batch. It survives activity retries so a successful enqueue followed by an acknowledgement failure is deduplicated on replay. |
createNotificationDigestPending | boolean | no | Whether this record still needs to be included in the human-channel CREATE digest after its invoice projection has completed successfully. |
createNotificationPending | boolean | no | Whether the per-record CREATE notification still needs to be delivered. Persisting this with the revenue row makes notification delivery retryable after a partially-completed sync. |
creditAmount | number | no | The credit amount used in the revenue record. |
crmDealName | string | no | Human-readable CRM deal/opportunity name for unbilled queue display. |
crmOpportunityId | string | no | Native CRM opportunity/deal identifier used for idempotent booking upsert and later cancellation/invoice matching. |
crmPartner | string | no | CRM source that produced a booking-stage revenue record. V1 CRM inbound stores booking facts here because billing.revenue_record remains the canonical lifecycle record and no separate CRM booking table exists. |
crmStage | string | no | Native CRM stage at the time Suger last polled the deal. |
dealNotInvoicedAlertedAt | string | no | DealNotInvoicedAlertedAt is the RFC3339 timestamp of the last fired DEAL_NOT_INVOICED alert for this record (D07 durable dedup). Prevents the alert from re-firing daily for the same long-unbilled deal — the alert fires once, then suppressed until manually cleared. |
disbursementBillingEventId | string | no | The disbursement ID of the revenue record if applicable |
disbursementNotificationSent | boolean | no | Whether the disbursement notification has been sent to the seller/ISV. |
disbursementReferenceNumber | string | no | The disbursement reference number generated by AWS upon creating each disbursement request. It can be used to correlate seller bank-provided deposit notifications and reports to invoices in AWS Marketplace reports. |
dismissReason | string | no | DismissReason is the free-text reason recorded on manual dismiss (D03). |
dismissedBy | string | no | DismissedBy is the user ID that performed the manual dismiss (D03 audit). |
dismissedFromQueueAt | string | no | DismissedFromQueueAt is the RFC3339 timestamp at which a CRM booking record was manually removed from the unbilled queue (D03). Only valid for direct/Stripe deals with no linked marketplace offer in ACCEPTED state; the dismiss handler rejects marketplace-accepted deals because those can only exit via auto-removal on entitlement provisioning (F27). |
earningId | string | no | The earning ID of the revenue record if applicable |
gcpRevenueRecords | array<GcpChargeUsage> | no | For raw revenue records in GCP Marketplace |
idSource | string | no | Source of the revenue record ID. |
invoiceId | string | no | The invoice ID of the revenue record if applicable |
paymentId | string | no | The payment ID of the revenue record if applicable |
prepayCreditAmount | number | no | The prepay credit amount drawn down on this revenue record. Applicable only to GCP Marketplace. Sourced from the "Prepay Credits" column of the GCP Charges and Usage V2 report. |
queueAutoRemovedAt | string | no | QueueAutoRemovedAt is the RFC3339 timestamp at which the unbilled queue reconciliation removed a marketplace CRM booking because its linked offer was provisioned into an active entitlement (F27 auto-removal). Distinct from DismissedFromQueueAt so the audit trail differentiates manual finance action from automatic system reconciliation. |
relatedEntitlementIDs | array<string> | no | RelatedEntitlementIDs is populated on aggregated invoice projections when one provider invoice contains revenue relationships for multiple contracts. |
resellerId | string | no | The reseller ID of the revenue record if applicable |
resellerName | string | no | The reseller name of the revenue record if application |
resource | string | no | Resource name for the revenue record. Applicable only to GCP Marketplace. |
usagePeriodEndDate | string | no | The end of the usage period covered by this revenue record, if applicable. |
usagePeriodStartDate | string | no | The start of the usage period covered by this revenue record, if applicable. |
AwsBillingEvent fields:
| Field | Type | Required | Description |
|---|---|---|---|
action | string | no | |
actionDate | NullableTime | no | |
agreementID | string | no | |
amount | number | no | |
balanceImpacting | integer | no | |
bankTraceID | string | no | |
billingAddressID | string | no | |
brokerID | string | no | |
buyerID | string | no | |
buyerTransactionReferenceID | string | no | |
currency | string | no | |
dataFeedProductID | string | no | |
disbursementBillingEventID | string | no | |
disbursementReferenceNumber | string | no | |
endUserAccountID | string | no | |
entitlementID | string | no | |
fromAccountID | string | no | |
id | string | no | |
insertDate | NullableTime | no | |
invoiceDate | NullableTime | no | |
invoiceID | string | no | |
offerID | string | no | |
organizationID | string | no | |
parentBillingEventID | string | no | |
paymentDueDate | NullableTime | no | |
productID | string | no | |
refundedBuyerTransactionReferenceID | string | no | |
toAccountID | string | no | |
transactionReferenceID | string | no | |
transactionType | string | no | |
usagePeriodEndDate | NullableTime | no | |
usagePeriodStartDate | NullableTime | no |
AzureCmaRevenue fields:
| Field | Type | Required | Description |
|---|---|---|---|
azureAssetID | string | no | |
azureBillingAccountID | string | no | |
azureCustomerID | string | no | |
azureOfferID | string | no | |
azurePlanID | string | no | |
billingModel | string | no | |
buyerID | string | no | |
earningID | string | no | |
earningUsd | number | no | |
entitlementID | string | no | |
estimatedPayoutMonth | NullableTime | no | |
invoiceDate | NullableTime | no | |
invoiceDueDate | NullableTime | no | |
invoiceID | string | no | |
offerID | string | no | |
organizationID | string | no | |
paymentID | string | no | |
paymentSentDate | NullableTime | no | |
paymentStatus | string | no | |
payoutStatus | string | no | |
productID | string | no | |
programName | string | no | |
purchaseRecordID | string | no | |
resellerCity | string | no | |
resellerCompany | string | no | |
resellerCountry | string | no | |
resellerEmail | string | no | |
resellerID | string | no | |
resellerState | string | no | |
revenueUsd | number | no | |
termEndDate | string | no | |
termStartDate | string | no | |
transactionDate | NullableTime | no |
GcpChargeUsage fields:
| Field | Type | Required | Description |
|---|---|---|---|
abandoned | number | no | |
accountID | string | no | |
buyerID | string | no | |
charges | number | no | |
currency | string | no | |
dueVendor | number | no | |
entitlementID | string | no | |
googleEntity | string | no | |
insightAccountID | string | no | |
offerID | string | no | |
ordinal | integer | no | |
organizationID | string | no | |
paymentSchedule | string | no | |
paymentType | string | no | |
prepayCredits | number | no | |
productID | string | no | |
refundBalanceDeductedThisMonth | number | no | |
refundBalanceOutstanding | number | no | |
refundReason | string | no | |
released | number | no | |
reportDate | string | no | |
resource | string | no | |
sku | string | no | |
trialUse | number | no | |
unit | string | no | |
usage | number | no | |
usedBy | string | no | |
withheld | number | no |
NullableTime fields:
| Field | Type | Required | Description |
|---|---|---|---|
Time | string | no | |
Valid | boolean | no | Valid is true if Time is not NULL. |
400 — Bad request error
Content-Type: application/json
500 — Internal server error
Content-Type: application/json
View as Markdown · Interactive API reference
Spotted something wrong or out of date on this page? Tell us and we'll correct it.