Prepaid cards for businesses
This guide contains all the relevant information about Solaris' prepaid cards product, including key concepts and the necessary endpoints and webhooks you must integrate in your solution to offer prepaid cards to your customers.
What's a prepaid card?
With prepaid cards, customers can make online purchases and card transactions the same as they would with a regular debit or credit card. However, prepaid cards have the following features and limitations:
- Unlike credit cards, prepaid cards do not come with a line of credit. You must load the card with money beforehand and the money will act as your spending limit. In other words, you can only spend what you've already loaded onto the card.
- Prepaid cards usually come with certain restrictions, such as a monthly spending limit or a restriction on the services for which they can be used.
- A prepaid card is a great option if your customers want to have the flexibility of card payments without applying for a credit line or opening a full bank account.
Product overview
Solaris offers prepaid cards for retail and business customers in Germany and other countries in the European Economic Area (EEA). Solaris' prepaid cards can be tailored to a variety of use cases.
note
This guide explains the prepaid cards integration process for the specific use case of offering employee benefits through prepaid cards.
E-money overview
Solaris issues prepaid cards on the basis of e-money. E-money is a digital medium of monetary exchange (i.e., the electronic equivalent of cash) that is represented on an electronic device. This could be a software system, such as a banking system or a payment service provider like PayPal, or a hardware device, such as a magnetic chip card or a smartphone (using an app).
The EMD2 directive regulates the usage of e-money in Europe.
How does it work?
A business can offer employee benefits using Solaris' prepaid cards. However, the business must first meet the legal and regulatory onboarding criteria before using this feature. After successful onboarding, the business can issue prepaid cards to its employees.
Solaris offers two different product variations for this feature:
- With full KYC of the cardholder
Solaris will identify the customer using a KYC method suitable for your use case. In this use case, the prepaid card can be issued on e-money or fiat money basis.
- Without KYC of the cardholder
The cardholder (e.g., employee) will not go through the KYC process. In this use case, the prepaid card can only be issued on e-money basis. Moreover, additional restrictions will apply to the usage of the prepaid card.
Customer vs. cardholder
In the context of prepaid cards for businesses, the customer could be different from the cardholder. For example, the customer is the owner of the funds (e.g., the business); whereas the cardholder can access and use the funds allocated to them through the usage of their issued prepaid card.
Prerequisites
Before integrating Solaris' prepaid cards product, the business must have completed the business onboarding process. For instructions, check the related guide.
attention
- Please note that at least 5 employees (this number includes also legal representatives) related to the business must be fully identified using a suitable KYC method to fulfill the minimum legal requirements.
- If the number of legal representatives identified in the context of business onboarding is less than 5, the business must identify other employees.
Integration overview
You can integrate Solaris' prepaid cards for businesses product by completing the steps explained in the following sections. Here's an overview of these steps:
Initial Set-up
- Before starting, make sure you have the account IDs of all the technical accounts that Solaris team will open for the business:
EMONEY_UNDERLYING_EUR
andEMONEY_PREPAID_POOLING
. Details of these accounts are explained here. - Ensure that at least 5 employees are fully identified using a suitable KYC method.
- Collect the required data points and create person resources for all employees (e.g., cardholders without KYC) entitled to a prepaid card as explained in Step 1.
IBAN and accounts setup
- Create a virtual IBAN for
EMONEY_UNDERLYING_EUR
account as explained in Step 2. - Create an e-money parking account as explained in Step 3.
- Create an e-money prepaid account for each cardholder as explained in Step 4.
Card creation and servicing
- Create a card for each cardholder as explained in Step 5.
- Integrate all relevant endpoints related to cards usage and servicing as explained in the related guide.
Transactions and card top-ups
Integrate all related endpoints in Step 6 to be able to make transfers between the different accounts and top up the prepaid cards.
Account setup for prepaid cards
A prepaid cards solution involves the creation of different types of Solaris accounts, which interact with one another. Some of these accounts you must create yourself during your technical integration; whereas others accounts are created and managed by the Solaris team, who will share the relevant account IDs with you.
The following account types are created for prepaid cards:
EMONEY_UNDERLYING_EUR
- A technical account that Solaris will open for the business and share the
account_id
with you. The purpose of this account is to receive the funds in fiat money (e.g., EUR) from a standard checking account via SEPA Credit Transfers (SCT). Afterward, the funds are converted to e-money and transferred to theEMONEY_PREPAID_POOLING
account. - The business must issue a virtual IBAN on this account as described in Step 2.
- Additionally, the business must ensure that incoming SCTs to this account will trigger automatic and immediate distributions of funds via payins to the respective accounts:
EMONEY_PREPAID_POOLING
and individualEMONEY_PREPAID
accounts. - The currency of this account is
EUR
.
EMONEY_PREPAID_POOLING
- A technical account that Solaris will open for the business and share the
account_id
with you. This is an e-money account whose purpose is to convert the value of the fiat funds in theEMONEY_UNDERLYING_EUR
account into e-money. - The limit of this account will always equal the balance available in the
EMONEY_UNDERLYING_EUR
account at the end of each settlement day. For example, if the balance in theEMONEY_UNDERLYING_EUR
account is 10,000 EUR, then the limit of theEMONEY_PREPAID_POOLING
will be - 10,000 EUR in e-money. - Additionally, this is the account from which the business will top up the individual prepaid accounts.
- The currency of this account is
EMONEY_EUR
.
EMONEY_PREPAID
- This is an e-money account tied to an individual prepaid card. The business will top up this account from the
EMONEY_PREPAID_POOLING
account and set the relevant restrictions and rules for usage on eachEMONEY_PREPAID
account. - The business must open a prepaid account for each cardholder entitled to a prepaid card.
- The currency of this account is
EMONEY_EUR
.
EMONEY_PARKING
- This is an account that the business must create and use to transfer any additional funds that have not been distributed from the
EMONEY_PREPAID_POOLING
account to the individualEMONEY_PREPAID
accounts. - The currency of this account is
EMONEY_EUR
.
EMONEY_VISA_SETTLEMENT
- This is an technical account that Solaris will create. This account will be used to settle the used balance between all the prepaid accounts, the main account
EMONEY_UNDERLYING_EUR
, and the card scheme. - Managed and maintained by Solaris for the settlement.
note
The cardholders only have access to their own EMONEY_PREPAID
account.
Step 1: Create person resources for employees
For each employee (e.g., cardholder) that will be issued a prepaid card, you must collect the required data points and create a person resource using the following endpoint.
Additionally, please note that at least 5 employees (including legal representatives) must be fully identified. If the number of legal representatives identified in the context of business onboarding is less than 5, the business must identify other employees.
POST Create person
This endpoint creates a person resource for a cardholder. You must collect the mandatory data points from your customer in the sign-up flow and pass them to Solaris in the request body of this endpoint.
Required data points for a cardholder without KYC
salutation
(Technical only, placeholder data can be used)first_name
last_name
birth_date
(Technical only, placeholder data can be used)birth_city
(Technical only, placeholder data can be used)
Required data points for a cardholder with KYC
salutation
first_name
last_name
address
email
fatca_relevant
fatca_crs_confirmed_at
Request URL
POST /v1/persons
{
"salutation": "MS",
"first_name": "Jane",
"last_name": "Doe",
"birth_date": "1992-12-11",
"birth_city": "Berlin"
}
Response example
The API returns a person object with a unique ID for the person (i.e., the person_id
). You will need this id
to append the person resource with additional information in the remaining steps of this guide.
200 Created
{
"id": "7cf09c3c5547b974a664201f24b454eecper",
"salutation": "MS",
"title": null,
"first_name": "Jane",
"last_name": "Doe",
"address": {
"line_1": null,
"line_2": null,
"postal_code": null,
"city": null,
"country": null,
"state": null
},
"contact_address": {
"line_1": null,
"line_2": null,
"postal_code": null,
"city": null,
"country": null,
"state": null
},
"email": null,
"mobile_number": null,
"birth_name": null,
"birth_date": "1992-12-11",
"birth_city": "Berlin",
"birth_country": null,
"nationality": null,
"employment_status": null,
"job_title": null,
"tax_information": {
"tax_assessment": null,
"marital_status": null
},
"fatca_relevant": null,
"fatca_crs_confirmed_at": null,
"business_purpose": null,
"industry": null,
"industry_key": null,
"terms_conditions_signed_at": null,
"own_economic_interest_signed_at": null,
"aml_follow_up_date": "2029-01-22",
"aml_confirmed_on": "2022-07-22",
"flagged_by_compliance": false,
"expected_monthly_revenue_cents": null,
"vat_number": null,
"website_social_media": null,
"business_trading_name": null,
"nace_code": null,
"business_address_line_1": null,
"business_address_line_2": null,
"business_postal_code": null,
"business_city": null,
"business_country": null,
"business_state": null,
"screening_progress": "NOT_SCREENED",
"risk_classification_status": "NOT_SCORED",
"customer_vetting_status": "NOT_VETTED",
"annual_income_range": null,
"data_terms_signed_at": null,
"branch": null,
"birth_province": null,
"birth_post_code": null,
"socioprofessional_category": null,
"purpose_of_account_opening": null,
"main_income_source": null,
"work_country": null,
"work_province": null,
"self_declared_as_pep": null,
"international_operativity_expectation": [],
"registration_number": null,
"legitimation_valid_until": null
}
Click here to view the full API reference
Step 2: Create virtual IBAN for the business
After receiving the account_id
of the relevant technical accounts from Solaris, you must create a virtual IBAN for the EMONEY_UNDERLYING_EUR
account. You'll then use this virtual IBAN to transfer funds from the business' main account to the EMONEY_UNDERLYING_EUR
account and then distribute the funds to the respective accounts: EMONEY_PREPAID_POOLING
and EMONEY_PREPAID
accounts.
Request example
// POST /v1/accounts/{account_id}/virtual_ibans
{
"customer_id": "12312312cus",
"reference": "f3757e7e-57ec-4e07-a3f1-7a5d1e412be7",
"description": "Example description"
}
Click here to view the full API reference.
For more details on virtual IBAN management, check the related guide.
Step 3: Create an e-money parking account
In this step, you must open an e-money parking account for the business. This account will be used to transfer any additional funds that have not been distributed to the prepaid cardholders. The currency of this account is EMONEY_EUR
.
POST Create a parking account
Request example
// POST v1/businesses/{business_id}/accounts
{
"type": "EMONEY_PARKING"
}
Click here to view the full API reference.
Step 4: Create employee prepaid account
For each employee, you must create a dedicated prepaid account and set all the relevant limits and restrictions. You must also ensure the proper distribution of funds from the EMONEY_PREPAID_POOLING
account to all the EMONEY_PREPAID
accounts. The balance and bookings of this account is displayed to the employee.
attention
- This account comes with very limited functionalities. The cardholder can only use the account via the associated prepaid card and can only use the funds allocated to them within the limits and restrictions of the prepaid card. Customers may not use the cards to withdraw cash or transfer funds to other accounts.
- The employee can only receive SCTs from the business' pooling account on this account. No SDDs or SCTs from other accounts are allowed.
Account opening process
To open an account for your customer, visit the following links to find more information about the account opening process:
Step 5: Create prepaid cards
In this step, you must create a prepaid card for each employee. The employee must have a person
resource and a prepaid account created as explained above. The card creation and management process is similar to a standard debit card.
POST Create a prepaid card
Call this endpoint to create a prepaid card for the employee. Note that you must add the employee's person_id
and the account_id
returned in the previous step in the request URL.
The card can either by physical or virtual. You can specify the card type as:
EMONEY_VISA_PREPAID
EMONEY_VISA_PREPAID_VIRTUAL
Request example
POST v1/persons/{person_id}/accounts/{account_id}/cards
{
"line_1": "MICHAEL WITHSTATICTOKEN/MUSTERMANN",
"type": "EMONEY_VISA_PREPAID",
"business_id": "52e6a9b8a559d842ed7d8901b0e1bf4bcbiz"
}
Click here to view the full API reference.
info
Managing and servicing prepaid cards is similar to a standard debit card. Please check the relevant features related to cards in the card section.
Step 6: Card top-ups and account transactions
After creating all the relevant accounts and issuing all prepaid cards to the relevant employees, you must integrate the following endpoints in your solution to enable transfers between accounts and card top-ups.
POST Create e-money payin
This endpoint issues a payin transfer from the business' pooling account to the employee's prepaid account. Please note the following properties:
account_id
= The ID of theEMONEY_PREPAID_POOLING
account.recipient_iban
= The IBAN of the employee'EMONEY_PREPAID
account.
note
The value 1000
would represent 10 euro in e-money.
// POST /v1/accounts/{account_id}/transactions/intra_emoney_payin
{
"amount": {
"value": 1000,
"currency": "EMONEY_EUR"
},
"recipient_iban": "DE32110101001000000029",
"reference": "73a46685-8ac6-4fff-9d36-55288523d879",
"description": "TopUp of Employee account"
}
Click here to view the full API reference.
POST Create e-money payin transfer
You can use the following endpoint to transfer funds between the EMONEY_PREPAID_POOLING
and the EMONEY_PARKING
accounts.
note
The value 1000
would represent 10 euro in e-money.
// POST /v1/accounts/{account_id}/transactions/intra_emoney_transfer
{
"amount": {
"value": 1000,
"currency": "EMONEY_EUR"
},
"recipient_iban": "DE32110101001000000029",
"reference": "73a46685-8ac6-4fff-9d36-55288523d879",
"description": "Transfer of Emoney"
}
Click here to view the full API reference.
POST Create e-money payout transfer
This endpoint sends an e-money payout transfer from an EMONEY_PREPAID
account to the EMONEY_PREPAID_POOLING
account. You can only use a payout transfer in an exit scenario when a customer terminates a contract and the funds must be returned to the main account.
Please note the following properties:
account_id
= The ID of the employee'sEMONEY_PREPAID
account.recipient_iban
= The IBAN of the business'EMONEY_PREPAID_POOLING
account.
note
The value 1000
would represent 10 euro in e-money.
// POST /v1/accounts/{account_id}/transactions/intra_emoney_payout
{
"amount": {
"value": 1000,
"currency": "EMONEY_EUR"
},
"recipient_iban": "DE32110101001000000029",
"reference": "73a46685-8ac6-4fff-9d36-55288523d879",
"description": "Removing money from employee account"
}
Click here to view the full API reference.
What's next?
Congratulations! You've successfully integrated Solaris' Prepaid Cards product.
Check the following mandatory features section to find the links to the additional features you must implement in your solution. Additionally, the appendix section includes additional information on enums and testing data.
Mandatory features
You must implement the following additional mandatory features in your solution.
Know Your Customer (KYC)
Compliance requirements
- Terms & Conditions Consent Log
- Seizures
- GDPR deletion requests
- Account closure
- Postbox
- AML update process
- Questions and Answers
Authentication & authorization
Digital Banking & Cards