Payments and invoices connect rental and booking prices to the customer’s or business account’s financial record. Use the Operations API payment, invoice, balance, voucher, and billing-overview endpoints when building support tools, finance back-office workflows, payment retry tooling, refund workflows, invoice review screens, or customer-care credit workflows.
Finance actions can affect customer balances, payment provider charges, invoices, refunds, collection workflows, and audit trails. Treat write operations in this domain as privileged actions and make the user, branch, invoice, payment, amount, currency, and reason visible before submitting changes.
| Related reference: Operations API | Operations API Guide | Rental Guide | Booking Guide | Customers And Groups Guide | Pricing Guide | Error Codes |
These concepts are related but not interchangeable:
| Concept | Meaning | Use it for |
|---|---|---|
| Price | Calculated cost of a booking, rental, addition, package, rebate, surcharge, or penalty. | Understanding how an amount was calculated. |
| Billing overview | Aggregated support view of pricing and refunds for a rental or booking. | Explaining a charge to an operator or customer. |
| Invoice | Financial document with invoice state, line items, tax, refund links, and payment reference. | Finance review, download, refund, resend, collection. |
| Payment | Payment collection attempt and state, usually linked to payment provider activity. | Payment status and retry workflows. |
| Balance | Wallet/account ledger for a user or business account. | Reviewing open balances, settling balances, collection invoices. |
| Voucher | Credit, package, promotion, customer-care benefit, or redeemable value. | Customer-care credit and voucher campaigns. |
For support tools, start with the billing overview on the rental or booking. Move to invoice, payment, balance, or voucher endpoints only when the operator needs the financial object itself.
Invoice states describe where the invoice is in its lifecycle:
| State group | Examples | Meaning |
|---|---|---|
| Draft/open | OPEN, CLOSED |
Invoice exists but is not necessarily billed or paid. |
| Billing/payment | BILLED, IN_PAYMENT, PAID, PAID_EXTERNALLY |
Invoice was billed, is being paid, or was paid. |
| Payment exceptions | EXCEPTION_BILLING, EXCEPTION_SEPA, EXCEPTION_PAYING, PUSH_BANK_REFUSED, THREE_DS_FAILED |
Billing or payment provider flow failed. |
| Push/3DS waiting | PUSH_WAITING_FOR_USER, THREE_DS_WAITING_FOR_USER |
User action is needed in a payment flow. |
| Refund | ALLOWS_REFUND, REFUND_IN_PROGRESS, REFUNDED, EXCEPTION_REFUND, IS_REFUND |
Refund is possible, running, completed, failed, or this invoice is a refunding invoice. |
| Collections | COLLECTION, DISPUTED, IGNORE |
Invoice is in collection/dispute/ignored workflow. |
Do not infer payment success from invoice state alone. If payment-provider state matters, inspect the linked payment and attempts.
A payment can have multiple attempts. The payment state summarizes the overall payment; attempts show individual provider interactions.
Payment states include:
| State | Meaning |
|---|---|
OPEN |
Payment exists but is not finished. |
IN_PAYMENT |
Payment is currently being processed. |
AWAITING_RETRY |
Payment is waiting for a retry window. |
PAID |
Payment succeeded. |
FAILED |
Payment failed. |
DISPUTED |
Payment is disputed. |
COLLECTIONS |
Payment moved to collections. |
PUSH_WAITING_FOR_USER |
User must act in a push payment flow. |
PUSH_CANCELLED_BY_USER |
User canceled the push payment flow. |
PUSH_BANK_REFUSED |
Bank refused the push payment flow. |
Attempt states can show whether a specific attempt is retryable, refunded, disputed, waiting, paid, or failed. Use attempts when an operator needs to understand why retrying is or is not possible.
Payment sources are available through customer and group endpoints:
| Owner | Endpoint |
|---|---|
| Customer | GET /customers/{id}/payment-sources |
| Business account | GET /groups/{id}/payment-sources |
The response only includes payment sources the executing operator can see. Payment method editing is usually a customer-facing provider flow; do not expose payment-source deletion or source changes unless the operator role and tenant process explicitly allow it.
Balances are ledgers for users or business accounts. They can hold amounts that need to be settled, collected, or reviewed.
Use GET /balances with either userId or groupId. If both are provided, userId is used. Add branchId to limit balances to the billable branch context.
Business rentals are charged against the business account’s balance. For business account concepts, see the Customers And Groups Guide.
Vouchers represent credit or benefits that can affect what a customer pays. They may come from packages, promotions, customer care, subscriptions, signup/referral workflows, or other voucherable templates.
Use customer-care apply-vouchers endpoints for support credit. Use voucher/redeemable endpoints for issued-voucher review and campaign-style code workflows. Promotion, package, subscription, ride-pass, customer-care template, and benefit setup belongs in the Operations API Promotions, Packages, Subscriptions, And Benefits Guide.
Use the billing overview first:
| Source | Endpoint |
|---|---|
| Rental | GET /rentals/{rentalId}/billing-overview |
| Booking | GET /bookings/{bookingId}/billing-overview |
Billing overview is the best support-facing starting point because it shows the price overview and refunds overview without requiring the operator to manually join price, invoice, line item, and refund data.
If the operator needs the underlying financial document, follow the invoice reference from the billing overview to the invoice endpoints.
Use GET /invoices.
Useful filters:
| Filter | Use it for |
|---|---|
branchId |
Required branch scope. |
balanceId |
Find invoices linked to a balance. |
chargeId |
Find an invoice by payment-provider charge reference. |
invoiceId |
Find a specific numeric invoice record. |
guser.firstName |
Search by customer first name. |
invoiceType |
Filter REGULAR or BUSINESS invoices. |
Use GET /invoices/{invoiceId} for the invoice detail and GET /invoices/{invoiceId}/line-items for line items. Line items can optionally be filtered by bookingId or rentalId.
Use these endpoints:
| Task | Endpoint |
|---|---|
| Download invoice | GET /invoices/{invoiceId}/download |
| Resend invoice | POST /invoices/{invoiceId}/resend |
| Invoice overview | GET /invoices/overview |
| Invoice statement report | GET /invoices/reports |
| Line item templates | GET /invoices/line-item-templates |
Resending an invoice requires a mailMessage and can optionally specify a notification channel such as EMAIL, SMS, PUSH, or SLACK.
Use these endpoints only in administrative finance tooling:
| Task | Endpoint |
|---|---|
| Patch invoice title/description | PATCH /invoices/{invoiceId} |
| Patch one line item | PATCH /invoices/{invoiceId}/line-item/{lineItemId} |
| Delete one line item | DELETE /invoices/{invoiceId}/line-items/{lineItemId} |
| Bill invoice | POST /invoices/{invoiceId}/bill |
When creating or updating line item amounts, provide either net or gross price, not both. If using a line item template, the template controls which fields are overrideable.
Use POST /invoices/{invoiceId}/refund.
Refunds should include a reason and explicit refund items. Refund workflows can create refunding invoices and update invoice states such as REFUND_IN_PROGRESS, REFUNDED, EXCEPTION_REFUND, or IS_REFUND.
Operator tools should:
Use these endpoints only for finance workflows where the operator has authority to change invoice settlement state:
| Task | Endpoint |
|---|---|
| Mark paid externally | POST /invoices/{invoiceId}/set-paid-externally |
| Mark as lost | POST /invoices/{invoiceId}/mark-as-lost |
| Mark for collection | POST /invoices/{invoiceId}/mark-for-collection |
These actions can materially change finance operations. Require confirmation and show the current invoice state before submitting.
Use these endpoints:
| Task | Endpoint |
|---|---|
| List payments for branch | GET /payments?branchId={branchId} |
| Get payment | GET /payments/{id} |
| Retry payment | POST /payments/{id}/retry |
Retry only when the payment and attempt state indicate retry is appropriate. Some flows require user action, such as push or 3DS approval; retrying immediately may not help.
Use customer/group payment-source endpoints for review:
| Owner | Endpoint |
|---|---|
| Customer | GET /customers/{id}/payment-sources |
| Business account | GET /groups/{id}/payment-sources |
DELETE /payments removes or changes a payment source for either userId or userGroupId using a sourceId request body. Expose this only in controlled support/admin workflows because removing a payment source can block future rentals, bookings, or invoice settlement.
Use these endpoints:
| Task | Endpoint |
|---|---|
| List balances | GET /balances |
| Create balance | POST /balances |
| Get balance | GET /balances/{balanceId} |
| Get balance events | GET /balances/{balanceId}/events |
| Get balance updates | GET /balances/{balanceId}/updates |
| Extended balance view | GET /balances/extended |
| Settle balance | POST /balances/{balanceId}/settle |
| Bulk settle balances | POST /balances/bulk-settle |
| Generate collection invoice | POST /balances/{balanceId}/settle-by-collection-invoice |
Use balance events and updates for audit-style review. Treat settlement, bulk settlement, and collection invoice generation as finance-admin actions.
Deprecated customer/group balance endpoints exist in the API, but new tooling should use the /balances endpoints instead of /customers/{customerId}/balances or /groups/{id}/balances.
For customer-care benefits, use:
| Task | Endpoint |
|---|---|
| Apply vouchers to customer | POST /customers/{userId}/apply-vouchers |
| Apply vouchers to business account | POST /groups/{groupId}/apply-vouchers |
These endpoints create all vouchers produced by the selected customer-care voucherable. Prefer them over deprecated singular voucher endpoints.
Use these endpoints:
| Task | Endpoint |
|---|---|
| List vouchers | GET /vouchers |
| Get voucher by code | GET /vouchers/by-code/{code} |
| List constraint vouchers | GET /vouchers/constraint-vouchers |
| Cancel constraint voucher | POST /vouchers/constraint-vouchers/{id}/cancel |
| Create redeemable vouchers | POST /vouchers/redeemable |
| Create constraint redeemable vouchers | POST /vouchers/redeemable/constraint |
| Redeemable voucher summary | GET /vouchers/redeemable/summary |
POST /vouchers and GET /vouchers/voucher-campaigns are deprecated. Use the redeemable/constraint endpoints and voucherable/package workflows for new tooling.
| Area | Endpoint |
|---|---|
| Rental billing overview | GET /rentals/{rentalId}/billing-overview |
| Booking billing overview | GET /bookings/{bookingId}/billing-overview |
| Invoice list/detail | GET /invoices, GET /invoices/{invoiceId} |
| Invoice line items | GET /invoices/{invoiceId}/line-items, line-item patch/delete endpoints |
| Invoice document/reporting | GET /invoices/{invoiceId}/download, GET /invoices/overview, GET /invoices/reports |
| Invoice actions | Refund, resend, bill, set paid externally, mark lost, mark collection endpoints |
| Payments | GET /payments, GET /payments/{id}, POST /payments/{id}/retry |
| Payment sources | GET /customers/{id}/payment-sources, GET /groups/{id}/payment-sources, DELETE /payments |
| Balances | GET/POST /balances, balance detail/events/updates/settlement endpoints |
| Customer-care vouchers | POST /customers/{userId}/apply-vouchers, POST /groups/{groupId}/apply-vouchers |
| Vouchers | GET /vouchers, voucher by code, constraint voucher, redeemable voucher endpoints |
Finance endpoints are permission-gated and commonly evaluated on the business unit/billable branch behind the operational branch. A user may be able to view a rental through branch permissions but not view its billing overview, invoice, payment, balance, payment source, voucher, or refund controls if they lack the matching business-unit permission.
Common permission considerations:
| Workflow | Permission consideration |
|---|---|
| Billing overview | Rental/booking read plus billing visibility. |
| Invoice search and detail | Invoice/finance read permission for the business unit/billable branch. |
| Invoice edits and billing | Finance administration permission on the business unit. |
| Refunds | Refund permission and often elevated finance role. |
| Mark paid externally/lost/collection | Finance administration or collections permission. |
| Payment retry | Payment administration permission. |
| Payment sources | Payment-source visibility and support/admin permission. |
| Balances and settlement | Balance/finance permissions. |
| Vouchers/customer-care credit | Voucher/customer-care permissions on the business unit that owns the template or issued voucher. |
Settings and configuration that can affect this domain include:
| Area | Why it matters |
|---|---|
| Payment settings | Control supported payment methods, payment provider behavior, pre-authorizations, signup fees, and retry behavior. |
| Invoice settings | Control invoice creation, billing cycles, templates, tax, and notification behavior. |
| Business account settings | Affect invoicing, billing cycle, cost centers, and balance settlement for business rentals. |
| Pricing settings | Determine the calculated amounts that appear on invoices and billing overview. |
| Rental requirements | Can require payment source, signup fee, positive credit, or payment pre-authorization before rental start. |
| Voucher/package settings | Control voucher applicability, package purchase behavior, and signup/referral benefits. |
Use GET /settings only when your tool knows the relevant DASHBOARD or SHARED setting keys. Use /settings-management for administrative settings discovery and configuration.
/balances.apply-vouchers endpoints over deprecated singular voucher endpoints.The following product decisions are reflected in this guide: