Card
This module contains endpoints for creating and managing virtual cards.
Each user card will be charged a monthly fee from the partner's EUR balance. The fee for one card is €0,25 per month.
List of countries for which we support virtual card generation:
- AT
- BE
- BG
- CY
- CZ
- DE
- DK
- EE
- ES
- FI
- FR
- GR
- HR
- HU
- IE
- IT
- LT
- LU
- LV
- MT
- NL
- PL
- PT
- RO
- SE
- SI
- SK
A customer can have a maximum of 10 cards at one time.
Each user has a card creation limit:
- 5 cards per 24 hours
- 10 cards per 30 days
- 20 cards per year
Create virtual card
Method: POST
Endpoint: /v1/card/virtual
Request
Request body - required
Name | Type | Required | Description |
---|---|---|---|
externalUserId | string | Yes | External user id (from your system) |
label | string | Yes | Card label, min length 3, max length 30 |
pin | string | Yes | Card pin, 4 digits |
Example body request
{
"externalUserId": "bca65c48-df49-4831-a7b2-de7903321581",
"label": "Shopping",
"pin": "1234"
}
Response
Code: 200
Description: Returns card details
Example response
{
"cardId": "7018ac87-455f-4bf4-851a-0f6bcf82b84d",
"cardNumber": "1234123412341234",
"cvv": "123",
"exp": "01/30"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: User of this country cannot have card
Example response
{
"errorCode": "P451",
"errorName": "forbidden-country-card"
}
Code: 400
Description: User suspended
Example response
{
"errorCode": "P455",
"errorName": "user-suspended"
}
Get all user cards
Method: GET
Endpoint: /v1/card/all/:externalUserId
Request
Parameters - required
Name | Type | Required | Example | Description |
---|---|---|---|---|
externalUserId | string | Yes | f9b430dc-7e1a-42a0-bbb4-9003935ea9f9 | External user id (from your system) |
Response
Code: 200
Description: Returns all user cards
Example response
{
"cards": [
{
"cardId": "7018ac87-455f-4bf4-851a-0f6bcf82b84d",
"status": "ACTIVE",
"label": "Shopping",
"cardLastDigits": "1234"
},
{
"cardId": "8c394557-ba48-4ab4-9349-84d396b4a7f7",
"status": "LOCKED_BY_USER",
"label": "Virtual",
"cardLastDigits": "4321"
}
]
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Get card details
Method: GET
Endpoint: /v1/card/details/:externalUserId/:cardId
Request
Parameters - required
Name | Type | Required | Example | Description |
---|---|---|---|---|
externalUserId | string | Yes | f9b430dc-7e1a-42a0-bbb4-9003935ea9f9 | External user id (from your system) |
cardId | string | Yes | 8c394557-ba48-4ab4-9349-84d396b4a7f7 | Card id (from our system) |
Response
Code: 200
Description: Returns card details
Example response
{
"status": "ACTIVE",
"cardNumber": "1234123412341234",
"cvv": "123",
"exp": "01/30"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}
Update card pin
Method: PATCH
Endpoint: /v1/card/pin
Request
Request body - required
Name | Type | Required | Description |
---|---|---|---|
externalUserId | string | Yes | External user id (from your system) |
cardId | string | Yes | Card id (from our system) |
pin | string | Yes | Card pin, 4 digits |
Example body request
{
"externalUserId": "bca65c48-df49-4831-a7b2-de7903321581",
"cardId": "8c394557-ba48-4ab4-9349-84d396b4a7f7",
"pin": "1234"
}
Response
Code: 200
Description: Card pin updated
Example response
{
"message": "Card pin updated successfully"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}
Block card
Method: PATCH
Endpoint: /v1/card/block
Request
Request body - required
Name | Type | Required | Description |
---|---|---|---|
externalUserId | string | Yes | External user id (from your system) |
cardId | string | Yes | Card id (from our system) |
Example body request
{
"externalUserId": "bca65c48-df49-4831-a7b2-de7903321581",
"cardId": "8c394557-ba48-4ab4-9349-84d396b4a7f7"
}
Response
Code: 200
Description: Card blocked
Example response
{
"message": "Card blocked successfully"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}
Unblock card
Method: PATCH
Endpoint: /v1/card/unblock
Request
Request body - required
Name | Type | Required | Description |
---|---|---|---|
externalUserId | string | Yes | External user id (from your system) |
cardId | string | Yes | Card id (from our system) |
Example body request
{
"externalUserId": "bca65c48-df49-4831-a7b2-de7903321581",
"cardId": "8c394557-ba48-4ab4-9349-84d396b4a7f7"
}
Response
Code: 200
Description: Card unblocked
Example response
{
"message": "Card unblocked successfully"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}
Get card limits
Method: GET
Endpoint: /v1/card/limits/:externalUserId/:cardId
Request
Parameters - required
Name | Type | Required | Example | Description |
---|---|---|---|---|
externalUserId | string | Yes | f9b430dc-7e1a-42a0-bbb4-9003935ea9f9 | External user id (from your system) |
cardId | string | Yes | 8c394557-ba48-4ab4-9349-84d396b4a7f7 | Card id (from our system) |
Response
Code: 200
Description: Returns card limits
Response body explanation
{
"monthlyTrxAll": "Total monthly limit",
"dailyTrxAll": "Total daily limit",
"monthlyTrxAtm": "ATM monthly limit",
"dailyTrxAtm": "ATM daily limit",
"monthlyTrxEcom": "Ecommerce monthly limit",
"dailyTrxEcom": "Ecommerce daily limit"
}
Example response
{
"monthlyTrxAll": 7500,
"dailyTrxAll": 1500,
"monthlyTrxAtm": 2500,
"dailyTrxAtm": 500,
"monthlyTrxEcom": 5000,
"dailyTrxEcom": 1000
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}
Update card limits
Method: PATCH
Endpoint: /v1/card/limits
Request
Request body - required
Name | Type | Required | Description |
---|---|---|---|
externalUserId | string | Yes | External user id (from your system) |
cardId | string | Yes | Card id (from our system) |
monthlyTrxAll | number | Yes | Total monthly limit |
dailyTrxAll | number | Yes | Total daily limit |
monthlyTrxAtm | number | Yes | ATM monthly limit |
dailyTrxAtm | number | Yes | ATM daily limit |
monthlyTrxEcom | number | Yes | Ecommerce monthly limit |
dailyTrxEcom | number | Yes | Ecommerce daily limit |
Example body request
{
"externalUserId": "bca65c48-df49-4831-a7b2-de7903321581",
"cardId": "8c394557-ba48-4ab4-9349-84d396b4a7f7",
"monthlyTrxAll": 7500,
"dailyTrxAll": 1500,
"monthlyTrxAtm": 2500,
"dailyTrxAtm": 500,
"monthlyTrxEcom": 5000,
"dailyTrxEcom": 1000
}
Response
Code: 200
Description: Card limits updated
Example response
{
"message": "Card limits updated successfully"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}
Delete card
Method: DELETE
Endpoint: /v1/card
Request
Request body - required
Name | Type | Required | Description |
---|---|---|---|
externalUserId | string | Yes | External user id (from your system) |
cardId | string | Yes | Card id (from our system) |
Example body request
{
"externalUserId": "bca65c48-df49-4831-a7b2-de7903321581",
"cardId": "8c394557-ba48-4ab4-9349-84d396b4a7f7"
}
Response
Code: 200
Description: Card deleted
Example response
{
"message": "Card deleted successfully"
}
Code: 400
Description: User does not exist
Example response
{
"errorCode": "P412",
"errorName": "invalid-user"
}
Code: 400
Description: Card does not exist
Example response
{
"errorCode": "P434",
"errorName": "invalid-card"
}