Banking API v.1
The Sandbox gives you an opportunity to test some basic card management functions of SmartVista suite - register customers, create accounts, issue virtual cards, set card limits, transfer funds, etc.
/cabinet/
You will get access to all of the API's and Merchant Portal.
Get started
Use Sandbox to try basic card management functions, such as: registering cardholders, issuing cards, setting card limits, transferring funds, etc.
Before you start using Sandbox, you need to create a Sandbox account and obtain an API security Token.
An API security Token gives authorization access to Sandbox API.
API Reference
There are two versions of the API. API v.2 is RESTful API while API v.1 is more like JSON over HTTP. Although both of them can be described in Open API specification. You can find full technical descriptions here:
Postman collection example
You can download Postman collection of API requests to test some basic card management functions of SmartVista suite.
Download Postman collection for Use Case
Common characteristics
All requests are HTTP POST requests. Content type for both requests and responses is application
\ json
.
Banking API v.1 Use Cases
You can download Postman collection of API requests to test some basic card management functions of Sandbox.
Download Postman collection for Use Case
The first steps in the banking use case should be:
- Register a new customer with
registerCustomer
request. This request also creates an account for the customer. You can create as many customers as you want. But only one account per customer can be created in the Sandbox - this restriction is added to simplify the Sandbox logic. In a real project you would be able to create as many accounts per customer as required for your business. - Issue a new virtual card with
createVirtualCard
for a customer's accounts. You can issue as many cards as you want. The Sandbox cards are issued in active state and are instantly ready for use.
Now you can test the following features (in no particular order):
- block and unblock the issued cards with
blockCard
andvalidateCard
request; - deposit funds on issued cards with
creditCard
request; - make P2P card transfers with
p2pTransfer
request (create at least two cards to transfer funds between them); - manage card limits with
getCardLimits
andchangeCardLimit
requests; - get card data with
getCardData
request; - get card transaction history with
getTransactions
request (generate some transactions first).
Please check the information for each request below, including examples with short descriptions of what should be changed to make these requests yourself. Use links to detailed documentation for additional information.
- registerCustomer
- createVirtualCard
- getCardLimits
- changeCardLimits
- getCardData
- blockCard
- validateCard
- creditCard
- p2pTransfer
- getTransactions
registerCustomer
Registers a new customer in SmartVista and creates an account. You can create as many customers as you want. But only one account per customer can be created in the Sandbox — this restriction is added to simplify the Sandbox logic. In a real project you would be able to create as many accounts per customer as required for your business.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | productName |
string | Customer template ID to be used for customer creation. The Sandbox has only one customer template and this value should always be "CRCU1001" for the Sandbox customers. |
Mandatory | parameters |
Object | Parameter list. The exact list depends on the customer creation template for a specific project. We have created one for the Sandbox and you can see the required parameters below this table |
Mandatory | name |
string | Identify a parameter in the customer template for which the corresponding value is set. |
Mandatory | value |
string | The value to be set for the specific parameter. |
The following parameters with their values should be transferred for a customer creation in the Sandbox:
-
institutionId
The value is displayed in your sandbox account. -
agent_number
Same asinstitutionId
. -
customer_number
Any text. Has to be unique in your sandbox project. -
product_id
The value is displayed in your sandbox account. -
start_date
Any date in the past. YYYY-MM-DD format. -
service_id_acc
The value is displayed in your sandbox account. -
surname
firstName
secondName
email
mobile_phone
region
city
street
house
apartment
postal_code
Customer data parameters. Can be any text. -
country_code
ISO 3166-1 numeric country code.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/registerCustomer \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"productName": "CRCU1001",
"parameters": [
{
"name": "institutionId",
"value": "3006"
},
{
"name": "agent_number",
"value": "3006"
},
{
"name": "customer_number",
"value": "3006P_0000003"
},
{
"name": "product_id",
"value": "70000304"
},
{
"name": "start_date",
"value": "2021-09-06"
},
{
"name": "service_id_acc",
"value": "70000305"
},
{
"name": "surname",
"value": "Smith"
},
{
"name": "firstName",
"value": "John"
},
{
"name": "secondName",
"value": "A."
},
{
"name": "email",
"value": "johnsmith@email.com"
},
{
"name": "mobile_phone",
"value": "319220977338"
},
{
"name": "country_code",
"value": "528"
},
{
"name": "region",
"value": "BJ"
},
{
"name": "city",
"value": "Utrecht"
},
{
"name": "street",
"value": "Papendorpseweg"
},
{
"name": "house",
"value": "99"
},
{
"name": "apartament",
"value": "1"
},
{
"name": "postal_code",
"value": "3528"
}
]
}'
/v1/apigate/ws/rest/registerCustomer
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | customerNumber |
string | Client number. You will receive the one you send in the request as the Sandbox configured to set the requested number to a created customer. |
Mandatory | accountNumber |
string | Account number. The Sandbox returns the account number it creates for the Customer. |
Response example
{
"customerNumber": "3006P_0000003",
"accountNumber": "3006978700000000108"
}
createVirtualCard
Creates a virtual card for a registered customer. Use registerCustomer
to create a customer and an account if you haven't done it yet.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Primary card identification parameters. There are many card attributes and their combinations to identify a card, supported by SmartVista, but the Sandbox uses the most simple one - the card number. All other options are provided as examples. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. This is the way we will use in all Sandbox's requests to identify a card. For this request always use "visaBin0000000000" card number, where [visaBin] is the number from the e-mail you got after the registration. For the all other requests use card number you will get after creating a card with this request. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. It is commonly used as one of the possible card identification params, but not in this Sandbox project to avoid keys management. Do not use it here. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Common way to identify the card combined with a phone number or some other card data, but not the one used in the Sandbox. Do not use it here. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Common way to identify the card combined with a phone number, but not the one used in the Sandbox. Do not use it here. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Frequently used with some other card attributes. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number. Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Frequently used with some other card attributes. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Mandatory | virtualCardIdentification |
Object | Virtual card parameters. expDate and productType are required. |
Mandatory | virtualCardIdentification.expDate
|
string | Card expiration date. Any future date in "YYYYMM" format. |
Mandatory | virtualCardIdentification.productType
|
string | Product type. Identifies the card product for a card. In the Sandbox should always be constant number '16' as we set up a one product for you. |
Optional | virtualCardIdentification.cardNumber
|
string | Card number. Not for the Sandbox. |
Optional | virtualCardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | virtualCardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | virtualCardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | virtualCardIdentification.cvv2
|
string | CVV2/CVC2. Not for the Sandbox. |
Mandatory | amount |
integer | Default limit for newly created virtual cards. Should be constant number '0' in the Sandbox. |
Mandatory | currency |
integer | Currency. ISO 4217 numeric currency code. Use '978' for the Sandbox. |
Mandatory | accountNumber |
string | Account number for primary card identification. Use the account number you got from registerCustomer(). |
Optional | deliveryMethod |
string | Virtual card parameters delivery method. Possible values: [WS , HALF_AND_HALF ] . WS - all parameters delivered in Web Service response. HALF_AND_HALF - some parameters delivered in Web Service response, some in SMS. For HALF_AND_HALF , the Web Service response will contain masked card number (for example **** 1111 1111 ****) and the SMS will contain the CVV2 and other half of the masked card number (for example 1111 **** **** 1111). Use 'WS' value for the Sandbox. |
Optional | personalData |
Object | Card owner personal data. Not for the Sandbox. |
Optional | personalData.firstName
|
string | Not for the Sandbox. |
Optional | personalData.lastName
|
string | Not for the Sandbox. |
Optional | cardAcceptorParameters |
Object | Terminal parameters. Not for the Sandbox. |
Optional | cardAcceptorParameters.terminalIdentification
|
string | Terminal id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantIdentification
|
string | Merchant id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantType
|
string | Merchant category code. Not for the Sandbox. |
Optional | cardAcceptorParameters.nameAndLocation
|
string | Terminal location address. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/createVirtualCard \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardNumber": "4140050000000000",
"phoneNumber": "319220977337",
"customerId": "5570_P018"
},
"virtualCardIdentification": {
"expDate": 202612,
"productType": "5C"
},
"amount": 0,
"currency": 978,
"accountNumber": "5570978700000006484",
"deliveryMethod": "WS"
}'
/v1/apigate/ws/rest/createVirtualCard
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | virtualCardIdentification |
Object | Virtual card Parameters. |
Optional | virtualCardIdentification.cardNumber
|
string | Card number. Here you will get the card number of the created card in the Sandbox. Save it for all further operations with the created card. |
Optional | virtualCardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | virtualCardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Mandatory | virtualCardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Mandatory | virtualCardIdentification.productType
|
string | Product type. Not for the Sandbox. |
Optional | virtualCardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | virtualCardIdentification.cvv2
|
string | CVV2/CVC2. Not for the Sandbox. |
Response example
{
"virtualCardIdentification": {
"cardNumber": "4140050090452283",
"cardId": "100000245262",
"expDate": "202612",
"productType": "5C"
}
}
getCardLimits
Get limits for a specific card. The limits set is defined for the card product and is predefined in the Sandbox. Initially the limits for a specific card are inherited from the product setting. You can change the limit values for a specific card with changeCardLimits
.
The following limits are available (cycle types are specified for the default limit setting and can be changed with changeCardLimit
request):
- LMTP0111 - MOTO\ECOM limit (amount) month.
- LMTP0112 - MOTO\ECOM limit (amount) day.
- LMTP0108 - purchase limit (amount) month.
- LMTP0110 - purchase limit (amount) day.
- LMTP0109 - cash disbursmenent limit (amount) month.
- LMTP0107 - cash disbursmenent limit (amount) day. You can test this limit in the Sandbox with p2pTransfer request.
The following limits cycleType are available:
- 0 - day. A 1-day cycle starts every day at 00:00:00.
- 1 - week. A 1 week cycle starts every 7 days at 00:00:00.
- 2 - calendar week. A cycle of 1 calendar week starts every Monday at 00:00:00.
- 3 - month. A 1-month cycle starts on the same day of each month at the same time.
- 4 - calendar month. A cycle of 1 calendar month starts at 00:00:00 on the first day of each month.
- 5 - quarter (3 months). A cycle of 1 quarter starts on the same day every 3 months at the same time.
- 6 - calendar quarter. A cycle of 1 calendar quarter starts on January 1, April 1, July 1, October 1 at 00:00:00.
- 7 - year. A cycle of 1 year begins on the same day and at the same time exactly one year later.
- 8 - calendar year. A cycle of 1 calendar year begins on January 1st at 00:00:00.
- 11 - hour. A one-hour cycle starts at the same minute and second of every hour (i.e. every 3600 seconds).
- 12 - calendar hour. The calendar hour starts at 0 minutes and 0 seconds of each hour and ends at 59 minutes 59 seconds of the same hour.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getCardLimits \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardId" : 100000000873
}
}'
/v1/apigate/ws/rest/getCardLimits
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | limits |
Object | List of card limits. |
Mandatory | limits.name
|
string | Limit name. |
Optional | limits.startDate
|
DateTime | Limit start date. Not for the Sandbox. |
Optional | limits.endDate
|
DateTime | Limit end date. Not for the Sandbox. |
Optional | limits.value
|
long | Limit value. |
Optional | limits.cycleType
|
integer | Cycle type. There several possible types of limits cycles - daily, monthly etc. |
Optional | limits.cycleLength
|
integer | Cycle length. For example, value 2 for monthly limit types means 2 months. |
Optional | limits.currency
|
integer | Currency. |
Optional | limits.currentValue
|
long | Current limit value. |
Mandatory | limits.limitExceptions
|
Object | Limit exception list. Not for the Sandbox. |
Response example
{
"limits": [
{
"name": "LMTP0111",
"value": 999999999999,
"cycleType": 0,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": []
},
{
"name": "LMTP0112",
"value": 999999999999,
"cycleType": 3,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": []
},
{
"name": "LMTP0108",
"value": 999999999999,
"cycleType": 3,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": []
},
{
"name": "LMTP0110",
"value": 999999999999,
"cycleType": 3,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": []
},
{
"name": "LMTP0109",
"value": 999999999999,
"cycleType": 0,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": []
},
{
"name": "LMTP0107",
"value": 999999999999,
"cycleType": 0,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": []
}
]
}
changeCardLimit
Change the limit values for a specific card. The limits set is defined for the card product and is predefined in the Sandbox. Initially the limits for a specific card are inherited from the product setting. Use getCardLimits
to get limits names.
The following limits are available (cycle types are specified for the default limit setting and can be changed with changeCardLimit
request):
- LMTP0111 - MOTO\ECOM limit (amount) month.
- LMTP0112 - MOTO\ECOM limit (amount) day.
- LMTP0108 - purchase limit (amount) month.
- LMTP0110 - purchase limit (amount) day.
- LMTP0109 - cash disbursmenent limit (amount) month.
- LMTP0107 - cash disbursmenent limit (amount) day. You can test this limit in the Sandbox with p2pTransfer request.
The following limits cycleType
are available:
- 0 - day. A 1-day cycle starts every day at 00:00:00.
- 1 - week. A 1 week cycle starts every 7 days at 00:00:00.
- 2 - calendar week. A cycle of 1 calendar week starts every Monday at 00:00:00.
- 3 - month. A 1-month cycle starts on the same day of each month at the same time.
- 4 - calendar month. A cycle of 1 calendar month starts at 00:00:00 on the first day of each month.
- 5 - quarter (3 months). A cycle of 1 quarter starts on the same day every 3 months at the same time.
- 6 - calendar quarter. A cycle of 1 calendar quarter starts on January 1, April 1, July 1, October 1 at 00:00:00.
- 7 - year. A cycle of 1 year begins on the same day and at the same time exactly one year later.
- 8 - calendar year. A cycle of 1 calendar year begins on January 1st at 00:00:00.
- 11 - hour. A one-hour cycle starts at the same minute and second of every hour (i.e. every 3600 seconds).
- 12 - calendar hour. The calendar hour starts at 0 minutes and 0 seconds of each hour and ends at 59 minutes 59 seconds of the same hour.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number. Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox.Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Mandatory | limit |
Object | Limit parameters. |
Mandatory | limit.name
|
string | Limit name. It is predefined in the Sandbox. You can get the limits list with getCardLimits() and get limit names from its response. |
Optional | limit.startDate
|
DateTime | Limit start date. Not for the Sandbox. |
Optional | limit.endDate
|
DateTime | Limit end date. Not for the Sandbox. |
Optional | limit.value
|
long | Limit value. |
Optional | limit.cycleType
|
integer | Cycle type. |
Optional | limit.cycleLength
|
integer | Cycle length. |
Optional | limit.currency
|
integer | Currency. Not for the Sandbox. |
Optional | limit.currentValue
|
long | Current limit value. Not for the Sandbox. |
Optional | cardAcceptorParameters |
Object | Terminal parameters. Not for the Sandbox. |
Optional | cardAcceptorParameters.terminalIdentification
|
string | Terminal id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantIdentification
|
string | Merchant id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantType
|
string | Merchant category code. Not for the Sandbox. |
Optional | cardAcceptorParameters.nameAndLocation
|
string | Terminal location address. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/changeCardLimit \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardId": "100000245259"
},
"limit": {
"name": "LMTP0112",
"value": 13000000,
"cycleType": 4,
"cycleLength": 1
}
}'
/v1/apigate/ws/rest/changeCardLimit
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. 00 is for success. |
Response example
{
"responseCode": "00",
"processingCode": "710000",
"systemTraceAuditNumber": 609644,
"localTransactionDate": "2024-10-23T08:23:28"
}
getCardData
Returns you the data about the cards you created. Can be used after creating a card with createVirtualCard
.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. cardNumber is required. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Optional | rsaPublicKey |
ByteArray | Open key for card number encryption in return message. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getCardData \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardId": "100000245259"
}
}'
/v1/apigate/ws/rest/getCardData
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardData |
Object | Card parameters. |
Optional | cardData.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardData.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Mandatory | cardData.cardNumber
|
string | Card number. |
Optional | cardData.expiryDate
|
string | Card expiration date. Comes in YYYYMM format. |
Optional | cardData.formattedExpiryDate
|
string | User-formatted card expiration date. Not for the Sandbox. |
Optional | cardData.cardId
|
string | Card id. This is internal SmartVista card ID that can be used to identify the card for non PCI DSS compliant apps. |
Optional | cardData.hotCardStatus
|
integer | Card status. |
Optional | cardData.cardTypeName
|
string | Card type. |
Optional | cardData.embossedName
|
string | Embossed name. Would have a real value only for embossed plastic cards and not for virtual cards in the Sanbox. |
Optional | cardData.customerId
|
string | Client id. |
Optional | cardData.customerName
|
string | Client name. Not for the Sandbox. |
Optional | cardData.personId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardData.pinDenialCounter
|
integer | Incorrect PIN attempts count |
Optional | cardData.plasticNumber
|
integer | Plastic number. Not for the Sandbox. |
Optional | cardData.hotCardStatusDescription
|
string | Card status description. |
Optional | cardData.cardIsPrimary
|
boolean | Primary card flag. Always false for the Sandbox. |
Optional | cardData.cardBindToCustomer
|
boolean | Card binded to client flag. Always false for the Sandbox. |
Optional | cardData.customerIsCardholder
|
boolean | Is client a cardholder flag. Always false for the Sandbox. |
Optional | cardData.cardContractId
|
string | Card contract id. Not for the Sandbox. |
Optional | cardData.cardPlasticId
|
string | Plastic type id. Not for the Sandbox. |
Optional | cardData.cardPlasticDescription
|
string | Plastic type description. Not for the Sandbox. |
Optional | cardData.memorableWord
|
string | Secret word. Not for the Sandbox. |
Optional | cardData.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardData.lastWrongPinDate
|
DateTime | Last incorrect PIN attempt date/time. Not for the Sandbox. |
Optional | cardData.cardCreationDate
|
DateTime | Card issue date. Not for the Sandbox. |
Optional | cardData.cardBlockingDate
|
DateTime | Card lock date/time. Not for the Sandbox. |
Optional | cardData.directDebitAccount
|
string | Account used for auto-payments. Not for the Sandbox. |
Optional | cardData.cardholderMobilePhoneNumber
|
string | Cardholder's phone number. Not for the Sandbox. |
Optional | cardData.accounts
|
Object | List of accounts for the card. There should be only one account in the Sandbox. |
Mandatory | accounts.number
|
string | Account number. |
Mandatory | accounts.currency
|
integer | Account currency |
Optional | accounts.currencyAlphaCode
|
string | Account currency letter code. |
Mandatory | accounts.balance
|
integer | Account balance. |
Optional | accounts.creditLimit
|
integer | Credit limit. |
Mandatory | accounts.customerId
|
string | Client id. |
Optional | accounts.defaultAccount
|
boolean | Default account indicator. Always true for the Sandbox. |
Response example
{
"cardData": {
"cardNumber": "4140050021658271",
"expiryDate": "202301",
"cardId": "100000000873",
"hotCardStatus": 0,
"cardTypeName": "VISA - PLUS",
"embossedName": "GENERAL POOL",
"customerId": "3006P_0000003",
"personId": "3006P_0000002",
"pinDenialCounter": 0,
"plasticNumber": 1,
"hotCardStatusDescription": "VALID CARD",
"cardIsPrimary": false,
"cardBindToCustomer": false,
"customerIsCardholder": false,
"accounts": [
{
"number": "3006978700000000108",
"accountType": 1,
"currency": 978,
"currencyAlphaCode": "EUR",
"balance": 0,
"creditLimit": 0,
"customerId": "3006P_0000003",
"defaultAccount": true
}
],
"customParameters": []
}
}
blockCard
Block card. Within the Sandbox a card has to be in active status (status code 0
) to be blocked. You can get a card status code with getCardData
.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. |
Mandatory | hotCardStatus |
integer | Card status. Should be 6 for the Sandbox. This means the card is blocked and should be captured on usage attempt. |
Optional | cardAcceptorParameters |
Object | Terminal parameters. Not for the Sandbox. |
Optional | cardAcceptorParameters.terminalIdentification
|
string | Terminal id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantIdentification
|
string | Merchant id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantType
|
string | Merchant category code. Not for the Sandbox. |
Optional | cardAcceptorParameters.nameAndLocation
|
string | Terminal location address. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/blockCard \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardNumber": "100000245259"
},
"hotCardStatus": 6
}'
/v1/apigate/ws/rest/blockCard
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVisa. 00 is for success. |
Response example
{
"responseCode": "00",
"processingCode": "910000",
"systemTraceAuditNumber": 620397,
"localTransactionDate": "2021-09-23T14:37:36"
}
validateCard
Unlock card.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (cardNumberMask and cardholderId ) or (cardNumberMask and phoneNumber ). |
Mandatory | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. |
Mandatory | cardIdentification.cardNumberMask
|
string | Masked card number. |
Mandatory | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. |
Optional | cardIdentification.cardId
|
string | Card id. |
Optional | cardIdentification.expDate
|
string | Card expiration date. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. |
Optional | cardIdentification.customerId
|
string | Client id. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. |
Optional | cardIdentification.barCode
|
string | Bar code. |
Optional | cardIdentification.cvv2
|
string | CVV2. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. |
Optional | cardIdentification.token
|
string | Token. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. |
Optional | cardIdentification.email
|
string | E-mail. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. |
Optional | cardAcceptorParameters |
Object | Terminal parameters. |
Mandatory | cardAcceptorParameters.terminalIdentification
|
string | Terminal id. |
Mandatory | cardAcceptorParameters.merchantIdentification
|
string | Merchant id. |
Mandatory | cardAcceptorParameters.merchantType
|
string | Merchant category code. |
Optional | cardAcceptorParameters.nameAndLocation
|
string | Terminal location address. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/validateCard \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardId": "100000245259"
}
}'
/v1/apigate/ws/rest/validateCard
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. 00 is for success. |
Response example
{
"responseCode": "00",
"processingCode": "980000",
"systemTraceAuditNumber": 320252,
"localTransactionDate": "2024-02-08T15:06:53"
}
creditCard
Deposit funds to the card.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | preAuthorization |
boolean | Pre-authorization flag. |
Mandatory | cardIdentification |
Object | Card identification parameters. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard response. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Mandatory | amount |
integer | Amount. |
Mandatory | currency |
integer | Currency. ISO 4217 numeric currency code. Use 978 for the Sandbox. |
Optional | tds |
Object | 3DS transaction parameters. |
Optional | tds.xid
|
string | VISA 3DS transaction id. Not for the Sandbox. |
Optional | tds.cavv
|
string | VISA authentication check value. Not for the Sandbox. |
Optional | tds.ucaf
|
string | Mastercard universal authentification field. Not for the Sandbox. |
Optional | tds.authenticationIndicator
|
string | E-commerce transaction authentification type. Possible values: NOT_PERFORMED , TDS_MERCHANT_ONLY , TDS_PERFORMED , ADDITIONAL_PROTOCOL_USED , RECURRENT_PAYMENT_AUTH . Not for the Sandbox. |
Optional | cardAcceptorParameters |
Object | Terminal parameters. Not for the Sandbox. |
Optional | cardAcceptorParameters.terminalIdentification
|
string | Terminal id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantIdentification
|
string | Merchant id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantType
|
string | Merchant category code. Not for the Sandbox. |
Optional | cardAcceptorParameters.nameAndLocation
|
string | Terminal location address. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/creditCard \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber": "4140050090966613",
"expDate": 202612
},
"amount" : 10000,
"currency" : 978
}'
/v1/apigate/ws/rest/creditCard
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | SVFE operation completion code. 00 is for success. |
Mandatory | processingCode |
string | processing code. |
Mandatory | systemTraceAuditNumber |
integer | Audit record number |
Mandatory | localTransactionDate |
DateTime | Transaction date. format: date-time |
Mandatory | rrn |
string | External id RNN. |
Optional | authorizationIdResponse |
string | Authorization id. |
Optional | uniqueReferenceNumber |
string | Unique reference number for the operation. |
Optional | otp |
string | One-time password. Not for the Sandbox. |
Optional | acquirerFeeAmount |
string | Acquirer fee amount. Not for the Sandbox. |
Optional | issuerFeeAmount |
string | Issuer fee amount. Not for the Sandbox. |
Optional | paymentSpecificData |
Object | Payment specific data. |
Response example
{
"responseCode": "00",
"processingCode": "270000",
"systemTraceAuditNumber": 609652,
"localTransactionDate": "2024-10-23T08:29:18",
"rrn": "000003997389",
"authorizationIdResponse": "997389",
"accountCurrencyAmount": 10000,
"paymentSpecificData": {}
}
p2pTransfer
p2pTransfer from a card to a card.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | preAuthorization |
boolean | Pre-authorization flag. |
Mandatory | sourceCardIdentification |
Object | Card identification parameters for the source card. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | sourceCardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Mandatory | sourceCardIdentification.expDate
|
string | Card expiration date. YYYYMM format. |
Optional | sourceCardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | sourceCardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | sourceCardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | sourceCardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | sourceCardIdentification.plasticNumber
|
integer | Plastic number. Not for the Sandbox. |
Optional | sourceCardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | sourceCardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | sourceCardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | sourceCardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | sourceCardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | sourceCardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | sourceCardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | sourceCardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | sourceCardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | sourceCardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | sourceCardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Mandatory | destinationCardIdentification |
Object | Identification parameters for the card being credited. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | destinationCardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Optional | destinationCardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | destinationCardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | destinationCardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | destinationCardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | destinationCardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | destinationCardIdentification.plasticNumber
|
integer | Plastic number Not for the Sandbox. |
Optional | destinationCardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | destinationCardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | destinationCardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | destinationCardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | destinationCardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | destinationCardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | destinationCardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | destinationCardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | destinationCardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | destinationCardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | destinationCardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Mandatory | amount |
integer | Amount. |
Mandatory | currency |
integer | Currency. ISO 4217 numeric currency code. Use 978 for the Sandbox. |
Optional | sourceAccountNumber |
string | Card number for the card being debited. Not for the Sandbox. |
Optional | destinationAccountNumber |
string | Card number for the card being credited. Not for the Sandbox. |
Optional | tds |
Object | 3DS transaction parameters. Not for the Sandbox. |
Optional | tds.xid
|
string | VISA 3DS transaction id. Not for the Sandbox. |
Optional | tds.cavv
|
string | VISA authentication check value. Not for the Sandbox. |
Optional | tds.ucaf
|
string | Mastercard universal authentification field. Not for the Sandbox. |
Optional | tds.authenticationIndicator
|
string | E-commerce transaction authentification type. Possible values: [NOT_PERFORMED , TDS_MERCHANT_ONLY , TDS_PERFORMED , ADDITIONAL_PROTOCOL_USED , RECURRENT_PAYMENT_AUTH ]. Not for the Sandbox. |
Mandatory | senderReceiverInfo |
Object | Information about the sender and recipient of the payment. Not for the Sandbox. |
Mandatory | senderReceiverInfo.senderName
|
string | Sender name in 'Lastname, Firstname' format. |
Mandatory | senderReceiverInfo.senderAddress
|
string | Sender address. |
Optional | senderReceiverInfo.senderCity
|
string | Sender city. Not for the Sandbox. |
Optional | senderReceiverInfo.senderCountry
|
string | Sender country code. Not for the Sandbox. |
Optional | senderReceiverInfo.senderPostalCode
|
string | Sender postcode. Not for the Sandbox. |
Optional | senderReceiverInfo.receiverName
|
string | Recipient name in "Lastname, Firstname" format. Not for the Sandbox. |
Optional | pointOfServiceDataCode |
string | A set of codes that determine the capabilities of the terminal, the parameters of its environment and the use of security tools during a transaction. Not for the Sandbox. |
Mandatory | pointOfServiceConditionCode |
string | A code that defines the conditions for conducting a transaction at a service point. Any text. |
Optional | cardAcceptorParameters |
Object | Terminal parameters. Not for the Sandbox. |
Optional | cardAcceptorParameters.terminalIdentification
|
string | Terminal id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantIdentification
|
string | Merchant id. Not for the Sandbox. |
Optional | cardAcceptorParameters.merchantType
|
string | Merchant category code. Not for the Sandbox. |
Optional | cardAcceptorParameters.nameAndLocation
|
string | Terminal location address. Not for the Sandbox. |
Optional | securityLevelIndicator |
string | Security level indicator. Not for the Sandbox. |
Optional | originalTransactionParameters |
Object | Initial transaction parameters. Must be included in transaction status check request. Not for the Sandbox. |
Optional | originalTransactionParameters.systemTraceAuditNumber
|
integer | Audit record number. Not for the Sandbox. |
Optional | originalTransactionParameters.localTransactionDate
|
DateTime | Transaction date. Not for the Sandbox. |
Optional | originalTransactionParameters.rrn
|
string | External id RNN. Not for the Sandbox. |
Optional | posCardholderPresence |
integer | Cardholder presense at a service point type. Not for the Sandbox. |
Optional | businessApplicationIdentifier |
string | MC transaction type id. Not for the Sandbox. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/p2pTransfer \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"sourceCardIdentification": {
"cardNumber": "4140050090966613",
"expDate": "202612"
},
"destinationCardIdentification": {
"cardNumber": "4165850095602372"
},
"amount": 10000,
"currency": 978,
"senderReceiverInfo": {
"senderName": "Tor, John",
"senderAddress": "New York, USA"
},
"pointOfServiceDataCode": "810"
}'
/v1/apigate/ws/rest/p2pTransfer
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code. 00 is for success. |
Mandatory | processingCode |
string | processing code. |
Mandatory | systemTraceAuditNumber |
integer | Audit record number |
Mandatory | localTransactionDate |
DateTime | Transaction date. format: date-time |
Mandatory | rrn |
string | External id RNN. |
Optional | authorizationIdResponse |
string | Authorization id. |
Optional | paymentSpecificData |
Object | Payment specific data. |
Response example
{
"responseCode": "00",
"processingCode": "490000",
"systemTraceAuditNumber": 609665,
"localTransactionDate": "2024-10-23T08:42:06",
"rrn": "000003997403",
"authorizationIdResponse": "997405",
"accountCurrencyAmount": 10000,
"paymentSpecificData": {}
}
getTransactions
Get transactions history for the specific card.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. For bit of details on other card identification options which can be used in the real project and not in this Sandbox - please check the createVirtualCard description. |
Mandatory | cardIdentification.cardNumber
|
string | Card number. You will get it in CreateVirtualCard() response. |
Optional | cardIdentification.encryptedCardNumber
|
ByteArray | Encrypted card number. Not for the Sandbox. |
Optional | cardIdentification.cardNumberMask
|
string | Masked card number. Not for the Sandbox. |
Optional | cardIdentification.cardLastDigitMask
|
string | Last digits of the card number. Not for the Sandbox. |
Optional | cardIdentification.cardId
|
string | Card id. Not for the Sandbox. |
Optional | cardIdentification.expDate
|
string | Card expiration date. Not for the Sandbox. |
Optional | cardIdentification.plasticNumber
|
integer | Plastic number. Not for the Sandbox. |
Optional | cardIdentification.phoneNumber
|
string | Client phone number. Not for the Sandbox. |
Optional | cardIdentification.cardholderId
|
string | Cardholder id. Not for the Sandbox. |
Optional | cardIdentification.customerId
|
string | Client id. Not for the Sandbox. |
Optional | cardIdentification.customerNumber
|
string | Client number in SVB02. Not for the Sandbox. |
Optional | cardIdentification.barCode
|
string | Bar code. Not for the Sandbox. |
Optional | cardIdentification.cvv2
|
string | CVV2. Not for the Sandbox. |
Optional | cardIdentification.externalCardId
|
string | Card id in the bank's external system. Not for the Sandbox. |
Optional | cardIdentification.token
|
string | Token. Not for the Sandbox. |
Optional | cardIdentification.cardTypeCode
|
string | Card type code. Not for the Sandbox. |
Optional | cardIdentification.email
|
string | E-mail. Not for the Sandbox. |
Optional | cardIdentification.institutionId
|
string | Internal institution id. Not for the Sandbox. |
Mandatory | period |
Object | Time span. |
Optional | period.start
|
DateTime | Start date. YYYY-MM-DD format. |
Optional | period.end
|
DateTime | End date. YYYY-MM-DD format. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getTransactions \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardId": "100000245258"
},
"period": {
"start": "2024-10-01",
"end": "2024-10-23"
}
}'
/v1/apigate/ws/rest/getTransactions
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | transactions |
Object | Transactions. |
Optional | transactions.boWriteOffDate
|
DateTime | SVBO write-off time and date. Not for the Sandbox. |
Mandatory | transactions.authorizationDate
|
DateTime | Authorization date/time. |
Mandatory | transactions.transactionType
|
string | Transaction type. |
Mandatory | transactions.operationDirection
|
string | Transaction direction. Possible values: [CREDIT , DEBIT , NOOP ] |
Mandatory | transactions.amount
|
integer | Transaction amount. |
Mandatory | transactions.currency
|
integer | Currency. |
Mandatory | transactions.amountInAccountCurrency
|
integer | Transaction amount in account currency. |
Mandatory | transactions.utrnno
|
long | Transaction id in SVFE (SmartVista internal ID). |
Optional | transactions.boUtrnno
|
long | Transaction ID in SVBO. (SmartVista internal ID). |
Optional | transactions.transactionDescription
|
string | Transaction description. |
Optional | transactions.feeDirection
|
string | Fee direction. Possible values: [CREDIT , DEBIT , NOOP ] |
Optional | transactions.acquireFeeAmount
|
integer | Acquirer fee amount. |
Optional | transactions.feIssuerFeeAmount
|
integer | Issuer online fee amount. |
Optional | transactions.boIssuerFeeAmount
|
integer | Issuer offline fee amount. |
Optional | transactions.mcc
|
long | MCC. |
Optional | transactions.merchantCountry
|
string | Merchant country. |
Optional | transactions.merchantCity
|
string | Merchant city. |
Optional | transactions.merchantName
|
string | Merchant name. |
Optional | transactions.merchantId
|
string | Merchant id. |
Optional | transactions.terminalAddress
|
string | Terminal address. |
Optional | transactions.posDataCode
|
string | POS data code. |
Optional | transactions.authorizationIdResponse
|
string | Authorization id. |
Optional | transactions.reversalDate
|
DateTime | Reversal date/time. |
Optional | transactions.reversal
|
boolean | Reversal flag. |
Optional | transactions.requestAmount
|
integer | Requested amount for the transaction. |
Optional | transactions.terminalId
|
string | Terminal id. |
Optional | transactions.payId
|
string | ID assigned by service provider. |
Response example
{
"transactions": [
{
"authorizationDate": "2021-09-23T14:35:24",
"transactionType": "578",
"operationDirection": "NOOP",
"amount": 0,
"currency": 0,
"amountInAccountCurrency": 0,
"utrnno": 154793,
"transactionDescription": "Change limit",
"feeDirection": "DEBIT",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 6012,
"merchantCountry": "NLD",
"merchantCity": "BPC TEST ADDRESS N 2",
"merchantName": "Test Mobile Bank",
"merchantId": "TEST__MB",
"terminalAddress": "APIGATE FE TEST BPC TEST ADDRESS N 1",
"posDataCode": "600550U00110",
"reversal": false,
"requestAmount": 0,
"terminalId": "TEST__MB",
"internalResponseCode": -1
},
{
"authorizationDate": "2021-09-23T14:37:36",
"transactionType": "493",
"operationDirection": "NOOP",
"amount": 0,
"currency": 0,
"amountInAccountCurrency": 0,
"utrnno": 154796,
"transactionDescription": "Card blocking",
"feeDirection": "DEBIT",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 6012,
"merchantCountry": "NLD",
"merchantCity": "BPC TEST ADDRESS N 2",
"merchantName": "Test Mobile Bank",
"merchantId": "TEST__MB",
"terminalAddress": "APIGATE FE TEST BPC TEST ADDRESS N 1",
"posDataCode": "600550U00110",
"authorizationIdResponse": "154796",
"reversal": false,
"requestAmount": 0,
"terminalId": "TEST__MB",
"internalResponseCode": -1
},
{
"authorizationDate": "2021-09-23T14:38:26",
"transactionType": "672",
"operationDirection": "NOOP",
"amount": 0,
"currency": 0,
"amountInAccountCurrency": 0,
"utrnno": 154797,
"transactionDescription": "Card status change",
"feeDirection": "DEBIT",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 6012,
"merchantCountry": "NLD",
"merchantCity": "BPC TEST ADDRESS N 2",
"merchantName": "Test Mobile Bank",
"merchantId": "TEST__MB",
"terminalAddress": "APIGATE FE TEST BPC TEST ADDRESS N 1",
"posDataCode": "600550U00110",
"authorizationIdResponse": "154797",
"reversal": false,
"requestAmount": 0,
"terminalId": "TEST__MB",
"internalResponseCode": -1
},
{
"authorizationDate": "2021-09-23T14:39:15",
"transactionType": "760",
"operationDirection": "CREDIT",
"amount": 10000,
"currency": 978,
"amountInAccountCurrency": 10000,
"utrnno": 154798,
"transactionDescription": "Credit account presentment",
"feeDirection": "CREDIT",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 6012,
"merchantCountry": "NLD",
"merchantCity": "BPC TEST ADDRESS N 2",
"merchantName": "Test Mobile Bank",
"merchantId": "TEST__MB",
"terminalAddress": "APIGATE FE TEST BPC TEST ADDRESS N 1",
"posDataCode": "600550U00110",
"authorizationIdResponse": "154798",
"reversal": false,
"requestAmount": 10000,
"terminalId": "TEST__MB",
"internalResponseCode": -1
},
{
"authorizationDate": "2021-09-23T14:40:05",
"transactionType": "781",
"operationDirection": "DEBIT",
"amount": 1000,
"currency": 978,
"amountInAccountCurrency": 1000,
"utrnno": 154800,
"transactionDescription": "P2P Debit part",
"feeDirection": "DEBIT",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 6012,
"merchantCountry": "NLD",
"merchantCity": "BPC TEST ADDRESS N 2",
"merchantName": "Test Mobile Bank",
"merchantId": "TEST__MB",
"terminalAddress": "APIGATE FE TEST BPC TEST ADDRESS N 1",
"posDataCode": "600550U00110",
"authorizationIdResponse": "154800",
"reversal": false,
"requestAmount": 1000,
"terminalId": "TEST__MB",
"internalResponseCode": -1
},
{
"authorizationDate": "2021-09-23T14:40:05",
"transactionType": "689",
"operationDirection": "NOOP",
"amount": 1000,
"currency": 978,
"amountInAccountCurrency": 1000,
"utrnno": 154799,
"transactionDescription": "Card-to-Card money transfer",
"feeDirection": "DEBIT",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 6012,
"merchantCountry": "NLD",
"merchantCity": "BPC TEST ADDRESS N 2",
"merchantName": "Test Mobile Bank",
"merchantId": "TEST__MB",
"terminalAddress": "APIGATE FE TEST BPC TEST ADDRESS N 1",
"posDataCode": "600550U00110",
"authorizationIdResponse": "154801",
"reversal": false,
"requestAmount": 1000,
"terminalId": "TEST__MB",
"internalResponseCode": -1
}
]
}