companyId, addedByCoach, price, or VAT fields.
Scopes
Finance write guardrails
Finance write endpoints reject these caller-supplied fields:List invoices
finance_invoices:read
Query parameters:
Response fields:
List client invoices
finance_invoices:read
The response uses data.page, data.limit, data.total, data.totalPages,
data.hasNextPage, data.hasPrevPage, and data.invoices[] entries with
invoiceId, invoiceNumber, invoiceType, status, paymentStatus,
totalPrice, totalVat, currency, issueDate, dueDate, paymentMethod,
title, client, subscriptionId, clientProductId,
paymentTransactionId, pdfAvailable, source, createdAt, and updatedAt.
The clientId path parameter must belong to the authenticated company.
Get invoice
finance_invoices:read
Response fields:
The invoice detail endpoint does not return
pdfLink, raw provider payloads,
payment-provider snapshots, billing-profile snapshots, internal notes, or
history arrays.
Get invoice PDF metadata
finance_invoice_pdfs:read
This endpoint returns a short-lived URL for an existing invoice PDF. It does not
generate PDFs, does not append invoice history, and does not modify the invoice.
If no PDF is stored yet, the response is 404 PDF_NOT_AVAILABLE.
Response fields:
Send invoice reminder
finance_invoice_messages:write
Request body:
Validation:
Response fields:
Resend invoice copy
finance_invoice_messages:write
This endpoint accepts the Send invoice reminder request contract: optional
notifyClient and optional clientMessage, with unknown fields rejected. The
response uses data.delivery.type = invoice_copy and returns
data.delivery.status, data.delivery.sentAt, and data.invoice.* with
invoiceId, invoiceNumber, invoiceType, status, paymentStatus,
totalPrice, totalVat, currency, issueDate, dueDate, paymentMethod,
title, client, subscriptionId, clientProductId,
paymentTransactionId, pdfAvailable, source, createdAt, and updatedAt.
List payments
finance_payments:read
Query parameters: page, limit (max 100), dateFrom, dateTo (max 366
days), clientId, invoiceId, and status.
Response fields:
Payment responses never include raw payment-provider payloads, customer
IDs, mandate IDs, provider snapshots, or internal notes.
Get payment
finance_payments:read
Response fields:
List payment requests
finance_payment_requests:read
Query parameters: page, limit (max 100), status, and clientId when
filtering linked-client requests.
Response fields:
Not exposed: public tokens, checkout/public URLs, return/webhook URLs,
provider responses, payment transaction IDs, or ledger account IDs.
Get payment request
finance_payment_requests:read
Response fields:
Create payment request
finance_payment_requests:write
Request body:
Forbidden caller-supplied fields:
productPrice, price, priceExcVat,
priceVat, vat, and vatPercentage. Unknown fields are rejected.
Response fields:
List and get endpoints never return checkout/public URLs.
Cancel payment request
finance_payment_requests:write
Request body:
The payment request must belong to the authenticated company. Linked-client
requests also require client access.
Response fields:
List chargebacks
finance_chargebacks:read
Query parameters: page, limit (max 100), status, and clientId.
Response fields:
Not exposed: provider IDs, payment IDs, raw provider payloads, webhook payloads,
or notification timestamps.
Get chargeback
finance_chargebacks:read
Response fields:
Product catalog overview
finance_products:read
This endpoint lists all active product catalog items across:
StoreModuleMembershipStoreModuleCreditPackStoreModuleDayStoreModuleSingle
companyId from the access token. Clients must never send companyId.
Query parameters:
Envelope fields:
Pagination fields:
Common product response fields:
Product-specific response fields:
Single-product response fields:
Not exposed:
companyId, arbitrary coachId, coverImage, slug,
popularity, ledger/accounting IDs, default billing profile IDs,
availability tags, linked event templates, raw access config, service history,
provider snapshots, image upload state, or any payment-provider credentials.
Product catalog endpoints
Required scopes:- Reads:
finance_products:read - Creates, updates, and archives:
finance_products:write
Idempotency-Key header.
Typed list query parameters:
Get supports
includeArchived=true. Without it, archived products return not
found.
Product catalog request fields
Common create/update fields:
Membership-specific fields:
Credit-pack-specific fields:
Day/week-pass-specific fields:
Single-session products only use the common fields.
Rejected request fields include
companyId, coachId, addedByCoach,
payment, productPrice, priceExcVat, priceVat, vat, coverImage,
slug, storeType, isDeleted, history, ledgerAccountId,
defaultBillingProfileId, productAvailableTags,
productAvailableEventTemplates, accessConfig, createdAt, and updatedAt.
Unknown fields return PUBLIC_API_UNKNOWN_FIELDS.
Create product example
data.product.* fields from the single-product response
contract on this page, plus:
Update product example
PUBLIC_API_NO_FIELDS_TO_UPDATE.
Archive product example
DELETE is a soft archive. It sets isArchived: true in the Public API DTO and
does not remove existing client products, subscriptions, invoices, payments, or
credit history.
Archive response fields:
Product linked clients
finance_products:read
Use the matching path for memberships, day/week passes, or single sessions.
Query parameters:
Response fields:
Not exposed: client email, phone, address, birth date, health data, billing
profile snapshots, payment provider snapshots, benefit snapshots, legal
signatures, agreement document snapshots, provider transaction IDs, SEPA IDs,
idempotency keys, internal notes, email messages, or history arrays.
List assigned client products
finance_products:read
Response fields:
Not exposed: billing snapshots, payment-provider snapshots, legal signatures,
agreement documents, payment transaction IDs, idempotency keys, SEPA IDs,
internal notes, email message bodies, or history arrays.
Get assigned client product
finance_products:read
Response fields:
List masked bank account status
finance_payment_methods:read
Response fields:
Not exposed: raw IBAN, BIC, mandate IDs, provider customer IDs, disabled-by
actor IDs, provider responses, or payment-provider payloads.
List subscriptions
finance_subscriptions:read
Query parameters:
Response fields:
Get subscription
finance_subscriptions:read
Response fields:
Request subscription pause
finance_subscription_actions:write
This endpoint creates a membership action request for review. It does not
directly pause billing, change subscription status, allocate credits, or mutate
payment-provider state.
Request body:
Response fields:
Request subscription cancellation
finance_subscription_actions:write
This endpoint creates a membership action request for review. It does not
directly cancel the subscription.
Request body:
Response fields:
Assign membership
finance_memberships:write
Request body:
Response fields:
List client credits
finance_credits:read
Query parameters:
Response fields:
List credit mutations
finance_credits:read
Query parameters: page, limit (max 100), creditId, dateFrom, dateTo
(max 366-day range).
Response fields:
Adjust credits
finance_credits:write
Request body:
Response fields:
Assign product
finance_products:write
Supported product types: StoreModuleCreditPack, StoreModuleDay,
StoreModuleSingle.
Response fields:
Revoke product
finance_products:write
Supported revocations:
Request body:
Response fields: