PostGA: include Caution account ID on billing invoices #387

Open
opened 2026-07-18 21:57:54 +00:00 by caution-bot · 0 comments
caution-bot commented 2026-07-18 21:57:54 +00:00 (Migrated from codeberg.org)

Summary

Carry forward the remaining bonus scope from #164 after the main GA surfaces were completed: include the Caution account/organization ID on billing invoices or invoice-adjacent billing records.

The main #164 requirements are already covered on main by PR #371:

  • dashboard account settings display the account ID with copy support;
  • CLI exposes caution account id.

This follow-up is intentionally PostGA because invoice/provider integration is billing-specific polish rather than a blocker for users finding their account ID in the product or CLI.

Desired behavior

When Caution creates billing-provider transactions/invoices, include the Caution account ID (organization_id) in a place that is visible and useful for support/account reconciliation, while staying compatible with Paddle/provider constraints.

Possible implementation areas:

  • Paddle transaction/custom data and invoice/customer metadata;
  • dashboard invoice display/download links, if provider-hosted invoices cannot render custom metadata directly;
  • billing support docs explaining where to find the account ID.

Acceptance criteria

  • New invoices or invoice-equivalent Paddle billing records carry the Caution account/organization ID in provider metadata or another support-visible field.
  • If Paddle cannot display custom metadata directly on hosted invoices, the dashboard billing UI shows a clear account-ID-to-invoice association and the issue documents that constraint.
  • Existing checkout intent and webhook verification remain fail-closed; do not trust invoice metadata for authorization or credit/subscription fulfillment.
  • Tests cover the Paddle transaction payload or invoice metadata path without requiring live production Paddle credentials.
  • No bearer tokens, payment secrets, raw provider payloads, or customer-sensitive invoice contents are logged.
  • Split from #164.
  • PR #371 completed the GA-visible dashboard and CLI account-ID work.
## Summary Carry forward the remaining bonus scope from #164 after the main GA surfaces were completed: include the Caution account/organization ID on billing invoices or invoice-adjacent billing records. The main #164 requirements are already covered on `main` by PR #371: - dashboard account settings display the account ID with copy support; - CLI exposes `caution account id`. This follow-up is intentionally PostGA because invoice/provider integration is billing-specific polish rather than a blocker for users finding their account ID in the product or CLI. ## Desired behavior When Caution creates billing-provider transactions/invoices, include the Caution account ID (`organization_id`) in a place that is visible and useful for support/account reconciliation, while staying compatible with Paddle/provider constraints. Possible implementation areas: - Paddle transaction/custom data and invoice/customer metadata; - dashboard invoice display/download links, if provider-hosted invoices cannot render custom metadata directly; - billing support docs explaining where to find the account ID. ## Acceptance criteria - New invoices or invoice-equivalent Paddle billing records carry the Caution account/organization ID in provider metadata or another support-visible field. - If Paddle cannot display custom metadata directly on hosted invoices, the dashboard billing UI shows a clear account-ID-to-invoice association and the issue documents that constraint. - Existing checkout intent and webhook verification remain fail-closed; do not trust invoice metadata for authorization or credit/subscription fulfillment. - Tests cover the Paddle transaction payload or invoice metadata path without requiring live production Paddle credentials. - No bearer tokens, payment secrets, raw provider payloads, or customer-sensitive invoice contents are logged. ## Related - Split from #164. - PR #371 completed the GA-visible dashboard and CLI account-ID work.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
public/platform#387
No description provided.