Skip to content

Invora Billing API Guide

API Overview

The Invora Billing API covers subscription lifecycle management, usage-based pricing, automated invoicing, payment collection, and revenue analytics. Define pricing plans and billable metrics, assign customers to subscriptions, ingest usage events, and generate invoices with tax calculation and payment processing. The API is available as both gRPC and JSON/REST (via transcoding).


Key Concepts

Concept Description
Customer A billable entity in your system -- a company, team, or individual end-user. Each customer has an external_id you control, plus billing details (address, currency, tax ID, payment method).
Plan A pricing template that defines what you charge. A plan has a base price, billing interval (monthly/yearly), and contains charges (usage-based fees) and fixed charges (flat recurring fees). Plans can include trial periods, minimum commitments, and entitlements.
Subscription The link between a customer and a plan. When you subscribe a customer to a plan, invoices are generated automatically on each billing cycle. Subscriptions can override plan defaults (custom prices, thresholds) per customer.
Billable Metric A measurable quantity in your product (API calls, storage GB, seats, messages). You define the aggregation logic (sum, count, max, unique count, weighted) and the billing engine calculates charges from ingested events.
Add-on A one-time or supplemental line item not tied to a recurring plan -- setup fees, professional services, hardware charges. Add-ons appear as fixed charges on invoices.
Invoice An itemized bill generated for a customer. Invoices start as drafts, get finalized (locked), and then move through payment status tracking. You can download PDF/XML, void, regenerate, and export invoices in bulk.
Credit Note A partial or full reversal of an invoice. Used for refunds, billing errors, or goodwill credits. Can be applied as account credit, offset against future invoices, or trigger a payment refund.
Wallet A prepaid credit balance for a customer. Customers top up wallets, and charges are deducted automatically before payment provider collection. Supports recurring auto-top-up rules and expiration.
Coupon A discount applied to a customer's invoices -- fixed amount or percentage, one-time or recurring, optionally scoped to specific plans or metrics.
Entitlement / Feature A feature flag or capability gate tied to a subscription. Define features with privileges (boolean, numeric, or select), attach them to plans, and query at runtime whether a customer has access.
Alert A threshold-based notification on subscription usage or wallet balance. Fires when usage amount, usage units, or wallet credits cross a configured value.
Payment Provider Your connection to a payment gateway (Stripe, Adyen, GoCardless, Tap, Moneyhash, Flutterwave, Cashfree). Configured once, then assigned to customers for automatic payment collection.
Webhook An HTTP callback endpoint that receives real-time events: invoice created, payment succeeded, subscription terminated, wallet depleted, and 50+ other event types.
Billing Entity An organizational unit that issues invoices (useful for multi-entity businesses). Each entity can have its own tax configuration.

Core Workflows

1. Setting Up Your Billing Catalog

Before billing any customer, define what you sell and how you measure usage.

Operation RPC What it does
Define a usage metric BillableMetricService.Create Register a measurable dimension (e.g., "api_calls") with aggregation type (sum, count, max), optional filters, and rounding rules.
Update a metric BillableMetricService.Update Change aggregation, add filters, or rename.
Browse metrics BillableMetricService.List List all defined metrics with filtering by aggregation type or associated plan.
Remove a metric BillableMetricService.Delete Delete a metric no longer in use.
Create a pricing plan PlanService.Create Build a plan with base price, interval, usage-based charges (tied to metrics), fixed charges (tied to add-ons), trial period, minimum commitment, entitlements, and usage thresholds.
Update a plan PlanService.Update Modify pricing, charges, or features. Optionally cascade changes to active subscriptions.
Browse plans PlanService.List List all plans in your catalog.
Remove a plan PlanService.Delete Archive a plan (existing subscriptions continue).
Create an add-on AddOnService.Create Define a one-time billable item (setup fee, consulting hours) with a fixed price and tax codes.
Manage add-ons AddOnService.Update / Delete Update pricing or remove unused add-ons.
Define a feature PlanService.CreateFeature Register a gatable capability (e.g., "advanced_analytics") with typed privileges (boolean, numeric, select).
Manage features PlanService.UpdateFeature / DeleteFeature Update feature metadata or privileges.

2. Customer Onboarding and Management

Register your customers and configure their billing profile.

Operation RPC What it does
Register a customer CustomerService.Create Create a billing customer with your external ID, name, email, address, currency, tax info, and payment provider linkage.
Update customer details CustomerService.Update Change address, payment method, billing configuration, metadata, or dunning settings.
Look up a customer CustomerService.Get Retrieve full customer details by external ID or internal ID.
Search customers CustomerService.List Filter by country, currency, account type, subscription count, metadata, or free-text search.
Set invoice grace period CustomerService.UpdateCustomerInvoiceGracePeriod Give a customer extra days before draft invoices are finalized.
Generate checkout URL CustomerService.GetCheckoutUrl Get a hosted payment-method setup page URL to send to a customer.
Generate customer portal URL CustomerService.GetCustomerPortalUrl Get a self-service portal URL where a customer can view invoices and manage payment methods.
Remove a customer CustomerService.Delete Delete a customer (terminates active subscriptions).

3. Subscription Lifecycle

Subscribe customers to plans and manage their billing relationship over time.

Operation RPC What it does
Start a subscription SubscriptionService.Create Subscribe a customer to a plan with optional overrides (custom pricing, trial, thresholds, start/end dates).
View a subscription SubscriptionService.Get Retrieve subscription details including current status, plan, and overrides.
List subscriptions SubscriptionService.List Filter by customer, plan, status (active, pending, terminated), or whether overridden.
Modify a subscription SubscriptionService.Update Change end date, name, plan overrides, usage thresholds, or payment method.
Cancel a subscription SubscriptionService.Terminate End a subscription with control over final invoice and credit note generation.
Override a charge SubscriptionService.UpdateSubscriptionCharge Customize a specific usage charge for this subscription (different price, minimum spend, filters).
Override a fixed charge SubscriptionService.UpdateSubscriptionFixedCharge Customize a fixed charge amount for this subscription.
Add a charge filter SubscriptionService.CreateChargeFilter Add a pricing variant for a charge dimension (e.g., different rate for region=EU).
Remove a charge filter SubscriptionService.DeleteSubscriptionChargeFilter Remove a subscription-specific charge filter.
Add/update entitlement SubscriptionService.CreateOrUpdateEntitlement Grant or update a feature entitlement on a specific subscription.
Check entitlement SubscriptionService.GetEntitlement Query whether a subscription has a specific feature and its privilege values.
List entitlements SubscriptionService.ListEntitlements List all feature entitlements for a subscription.
Remove entitlement SubscriptionService.RemoveEntitlement Remove a feature entitlement from a subscription.

4. Usage Tracking and Monitoring

Monitor how much your customers are consuming and what their projected costs look like.

Operation RPC What it does
Get current usage CustomerService.GetUsage Retrieve the customer's actual usage for the current billing period, broken down by charge and metric.
Get projected usage CustomerService.GetProjectedUsage Estimate the customer's end-of-period usage and cost based on current trajectory.
Set usage alerts AlertService.CreateSubscriptionAlert Configure threshold alerts on usage amount, usage units, or lifetime totals for a subscription.
Set wallet alerts AlertService.CreateCustomerWalletAlert Configure alerts when wallet balance or credits drop below a threshold.
Manage alerts AlertService.Update*Alert / Delete*Alert Update thresholds or remove alerts.
Query alerts AlertService.SubscriptionAlerts / WalletAlerts List all active alerts for a subscription or wallet.

5. Invoicing

Generate, manage, and deliver invoices to your customers.

Operation RPC What it does
Create a one-off invoice InvoiceService.Create Issue an ad-hoc invoice for custom fees outside the subscription cycle.
View an invoice InvoiceService.Get Retrieve full invoice details including line items, taxes, and payment status.
List invoices InvoiceService.List Filter by customer, status (draft, finalized, voided), payment status, or free-text search.
List customer invoices InvoiceService.CustomerInvoices List all invoices for a specific customer.
Finalize a draft InvoiceService.Finalize Lock a draft invoice, assign a sequential number, and trigger payment collection.
Finalize all drafts InvoiceService.FinalizeAllInvoices Batch-finalize all pending draft invoices.
Refresh a draft InvoiceService.RefreshInvoice Recalculate a draft invoice with the latest usage and pricing data.
Update an invoice InvoiceService.Update Update metadata or manually set payment status.
Download PDF InvoiceService.DownloadInvoice Generate and retrieve the invoice as a PDF document.
Download XML InvoiceService.DownloadInvoiceXml Generate and retrieve the invoice in structured XML format (for e-invoicing compliance).
Customer portal PDF InvoiceService.DownloadCustomerPortalInvoice Download an invoice PDF through the customer-facing portal.
Email an invoice InvoiceService.ResendInvoiceEmail Send or resend the invoice email with optional custom recipients (to, cc, bcc).
Void an invoice InvoiceService.VoidInvoice Cancel a finalized invoice, optionally generating a credit note and refund.
Regenerate from voided InvoiceService.RegenerateFromVoided Create a corrected invoice from a previously voided one.
Fetch draft taxes InvoiceService.FetchDraftInvoiceTaxes Preview tax calculations for a one-off invoice before creating it.
Export invoices InvoiceService.CreateDataExport Request a bulk data export of invoices or invoice fees in CSV format.
View invoice collections ObservabilityService.InvoiceCollections See monthly aggregated collection amounts and counts.
View invoiced usage ObservabilityService.InvoicedUsages See invoiced usage amounts broken down by month and metric.
Manage custom sections InvoiceService.CreateCustomSection / UpdateInvoiceCustomSection / DeleteInvoiceCustomSection / GetCustomSection / ListCustomSections Create reusable content blocks (terms, notes, disclaimers) that appear on invoices.
Handle payment disputes InvoiceService.LoseInvoiceDispute Mark a disputed payment as lost (e.g., chargeback).
Retry failed operations InvoiceService.RetryInvoice / RetryInvoicePayment / RetryAllInvoices / RetryAllInvoicePayments / RetryTaxProviderVoiding Retry failed invoice generation, payment collection, or tax provider sync.
Sync to external systems InvoiceService.SyncIntegrationInvoice / SyncSalesforceInvoice / SyncHubspotIntegrationInvoice Push invoice data to connected accounting, CRM, or sales integrations.

6. Fee Adjustments

Manually adjust individual line items on draft invoices before finalization.

Operation RPC What it does
Preview an adjustment FeeService.PreviewAdjustedFee See the effect of changing units or unit price on a specific fee before committing.
Apply an adjustment FeeService.CreateAdjustedFee Override the calculated amount for a fee on a draft invoice (e.g., goodwill discount, correction).
Remove an adjustment FeeService.DeleteAdjustedFee Revert to the originally calculated fee amount.

7. Credits and Refunds

Issue credit notes for refunds, billing errors, or account credits.

Operation RPC What it does
Estimate a credit note CreditNoteService.GetEstimate Preview refundable, creditable, and offsettable amounts before creating a credit note.
Create a credit note CreditNoteService.Create Issue a credit note against an invoice with a specified reason, refund amount, and credit amount.
View a credit note CreditNoteService.Get Retrieve full credit note details.
List credit notes CreditNoteService.List Filter by customer, invoice, status, reason, currency, or date range.
Invoice credit notes CreditNoteService.InvoiceCreditNotes List all credit notes associated with a specific invoice.
Update a credit note CreditNoteService.Update Update metadata or refund status.
Void a credit note CreditNoteService.VoidCreditNote Cancel a credit note.
Download PDF CreditNoteService.DownloadCreditNote Generate and retrieve the credit note as a PDF.
Download XML CreditNoteService.DownloadXmlCreditNote Generate and retrieve in structured XML format.
Email a credit note CreditNoteService.ResendCreditNoteEmail Send or resend with optional custom recipients.
Export credit notes CreditNoteService.CreateDataExport Bulk data export of credit notes or credit note items.
Retry tax reporting CreditNoteService.RetryTaxReporting Retry failed tax provider reporting for a credit note.
Sync to integrations CreditNoteService.SyncIntegrationCreditNote Push credit note data to connected accounting systems.

8. Prepaid Credits (Wallets)

Let customers pre-pay for usage with credit wallets.

Operation RPC What it does
Create a wallet WalletService.CreateCustomerWallet Set up a prepaid credit wallet for a customer with an initial balance, exchange rate, priority, and optional auto-top-up rules.
Top up a wallet WalletService.CreateCustomerWalletTransaction Add paid or granted credits to a wallet.
View wallet balance WalletService.Get Check current balance, consumed credits, and expiration.
List wallets WalletService.List List all wallets (a customer can have multiple with priority ordering).
Update a wallet WalletService.UpdateCustomerWallet Change expiration, auto-top-up rules, priority, or scope (which metrics/fee types the wallet covers).
Close a wallet WalletService.TerminateCustomerWallet Terminate a wallet and forfeit remaining balance.
View transactions WalletService.ListTransactions List all top-ups, deductions, and voidings for a wallet.
View a transaction WalletService.GetTransaction Get details of a specific wallet transaction.
Track consumption WalletService.ListTransactionConsumptions See how an inbound (top-up) transaction's credits were consumed.
Track funding WalletService.ListTransactionFundings See which top-up transactions funded an outbound (deduction) transaction.

9. Discounts and Promotions

Apply coupons to reduce what customers pay.

Operation RPC What it does
Create a coupon CouponService.Create Define a discount: fixed amount or percentage, one-time or recurring, with optional expiration and scope (specific plans or metrics).
Update a coupon CouponService.Update Modify discount terms.
Apply to a customer CouponService.CreateAppliedCoupon Assign a coupon to a specific customer, optionally overriding the default amount or frequency.
View applied coupons CouponService.AppliedCoupons List active coupon assignments filtered by customer or coupon code.
Remove from customer CouponService.TerminateAppliedCoupon Stop applying a coupon to a customer.
Deactivate a coupon CouponService.Terminate Stop a coupon from being applied to new customers.
Delete a coupon CouponService.Delete Remove a coupon entirely.

10. Payment Collection

Connect payment gateways and manage payment lifecycle.

Operation RPC What it does
Connect Stripe PaymentProviderService.CreateStripePaymentProvider Register your Stripe API keys.
Connect Adyen PaymentProviderService.CreateAdyenPaymentProvider Register Adyen credentials and merchant account.
Connect GoCardless PaymentProviderService.CreateGocardlessPaymentProvider Register GoCardless for direct debit collection.
Connect Tap PaymentProviderService.CreateTapPaymentProvider Register Tap payment gateway (popular in MENA).
Connect Moneyhash PaymentProviderService.CreateMoneyhashPaymentProvider Register Moneyhash payment orchestrator.
Connect Flutterwave PaymentProviderService.CreateFlutterwavePaymentProvider Register Flutterwave (popular in Africa).
Connect Cashfree PaymentProviderService.CreateCashfreePaymentProvider Register Cashfree (popular in India).
Update any provider PaymentProviderService.Update*PaymentProvider Update credentials, redirect URLs, or 3DS settings.
List providers PaymentProviderService.List View all connected payment providers.
Remove a provider PaymentService.DeletePaymentProvider Disconnect a payment provider.
Record a manual payment PaymentService.Create Log a payment received outside automated collection (bank transfer, check).
View payment details PaymentService.Get Retrieve payment status, amount, and reference.
List payments PaymentService.List Filter payments by customer or invoice.
Generate payment URL PaymentService.GetPaymentUrl Get a hosted payment page URL for a specific invoice.
Send payment request PaymentRequestService.Create Bundle one or more invoices into a payment request sent to a customer.
List payment requests PaymentRequestService.List View outstanding payment requests.
Manage payment methods PaymentRequestService.PaymentMethods / SetPaymentMethodAsDefault / DeletePaymentMethod List, set default, or remove a customer's saved payment methods.
Download payment receipt PaymentRequestService.DownloadPaymentReceipt / DownloadXmlPaymentReceipt Get PDF or XML receipts for completed payments.
Email payment receipt PaymentRequestService.ResendPaymentReceiptEmail Send or resend receipt emails with optional custom recipients.

11. Tax Configuration

Define and manage tax rates applied to invoices.

Operation RPC What it does
Create a tax rate TaxService.Create Define a named tax (e.g., "VAT 20%") with a code and rate.
Update a tax rate TaxService.Update Change rate, name, or organization-wide default status.
List taxes TaxService.List View all configured tax rates.
Remove a tax TaxService.Delete Delete an unused tax rate.
Apply taxes to entity TaxService.BillingEntityApplyTaxes Assign tax rates to a specific billing entity.
Remove taxes from entity TaxService.BillingEntityRemoveTaxes Remove tax assignments from a billing entity.
View entity taxes TaxService.BillingEntityTaxes List taxes applied to a specific billing entity.

12. Revenue Analytics

Monitor your billing health with built-in analytics. Analytics RPCs are served by ObservabilityService; each accepts an optional filter (currency, billing entity, customer, month range).

Operation RPC What it does
Monthly Recurring Revenue ObservabilityService.Mrrs Get MRR aggregated by month, filtered by currency.
Gross Revenue ObservabilityService.GrossRevenues Get total revenue per month with invoice counts.
Invoice Collections ObservabilityService.InvoiceCollections See how much was collected per month with invoice counts.
Invoiced Usage ObservabilityService.InvoicedUsages Monthly breakdown of usage-based revenue by billable metric.
Overdue Balances ObservabilityService.OverdueBalances Identify outstanding balances aggregated by currency.

13. Tenant Self-Service (Account API)

A read-only API surface for your end-users to view their own billing data.

Operation RPC What it does
View my subscription AccountService.GetMySubscription Let a tenant see their active subscription and plan details.
View my usage AccountService.GetMyUsage Let a tenant see their current-period usage summary.
List my invoices AccountService.ListMyInvoices Let a tenant browse their invoice history with filtering and sorting.
View specific invoice AccountService.GetMyInvoice Let a tenant view a specific invoice.
View my wallet AccountService.GetMyWallet Let a tenant check their prepaid credit balance.
Browse available plans AccountService.ListAvailablePlans Let a tenant see plans they can subscribe to (for self-service upgrade flows).

14. Event-Driven Integration (Webhooks)

React to billing events in real-time.

Operation RPC What it does
Register an endpoint WebhookEndpointsService.Create Set up a URL to receive billing events, with HMAC or JWT signature verification.
Update an endpoint WebhookEndpointsService.Update Change URL, event filters, or signature algorithm.
List endpoints WebhookEndpointsService.List View all registered webhook endpoints.
Remove an endpoint WebhookEndpointsService.Delete Stop receiving events at a URL.
Browse webhook deliveries WebhookEndpointsService.ListWebhooks List delivered webhooks with status (succeeded, failed, retrying).
View a delivery WebhookEndpointsService.GetWebhook Inspect a specific webhook delivery and its HTTP response.
Retry a failed delivery WebhookEndpointsService.RetryWebhook Re-deliver a failed webhook.

Supported event types include: invoice lifecycle (created, drafted, finalized, voided, payment status changes), subscription events (started, updated, terminated, trial ended), payment events (succeeded, failed, requires action), wallet events (created, depleted, transaction updates), customer events (created, updated, provider errors), credit note events, alert triggers, plan changes, feature changes, and dunning campaign completion -- 59 event types in total.


Per-Service Business Descriptions

CustomerService

Manages the billing profiles of your customers. Every billable entity in your system needs a corresponding billing customer with their address, currency, payment method, and tax information. The service also provides real-time and projected usage queries that report current-period charges before the invoice is issued, and generates hosted URLs for payment method setup and self-service portals.

SubscriptionService

Controls the commercial relationship between a customer and a plan. Creating a subscription starts the billing cycle; terminating it ends it. The service supports per-customer pricing overrides, usage thresholds for progressive billing, charge filters for segment-specific pricing, and feature entitlement management -- all without needing to create a separate plan for each customer.

PlanService

Your pricing catalog. Plans define the structure of what you charge: base price, billing interval, included usage-based charges with their pricing models, fixed recurring charges, trial periods, minimum commitments, and feature entitlements. When you update a plan, you can optionally cascade changes to all active subscriptions.

InvoiceService

Covers the full invoice lifecycle. Invoices are generated automatically from subscriptions or created manually for one-off charges. They progress from draft (editable, refreshable) to finalized (payment-triggering) to paid/voided. The service handles PDF/XML generation, email delivery, bulk finalization, data exports, payment retries, tax provider sync, and integration with external accounting and CRM systems.

WalletService

Enables prepaid credit models. Customers can pre-purchase credits that are automatically consumed before payment provider charges. Wallets support multiple priority levels, scope restrictions (only certain metrics or fee types), auto-top-up rules (threshold-based or interval-based), and expiration dates. Full transaction history with consumption and funding traceability.

CreditNoteService

Handles financial corrections. When you need to refund a customer, correct a billing error, or issue goodwill credit, credit notes provide the formal accounting record. Supports three types: refund (money back to customer), credit (applied to future invoices), and offset (reduces outstanding balance). Includes estimation previews, PDF/XML generation, and integration sync.

CouponService

Manages discounts. Coupons can be fixed-amount or percentage-based, apply once or on a recurring schedule, and can be scoped to specific plans or billable metrics. You create coupons centrally and then apply them to individual customers, with the ability to override terms per assignment.

PaymentProviderService

Connects your billing system to payment gateways. Supports seven providers covering global and regional payment methods: Stripe, Adyen, GoCardless, Tap, Moneyhash, Flutterwave, and Cashfree. Each provider configuration includes API credentials, 3DS settings, and success redirect URLs.

PaymentService

Tracks money movement. Records both automated payment collections (from connected providers) and manual payments (bank transfers, checks). Generates hosted payment page URLs for customers to pay specific invoices.

PaymentRequestService

Bundles invoices into payment requests sent to customers. Manages saved payment methods (list, set default, delete) and generates payment receipt documents in PDF and XML formats with email delivery.

BillableMetricService

Defines the measurable dimensions of your product that drive usage-based pricing. Metrics specify how raw events are aggregated into billable quantities: sum, count, count distinct, max, latest, or weighted sum. Supports filters for multi-dimensional breakdowns and rounding rules for clean billing amounts.

AddOnService

Manages one-time billable items. Add-ons represent charges outside the regular subscription cycle -- setup fees, professional services, hardware, or any fixed-price item. They are referenced by fixed charges within plans.

Features (PlanService)

The feature catalog is managed through the plans service (CreateFeature, UpdateFeature, DeleteFeature, GetFeature, ListFeatures). Features represent capabilities in your product (e.g., "sso", "api_access", "advanced_reports") with typed privileges that can be boolean, numeric, or selection-based. Features are attached to plans and granted or overridden per subscription via the subscription entitlement RPCs (CreateOrUpdateEntitlement, GetEntitlement, ListEntitlements, RemoveEntitlement).

AlertService

Configures threshold-based notifications for proactive billing management. Alerts can monitor subscription usage (current amount, current units, lifetime totals, per-metric usage) or wallet balances (credit balance, ongoing balance). When thresholds are crossed, webhook events fire. Typical responses include warning customers, throttling usage, or triggering auto-top-ups.

TaxService

Manages tax rates and their assignment to billing entities. Define taxes with codes, names, and rates, then apply them at the organization or billing entity level. Taxes are automatically calculated on invoices and credit notes.

ObservabilityService

Provides business intelligence and audit visibility on your billing data. Five analytics RPCs cover the core SaaS metrics: MRR, gross revenue, invoice collections over time, invoiced usage by metric, and overdue balances. The same service also exposes activity logs and API request logs. Analytics are filterable by currency, billing entity, customer, and month range.

AccountService

A tenant-facing read-only surface. Unlike the other services (which are operator/admin APIs), this service exposes a tenant's own billing data: active subscription, current usage, invoice history, wallet balance, and available plans. It backs self-service billing dashboards.

WebhookEndpointsService

Manages real-time event delivery to your systems. Register HTTPS endpoints with event type filtering and signature verification (HMAC or JWT). Browse delivery history, inspect failures, and retry failed deliveries. Covers 59 event types across the full billing lifecycle.

FeeService

Fine-tune individual line items on draft invoices before finalization. Preview the impact of adjusting units or unit prices, apply the adjustment, or revert to the original calculated amount. Useful for manual corrections, goodwill adjustments, or negotiated pricing.