Hi ,
We are running into a delegated billing issue and would appreciate guidance on the supported approach.
Parent–child account hierarchy
Child subscription renewal generates a child invoice (₹1,899)
Parent receives a summary invoice and pays successfully (externalPayment=true)
Payment shows SUCCESS for the parent invoice
After the parent payment succeeds:
The child invoice remains OPEN with a balance
The child account balance is non-zero
Kill Bill repeatedly attempts to pay the child invoice, resulting in ABORTED payments
Credits (CBA / CREDIT_ADJ) do not close the child invoice
From what we understand, this is expected because:
Parent payments do not automatically reconcile child invoices
Invoices are closed only by payments or ITEM_ADJ linked to invoice items
Our current Java client version does not expose ITEM_ADJ APIs
CREDIT_ADJ / account credits do not settle invoices
We want to avoid directly charging the child (delegation rules)
What is the recommended / supported way to close a child invoice in delegated billing when:
The parent has already paid successfully
No additional money should be charged
The child invoice must transition to PAID
Specifically:
Is issuing a $0 external payment on the child invoice the correct approach?
Or is there a preferred REST API for creating ITEM_ADJ that we should be using instead?
Any guidance on the correct pattern would be very helpful.
*********** 210. row ***************************
record_id: 210
id: 195520e3-5cbd-4ee5-b1ea-76ca54f5a793
account_id: 73470a6b-d170-42ab-b272-90a85153e258
payment_method_id: NULL
payment_external_key: 3ab8faed-94dc-4932-ba2c-8e50bb4821a8
transaction_id: NULL
transaction_external_key: cbc61144-2db5-43c3-b947-937a3ae78296
transaction_type: PURCHASE
state_name: ABORTED
amount: NULL
currency: INR
plugin_name: __INVOICE_PAYMENT_CONTROL_PLUGIN__
plugin_properties: ZV <[{"IPCD_INVOICE_ID":"c27397c3-2dae-4f15-8bc6-64a199c58759"}]
created_by: PaymentRequestProcessor
created_date: 2025-12-20 21:53:31
updated_by: PaymentRequestProcessor
updated_date: 2025-12-20 21:53:31
account_record_id: 112
tenant_record_id: 1
*************************** 211. row ***************************
record_id: 211
id: 202b9074-51d2-4e66-91b0-2c088fc139b4
account_id: dcd871e9-be19-465c-bba0-492f3c90f4c5
payment_method_id: 829f18bd-19cd-4802-8549-3402015dd6b1
payment_external_key: 697af8b0-6341-43cd-a9b5-1698d52d6005
transaction_id: 68889f5a-60e1-4bec-bbce-e7ab7b412da5
transaction_external_key: 68889f5a-60e1-4bec-bbce-e7ab7b412da5
transaction_type: PURCHASE
state_name: SUCCESS
amount: 3898.000000000
currency: INR
plugin_name: __INVOICE_PAYMENT_CONTROL_PLUGIN__
plugin_properties: ZV <[{"IPCD_INVOICE_ID":"51a4db5f-79c1-4dd0-8f5d-d99f41fb8488"}]
created_by: PaymentRequestProcessor
created_date: 2025-12-20 21:53:32
updated_by: PaymentRequestProcessor
updated_date: 2025-12-20 21:53:32
account_record_id: 111
tenant_record_id: 1
211 rows in set (0.884 sec)
Thanks in advance,
Harish
Subject: Re: Evergreen subscription auto-renewal with delegated billing – clarification
Hi Karan,
Thanks for the clarification on delegated billing and child invoice settlement — that part is now clear and aligned.
I wanted to confirm one remaining point specifically around evergreen renewal behavior.
In our setup (fixed 1-year phase followed by evergreen), we are observing that if the subscription remains ACTIVE on the expiry day (daysToExpire = 0), Kill Bill automatically:
transitions into the evergreen phase
generates the next invoice
even when no explicit renewal or payment action is taken by the user
We understand that
AUTO_PAY_OFFonly affects payment attempts and does not influence entitlement renewal.Could you please confirm:
That for evergreen plans, auto-renewal is expected as long as the subscription is ACTIVE, regardless of payment or overdue state.
That there is no native Kill Bill mechanism (tag / overdue / config) to block evergreen auto-renewal at expiry, including for delegated (child) accounts.
That explicit cancellation at expiry is the intended and supported way to prevent evergreen auto-renewal.
Our current approach is to cancel the subscription externally at expiry (day 0) and allow manual renewal via uncancel + payment, and we want to ensure this aligns with Kill Bill’s intended design.
Thanks again for your guidance.
Best regards,
Harish