This guide describes how to integrate Billing Accounts into your banking solution. These are specialized internal accounts used to manage your operational funds, collect service fees, and issue refunds.
A Billing Account is a partner-owned account that enables you to:
- Collect Revenue: Pull funds from customer accounts via SEPA Direct Debit (SDD) for your own services.
- Issue Refunds: Send funds back to customers via SEPA Credit Transfer (SCT).
- Manage Operations: Move funds between your internal accounts.
Billing Accounts vs. Fee Collection
- Billing Accounts: Used for fees not related to banking services (e.g., other subscription fees, external service charges).
- Fee Collection: Used for banking-related fees (e.g., account maintenance, card issuance).
- To collect banking fees, refer to the Fee Collection Guide.
Before opening a billing account, ensure you meet these criteria:
- KYC Compliance: Solaris must identify your business entity and all legal representatives/authorized persons.
- Representation Type: All legal representatives must have their
type_of_representationset toALONE. TheJOINTtype is currently not supported for billing accounts.
Internal Use Only: Billing accounts are for Solaris partners. You cannot offer these accounts to your end customers.
Opening a billing account is a manual compliance process. It cannot be triggered via the API.
- Initiation: Contact your Partner Manager to request a billing account.
- Documentation: Solaris will send you a document package, including:
- Account Opening Form
- FATCA and CRS Consent Form
- Terms and Conditions (T&Cs)
- Submission: Complete, sign, and return all documents.
- Activation: Once approved, Solaris will provide:
- Production Credentials: A specific set of API credentials for the billing account.
- Account Details: The
account_idandibanof your new billing account.
Once active, you can interact with the billing account using standard SEPA endpoints.
To pull funds from a customer's account (e.g., for a monthly subscription) into your billing account, initiate a SEPA Direct Debit.
Requirements:
- T&Cs: Your customer terms must explicitly state these fees.
- Mandate: You must hold a valid SDD Mandate signed by the customer.
Call the endpoint with your billing account's account_id.
// POST /v1/accounts/{account_id}/transactions/sepa_direct_debit
{
"amount": {
"value": 1000,
"unit": "cents",
"currency": "EUR"
},
"mandate": {
"reference": "MANDATE-REF-123",
"creditor_identifier": "DE98ZZZ09999999999",
"scheme": "CORE",
"sequence_type": "RECURRING",
"signature_date": "2023-01-15T10:00:00.000Z",
"debtor_name": "Hans Mustermann",
"debtor_iban": "DE29300400000180478000",
"debtor_bic": "COBADEFFXXX"
},
"description": "SaaS Subscription Jan 2025",
"collection_date": "2025-01-20T00:00:00.000Z",
"end_to_end_id": "SUB-JAN-25"
}To send funds from your billing account to a customer (or another account), initiate a SEPA Credit Transfer.
// POST /v1/accounts/{account_id}/transactions/sepa_credit_transfer
{
"recipient_name": "Hans Mustermann",
"recipient_iban": "DE32110101001000000029",
"recipient_bic": "COBADEFFXXX",
"amount": {
"value": 1000,
"currency": "EUR",
"unit": "cents"
},
"description": "Refund for Order #992",
"end_to_end_id": "REFUND-992"
}You must implement these endpoints to monitor funds, reconcile transactions, and generate statements for your accounting.
Track the money moving in and out of the account.
- Webhook: Subscribe to the
BOOKINGevent for real-time notifications of all incoming and outgoing movements. - Endpoints:
GET Balance
Check available funds before issuing refunds.
GET Bookings
Retrieve the history of executed transactions.
GET Account Details
Retrieve IBAN and BIC details.
Webhook Reference
Subscribe to the BOOKING event.
Billing accounts support two types of statements. Both follow a two-step process:
- Call POST: Generates the statement ID and snapshots the metadata (Balances, Recipient Info).
- Call GET: Retrieves the actual list of bookings associated with that statement ID.
Use this for internal reconciliation over flexible time periods (e.g., weekly or monthly).
- POST Create Bank Statement (Define
start_dateandend_date) - GET Bookings for Statement (Use the
idfrom step 1)
Use this for formal accounting. This generates the legally binding Rechnungsabschluss with fixed periods (e.g., Quarterly).
- POST Create Statement of Account (Define
year,interval,period) - GET Bookings for Statement (Use the
idfrom step 1)