Get revenue record detail
GET https://api.suger.cloud/org/{orgId}/revenue/record/{partner}/{recordId}
Return one unified revenue record in full, including its billing, cash-collection, and disbursement amounts and its lifecycle stage. A unified revenue record is a single billing event normalized across channels. Use ListUnifiedRevenueRecords to find record IDs, and GetRevenueRecordEvents for the record's provenance chain.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
orgId | path | string | yes | Organization ID |
partner | path | string | yes | Channel the record belongs to (AWS, AZURE, GCP, STRIPE, or a CRM_* source) |
recordId | path | string | yes | Unified revenue record ID, as returned by ListUnifiedRevenueRecords |
Responses
200 — OK
Content-Type: application/json · Schema: RevenueRecordInfo
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. |
401 — Missing or invalid access token, or the caller lacks the revenue read permission
Content-Type: application/json
404 — No record with this ID exists for the organization and partner
Content-Type: application/json
500 — Failed to query the record
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.