Revenue report not showing custom transaction attribute

Hi community,

I’m running Apigee Monetization (Private Cloud) and running into an issue where a custom transaction attribute isn’t showing up in Revenue reports.

  • Product config: product has customAtt1Name = "X-CUSTOM".

  • Rate plan config: uses ratingParameter = "X-CUSTOM".

  • Transaction Recording Policy (TRP): set to capture request header X-CUSTOM as a transaction custom attribute.

  • DB check: I can confirm in Postgres (rkms.transactions) that cust_att1 = 10.0 is recorded for the transaction.

  • Org config:

    <Property name="MINT.SUMMARY_CUSTOM_ATTRIBUTES">["X-CUSTOM"]</Property>
    
    
  • Report request:

    "transactionCustomAttributes": ["X-CUSTOM"],
    "fromDate": "2025-09-02",
    "toDate": "2025-09-03",
    "transactionTypes": ["CHARGE"],
    "groupBy": ["DEVELOPER","PACKAGE","RATEPLAN","PRODUCT"],
    "showSummary": true
    
    

Even with the attribute present in the DB (cust_att1), and listed in the org properties + report payload, the Revenue report output doesn’t include X-CUSTOM.

Has anyone seen this mismatch? Do I need an additional configuration step (e.g., service restart or schema update) to make custom attributes from TRP (cust_att1) appear in Revenue report summaries?

Thanks in advance!

Hi,

There are a number of steps to configuring this. I’m not positive on which step may need a revision. In looking at the information provided… I do see that the Product’s custom attribute may be incorrectly named. For each custom attribute that you add to an API product, you need to specify a name and an attribute value. The name must be in the form MINT_CUSTOM_ATTRIBUTE_{num}, where {num} is an integer. See: https://docs.apigee.com/api-platform/monetization/create-transaction-recording-policy#spectrpcaapi

Cheers,

Dear @paul-wright ,
Thanks for the reply,
I have tried New Product and New Rate Plan with
CUSTOM ATTRIBUTE NAME : MINT_CUSTOM_ATTRIBUTE_1
and subscribed this new plan with New Developer and consumed api 6 times and Custom attribute values are recorded in Tables of apigee ,
but when try to retireve it is by revenue report its empty,
i will add my below Like Productr, Rate plan and Revenue report request.

Revenue Report Request:
URL : <EDGE_MGMT_IP>/v1/mint/organizations/:org/revenue-reports
{
“fromDate”: “2025-09-03”,
“toDate”: “2025-09-04”,
“groupBy”: [
“DEVELOPER”,
“PACKAGE”,
“RATEPLAN”,
“PRODUCT”
],
“transactionTypes”: [
“CHARGE”
],
“transactionCustomAttributes”: [
“MINT_CUSTOM_ATTRIBUTE_1”
],
“devCustomAttributes”: [
“is_company”,
“c_billing_type”
],
“currencyOption”: “LOCAL”,
“showSummary”: true
}

Resposne From Revenue Report:
Reporting Period:,From:,2025-09-03, To:,2025-09-03
API Product:,All
Developer:,All
Application:,All
Currency:,Local
Type of Report:,Summary Revenue Report

Developer Name,Developer ID,Monetization Package,Package ID,Rate Plan,Plan ID,API Product,Product ID,Currency,Transaction Type,Provider Status,Total Volume,Charged Rate,Tax on Rate,is_company,c_billing_type,Developer Email,
calc_bundle_cmp,calculator_trp_company,Calculator-TRP,calculator-trp-leax,calculator-trp-plan,calculator-trp-leax_calculator-trp-plan,CalcuatorTRP,calcuatortrp,SAR,CHARGE,OK,6,60.0000,true,POSTPAID,mof###calculator_trp_company@APIGEE-GEN.FOR-COMPANY,

Product Tranasaction Config :

Attribute Resources Location Value
Status /add
/sub** Response: Flow Variable

Transaction Success Criteria txProviderStatus == ‘OK’

Custom Attributes

Name Resources Location Value
MINT_CUSTOM_ATTRIBUTE_1 /add** /sub** Response: Header

Hi,

OK great.

Have the attributes been enabled for the Organization? See: https://docs.apigee.com/api-platform/monetization/create-reports#customattributes

Cheers,

Dear @paul-wright ,

Its already enabled even before testing with new rate plans and product creation, But still not works, if u have any comments let me know ,
thanks again for your reply.

<CreatedAt>1601386755337</CreatedAt>

<CreatedBy>testtest.com</CreatedBy>

<DisplayName>org</DisplayName>

<Environments>

    <Environment>test</Environment>

    <Environment>dev</Environment>

    <Environment>sandbox-dev</Environment>

</Environments>

<LastModifiedAt>1756889031906</LastModifiedAt>

<LastModifiedBy>test@tetst.com</LastModifiedBy>

<Properties>

    <Property name="features.isMonetizationEnabled">true</Property>

    <Property name="MINT.SUMMARY_CUSTOM_ATTRIBUTES">\["MINT_CUSTOM_ATTRIBUTE_1","MINT_CUSTOM_ATTRIBUTE_2"\]</Property>

</Properties>

Hi,

My apologies for not being able to test this out to give exact advice. However, I think I see where things are going sideways. Custom attributes actually have what you could call two names… maybe call the first the “title” and the second it’s “name”.

The Titles are: Custom Attribute 1, Custom Attribute 2, etc, up to Custom Attribute 10. These “titles” cannot be changed. And in the system internals they should up as MINT_CUSTOM_ATTRIBUTE_N. They represent the placeholders for the up to 10 custom attributes available.

Each custom attribute must also be “named”. These names will represent the business value of the data stored in the attribute. In the documentation examples, these “names” are: partner_id and tax_source. In some calls the Title is needed. In others the Name is needed.

So for instance, in the Org configuration… the Names are used. You can see that in the example here: https://docs.apigee.com/api-platform/monetization/create-reports#customattributes

When calling the report, you can see the Names are used as well: https://docs.apigee.com/api-platform/monetization/create-reports#repdevcustatt

However some of the management APIs use the Title: https://docs.apigee.com/api-platform/monetization/create-transaction-recording-policy#spectrpcaapi

Given this background. Please try running through the configurations and checking for name and title alignments. I think this will get you sorted out.