Billing
Read the balance-notification rule for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidBalance-notification rule
application/json- response
enabled*booleanthreshold_amount*numberdoublecurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/balance-notification'{ "enabled": true, "threshold_amount": 0.1}Set the balance-notification rule for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidapplication/json- body
Request shape for PUT /orgs/{id}/billing/balance-notification. enabled=false may omit threshold_amount; billing requires the threshold only when enabling the rule and enforces its own $5-$50,000 bounds.
enabled*booleanthreshold_amount?numberdoubleUpdated balance-notification rule
application/json- response
enabled*booleanthreshold_amount*numberdoublecurl -X PUT 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/balance-notification' \ -H 'Content-Type: application/json' \ -d '{ "enabled": true}'{ "enabled": true, "threshold_amount": 0.1}List itemized balances for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidlimit?integerint64next_page?stringBalance list
application/json- response
data*array<>has_more*booleannext_page?string|nullcurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/balances'{ "data": [ { "applicable_to": null, "balance_cents": 0.1, "created_at": "string", "expires_at": "string", "granted_amount_cents": 0.1, "id": "string", "name": "string", "type": "string" } ], "has_more": true, "next_page": "string"}List charge history for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidlimit?integerint64starting_after?stringCharge history
application/json- response
data*array<>has_more*booleannext_cursor?string|nullcurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/charges'{ "data": [ { "amount_cents": 0, "created_at": "string", "currency": "string", "description": "string", "failure_message": "string", "has_pdf": true, "has_stripe_invoice": true, "id": "string", "receipt_url": "string", "status": "string", "stripe_invoice_url": "string" } ], "has_more": true, "next_cursor": "string"}Download the PDF receipt for one charge. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidcharge_id*stringCharge id
Charge receipt PDF (binary)
response?InvoicePdfBodyapplication/pdfPDF document bytes
binarycurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/charges/string/pdf'"string"Read the billing-contact email for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidBilling-contact email
application/json- response
billing_email?string|nulleffective_email?string|nullcurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/email'{ "billing_email": "string", "effective_email": "string"}Set or clear the billing-contact email for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidapplication/json- body
billing_email?string|nullUpdated billing-contact email
application/json- response
billing_email?string|nulleffective_email?string|nullcurl -X PUT 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/email' \ -H 'Content-Type: application/json' \ -d '{}'{ "billing_email": "string", "effective_email": "string"}Read the billing identity for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidBilling identity
application/json- response
address*email*stringname*stringphone*stringtax_ids*array<>curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/info'{ "address": { "city": "string", "country": "string", "line1": "string", "line2": "string", "postal_code": "string", "state": "string" }, "email": "string", "name": "string", "phone": "string", "tax_ids": [ { "type": "string", "value": "string" } ]}List invoices for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidpage?integerint64per_page?integerint64Invoices
application/json- response
items*array<>total_items*integerint64total_pages*integerint64truncated*booleancurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/invoices'{ "items": [ { "currency": "string", "file_url": "string", "has_pdf": true, "id": "string", "issuing_date": "string", "number": "string", "payment_due_date": "string", "payment_overdue": true, "payment_status": "string", "status": "string", "subtotal_amount_cents": 0, "taxes_amount_cents": 0, "total_amount_cents": 0, "total_due_amount_cents": 0, "type": "string" } ], "total_items": 0, "total_pages": 0, "truncated": true}Mint a fresh hosted payment URL for one invoice. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidinvoice_id*stringInvoice id
Invoice payment URL
application/json- response
url*stringcurl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/invoices/string/payment-url'{ "url": "string"}Download the PDF for one invoice. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidinvoice_id*stringInvoice id
Invoice PDF (binary)
response?InvoicePdfBodyapplication/pdfPDF document bytes
binarycurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/invoices/string/pdf'"string"List saved payment methods for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidSaved payment methods
application/json- response
[index: integer]?curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/payment-methods'[ { "brand": "string", "exp_month": 0, "exp_year": 0, "id": "string", "is_default": true, "last4": "string" }]The organization's pricing plan: the current and any pending plan, the effective numbers and the plan catalog, proxied verbatim from rlp-billing (PLAN-PRICING-PLANS.md). The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidPlan DTO as served by rlp-billing (passthrough body)
application/json- response
curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/plan'{}Self-serve plan change for one organization: {"plan": "starter"|"team"} forwarded verbatim to rlp-billing, which owns every check (unknown_plan, contact_sales, plan_change_pending, payment_method_required, …) and answers the same DTO as the read. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuid{"plan": "starter" | "team"} — forwarded verbatim; rlp-billing validates it
application/json- body
Plan DTO after the change (passthrough body)
application/json- response
curl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/plan' \ -H 'Content-Type: application/json' \ -d '{}'{}Mint a fresh billing-portal URL for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidBilling portal URL
application/json- response
url*stringcurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/portal-url'{ "url": "string"}Redeem one coupon for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidcode*stringCoupon code
Coupon redeemed
application/json- response
ok*booleancurl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/redeem-coupon/string'{ "ok": true}Mint a fresh setup-checkout URL for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidSetup-checkout URL
application/json- response
url*stringcurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/setup-checkout-url'{ "url": "string"}List unpaid invoices and suspension deadlines for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidUnpaid invoices
application/json- response
[index: integer]?curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/unpaid-invoices'[ { "amount_due_cents": 0, "currency": "string", "due_date": "string", "finalized_at": "string", "hosted_invoice_url": "string", "id": "string", "number": "string", "suspends_at": "string" }]Read current-period priced usage for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidCurrent billing usage
application/json- response
amount_cents*integerint64charges*array<>from*stringissuing_date*stringtaxes_amount_cents*integerint64to*stringtotal_amount_cents*integerint64curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/usage'{ "amount_cents": 0, "charges": [ { "billable_metric": "string", "events_count": 0, "name": "string", "quantity": 0.1, "total_cents": 0, "units": "string" } ], "from": "string", "issuing_date": "string", "taxes_amount_cents": 0, "to": "string", "total_amount_cents": 0}List past closed billing periods for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidperiods?integerint64Past billing periods
application/json- response
[index: integer]?curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/usage/past'[ { "amount_cents": 0, "charges": [ { "billable_metric": "string", "events_count": 0, "name": "string", "quantity": 0.1, "total_cents": 0, "units": "string" } ], "from": "string", "issuing_date": "string", "taxes_amount_cents": 0, "to": "string", "total_amount_cents": 0 }]Read the billing wallet for one organization. The caller must be a seated member holding read:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidOrganization wallet
application/json- response
automatic_top_up?null|balance_cents*integerint64billing_type*stringcredit_card_connected_credits_granted*booleanfree_credits_balance_cents*integerint64has_failed_or_pending_invoice*booleanname*stringpaid_credits_balance_cents*integerint64total_amount_due_this_month_cents*integerint64total_spent_this_month_cents*integerint64verified_credits_granted*booleancurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/wallet'{ "automatic_top_up": null, "balance_cents": 0, "billing_type": "string", "credit_card_connected_credits_granted": true, "free_credits_balance_cents": 0, "has_failed_or_pending_invoice": true, "name": "string", "paid_credits_balance_cents": 0, "total_amount_due_this_month_cents": 0, "total_spent_this_month_cents": 0, "verified_credits_granted": true}Set or clear the automatic top-up rule for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidapplication/json- body
Request shape for PUT /orgs/{id}/billing/wallet/automatic-top-up. {"disabled": true} alone clears the rule; otherwise billing accepts the dollar amounts and applies its own validation ladder.
disabled?boolean|nulltarget_amount?|doublethreshold_amount?|doubleAutomatic top-up updated
curl -X PUT 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/wallet/automatic-top-up' \ -H 'Content-Type: application/json' \ -d '{}'Create a manual wallet top-up session for one organization. The caller must be a seated member holding write:wallet. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidapplication/json- body
amount_cents*integerint641000 <= value <= 99999999Top-up checkout URL
application/json- response
url*stringcurl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/billing/wallet/top-up' \ -H 'Content-Type: application/json' \ -d '{ "amount_cents": 1000}'{ "url": "string"}