/consumer/v1/billing endpoints of the API reference.
How you are billed
- AllRide bills you in arrears, once a month, per billable redemption. There is no deposit, no advance payment and no subscription fee.
- A billable redemption is a completed redemption of yours, whatever the channel (API, dashboard or Redemption Link). Imported legacy redemptions are not billed.
- The service month of a redemption is the calendar month of its
redeemedAtin Berlin time (Europe/Berlin), whatever your partner time zone. Billing months follow Berlin time, so your analytics in another time zone can differ from the invoice at the month edges. - On the 1st of each month at 06:00 Berlin time AllRide drafts the invoice for the previous month. AllRide reviews every draft before it is issued, so the invoice arrives a little later.
- Voided redemptions are not billed. Void before the month is invoiced and the redemption never appears on an invoice. An issued invoice is never changed afterwards, so a void after invoicing does not reduce it; if an invoice is wrong, talk to AllRide (see Corrections: Stornorechnung).
- A month with usage always produces an invoice, even if its total is zero (for example when every provider you used is free); such an invoice is immediately
paid. A month without usage produces no invoice. - The price per redemption is set by AllRide for you, possibly per provider or voucher set, and you accept it before you can redeem: see Prices and price acceptance.
- AllRide decides how you pay: by SEPA Direct Debit (the default; you set up the mandate yourself, see SEPA Direct Debit mandate) or by bank transfer against each invoice. You see the choice as
preferredPaymentMethodTypeon your billing account.
Billing account and contacts
Your partner has one billing account, created automatically when you become a consumer.Coming soon. Changing the billing account through
PATCH /consumer/v1/billing/account is not available yet. Until it is, your AllRide account manager updates the account for you; reading the account and managing contacts work today.- Read it with
GET /consumer/v1/billing/account(Get the billing account). - Change it with
PATCH /consumer/v1/billing/account(Update the billing account), a JSON merge patch. You can changelegalName,address,vatId(nullclears it),buyerReference(your Leitweg-ID for XRechnung),purchaseOrderReference(printed as your PO number),invoiceLanguage(deoren) andeInvoiceFormat. - AllRide chooses how you pay.
preferredPaymentMethodTypeissepa-debit(SEPA Direct Debit, the default) orbank-transfer(you pay each invoice by bank transfer). It is set by AllRide and read-only for you; talk to your AllRide account manager if you would like to switch.
- Fields that only AllRide sets, such as
mode,paymentTermsDays,voidedRedemptionsBillableandpreferredPaymentMethodType, are refused withdata-failed-validationand the constraintadmin-only-field. - The first two letters of
vatIdmust match the country of your address (Greece:EL), else the constraint isvat-id-country-mismatch. - AllRide checks EU VAT IDs against VIES. Changing
vatIdor the address country resetsvatIdStatustounverifieduntil the new check completes. missingItemslists what blocks invoicing:legal-name,address,invoice-contact,vat-id(for EU customers outside Germany a valid VAT ID is required) andbuyer-reference(required for XRechnung). Your account isactivewhen the list is empty andincompleteotherwise; it switches back and forth automatically. An incomplete account still records usage, but AllRide cannot issue its invoice until you complete it.
invoices (invoice and Stornorechnung emails, including the SEPA pre-notification), dunning (reminders and dunning notices) and payment-failures (failed debits).
An email that is already a contact answers 409
billing-contact-exists; a contact without a role fails with the constraint billing-contact-role-required. At least one contact with the role invoices is required for invoicing. Changing the account or its contacts requires a sign-in within the last 15 minutes, because these settings decide where invoices go.
Billing writes stay possible while your partner is suspended, so you can fix payment details. They are dashboard-only: an API key cannot hold manage-consumer-billing.
SEPA Direct Debit mandate
Coming soon. SEPA Direct Debit and the payment-method operations of this section are not available yet. AllRide switches them on after sign-off and announces it by email to your technical contact (
contacts.technicalEmail). Until then, pay your invoices by bank transfer as printed on each invoice.preferredPaymentMethodType is sepa-debit). The mandate is yours to sign, so you set it up yourself in the consumer dashboard, under Billing › Payment method. The operation behind it, POST /consumer/v1/billing/payment-methods:setup-sepa-debit (Set up SEPA Direct Debit), needs manage-consumer-billing and a recent sign-in, so API keys cannot call it. If AllRide collects your invoices by bank transfer, it answers 409 sepa-not-enabled.
- A member with
manage-consumer-billingstarts the setup. The request has no body. The response holds the new payment method (setup-pending), the StripeclientSecret(shown once), Stripe’spublishableKeyand thecreditor(AllRide’s name and SEPA creditor ID). - The dashboard loads Stripe.js with
publishableKeyand shows Stripe’s IBAN field together with the account holder’s name and email and the SEPA mandate text naming the creditor. The IBAN goes straight to Stripe: AllRide never receives the full IBAN and stores only the last four digits (ibanLast4), the bank code and the bank country. - You accept the mandate, and the dashboard confirms it with Stripe:
- The payment method stays
setup-pendinguntil Stripe confirms the mandate, usually within a minute, then it isactiveand becomes your default. The dashboard polls Get a payment method until then. A setup that is not confirmed within 24 hours (setupExpiresAt) endssetup-failed; remove it or start a new one.
- Starting it removes any other unfinished setup and cancels its SetupIntent.
- Your current mandate keeps collecting until Stripe confirms the new one. Then the new mandate is
activeand the default, and the old one isremovedwithdeactivatedReasonClass: replaced. Scheduled debits move to the new mandate, with a new pre-notification. The webhookpayment-method-deactivatedreports the old one withreasonClass: replaced, and the activation email names the IBAN it replaced. - If the new setup fails, your current mandate stays.
GET /consumer/v1/billing/payment-methods, removed mandates left out unless filter[status] asks for them) and Get a payment method. In the dashboard you can remove the mandate or an unfinished setup (:remove); removing a setup that did not succeed cancels it and does not touch your active mandate.
Pre-notification and collection date. The invoice email is the SEPA pre-notification: it states the amount, the collection date, the mandate reference, AllRide’s creditor ID and the last four digits of your IBAN. AllRide collects on the due date, but never earlier than 3 days after the email was sent, moved to the next TARGET2 business day.
Failed debits. Every failed debit sends the webhook payment-failed and an email to contacts with the role payment-failures.
- Soft failures (for example insufficient funds) are retried twice, 7 and 14 days after the failure is reported, within 30 days of the first failure. Each retry comes with a new pre-notification.
- Hard failures (mandate revoked, account closed, account details wrong) deactivate the mandate (
payment-method-deactivated) and move the invoice to bank transfer; your contacts receive the bank-transfer instructions. Set up a new mandate to return to direct debit.
Invoices and Stornorechnungen
Coming soon. AllRide is reviewing the first billing months internally before it issues invoices. Until the first invoice is issued, the invoice list is empty and no
invoice-* webhook is sent; your usage estimate already shows what you will be billed.- You see only issued documents. Drafts in review are invisible (404
invoice-not-found). - Numbers are gapless per year in one series, for example
VP-R-2026-000042. Stornorechnungen use the same series. kindtells you what an invoice is:periodic(the monthly invoice),final(after offboarding),corrective(a corrected invoice issued after a cancellation) orcancellation(a Stornorechnung, see below).- Invoice statuses:
finalised(issued, email not yet sent),sent,partially-paid,paid,overdue,uncollectibleandvoid(cancelled by a Stornorechnung). - Each invoice line shows the provider, voucher set, quantity,
unitPriceand net amount. Amounts areMoneyin cents; tax rates are decimal strings such as"19.00".
Corrections: Stornorechnung
An issued invoice is never edited or deleted (GoBD). If an invoice is wrong, AllRide cancels it with a Stornorechnung (cancellation invoice) and then issues a corrected invoice in the usual way:- The Stornorechnung is an invoice of its own with
kind: cancellation, a new number in the same series andcancelsInvoiceIdpointing to the cancelled invoice. Its document refers to the original invoice number and date. - It mirrors the original lines with negative amounts: each line has a negative
quantityandnetAmountwith the original, positiveunitPrice;netAmount,taxAmount,grossAmountand the tax breakdown are negative. Nothing is due on it:amountDueis0,paymentInstructions.typeissettledand it staysfinalisedorsent. - The original invoice becomes
void, withcancelledByInvoiceIdnaming the Stornorechnung andamountCancelledequal to its gross amount. Open SEPA debits or bank transfer requests for it are cancelled, and anything you already paid on it moves to your credit balance, which AllRide applies to your next invoices. - Where you should be billed again, AllRide issues a corrected invoice (
kind: corrective) that you pay as usual.
invoices contacts, in the invoice list and through the invoice-finalised webhook. The cancelled invoice also sends invoice-voided. In your bookkeeping, post the Stornorechnung against the original invoice; together they net to zero.
Downloads. The document endpoint returns a short-lived link, not the file:
url is valid for 15 minutes: download immediately and do not store the URL; ask again when you need the file later. Compare the file’s SHA-256 with sha256. A document that is still being rendered answers 409 invoice-document-not-ready with Retry-After: 30.
Fetching invoices into your ERP with an API key
- Create an API key with the scope
view-consumer-billingin the developer dashboard. - Subscribe a webhook endpoint to
invoice-finalised, which is sent once the document exists (for Stornorechnungen too), and toinvoice-voidedto mark cancelled invoices. - On each webhook, request the document (
format=xmlfor machine processing), download it and verify the hash:
- As a fallback for missed webhooks, poll daily for invoices issued since your last run:
kind: cancellation and match them to the original through cancelsInvoiceId.
E-invoices (ZUGFeRD/XRechnung)
Coming soon. E-invoices arrive with the first issued invoice (see Invoices and Stornorechnungen). Make sure your billing account has the right
eInvoiceFormat and, for XRechnung, buyerReference (your Leitweg-ID) beforehand, so the first invoice is issued in the right format.eInvoiceFormat on your billing account:
XRechnung requires your Leitweg-ID in
buyerReference (BT-10). Without it your account is incomplete and invoicing is blocked. Every document is validated (XML schema, Schematron, PDF/A) before it is issued. Documents are in your invoiceLanguage.
Usage and pricing
GET /consumer/v1/billing/usage?serviceMonth=2026-11 (Get the usage estimate) shows what you have used in a Berlin service month (default: the current month; up to 13 months back), per provider and voucher set: quantity, voidedQuantity, unitPrice, netAmount and priced, plus totals and asOf.
- Until the month is invoiced the response is an estimate (
isEstimate: true), updated within about 2 minutes of each redemption. Once invoiced,invoiced: trueand the amounts come from the invoice. priced: falsemeans the price is still to be confirmed; such lines have no amounts.unitPriceis aUnitPrice:{value, scale: 4, label}withvaluein ten-thousandths of a euro, so1000is €0.10 and1250is €0.1250. Totals areMoneyin cents.- Unit prices are set by AllRide for you and may differ per provider and voucher set; a price of zero is possible. You see only the resolved price that applies to you, never how it was derived. The Price Terms per voucher set and your acceptance of them are in Prices and price acceptance.
GET /consumer/v1/billing/usage/lines?filter[serviceMonth]=2026-11 (List usage lines) pages the same lines; filter[serviceMonth] is required. GET /consumer/v1/billing/balance (Get the balance) shows your open, overdue and credit amounts, your standing and the next planned collection.
For files, page through List invoices or the usage lines of one service month as described in Downloading large lists.
Payments and dunning
Coming soon. The payment list, the balance and the dunning emails start with the first issued invoice. The operations below are documented ahead of their release.
GET /consumer/v1/billing/payments (List payments) lists every payment attempt with its method (sepa-debit, bank-transfer or manual), status, amount and, for failures, the failure class and the next attempt date.
Bank transfer. Invoices are paid by bank transfer when AllRide has chosen bank transfer for you (preferredPaymentMethodType is bank-transfer), when you have no active mandate, and when they are above the SEPA limit. Pay to the account in bankTransferInstructions of your billing account (also printed on the invoice) and use exactly the reference printed on the invoice, so the payment is matched automatically. AllRide applies transfers it cannot match by hand. Payment terms are 14 days unless agreed otherwise (paymentTermsDays).
Dunning (days after the due date, Berlin time):
Your billing account and balance show the current level as
standing (good-standing, reminded, dunning-1, dunning-2, delinquent). No fees or interest are added automatically, and AllRide never stops your redemptions automatically for non-payment. Emails are sent on business days only.
Billing webhooks
These webhook types are only for consumers. Subscribing an endpoint to them requiresview-consumer-billing. The payload starts with resource and id, is the consumer view of the resource and never contains payment-provider messages.
Deliveries follow the general webhook rules: at least once, unordered, signed.
Permissions
The default groups
owners, administrators and billing hold both permissions. The groups developers and viewers do not read billing data.