Banking API v.2
The BPC Sandbox (further "Sandbox") is a sandbox test environment that allows you to try API and evaluate payment functionality.
Please take into consideration that Sandbox doesn't affect your banking networks, i.e. payments with virtual cards issued with Sandbox and other transactions related to live data (real money) do not take place in the Sandbox environment.
A productive environment must be used to interact with live data.
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.
Sandbox "Main" page contains account information for Sandbox API, such as:
- API URL - main URL to use in Sandbox API methods;
- Token - API security Token.
Add a custom HTTP header field "X-API-KEY" with API security Token to your HTTP requests, for example:
X-API-KEY: YWdyYWRvYm9pbm92Omh6bG1lTTg
API Reference
You can find a full technical API Reference here.
Postman collection example
You can download Postman collection of API requests to test some basic card management functions of Sandbox.
Postman collection API settings:
- Page "Authorization", field "Type" choose "API Key";
- Field "Key", choose "X-API-KEY";
- Field "Value", fill in your API security Token (can be found on Sandbox "Main" page).
Sandbox specifics and restrictions
Sandbox is a test environment, there are some features and limitations that may not be present in a production environment.
Sandbox returns a Request-id
header in the Response (contains unique identifier of your request, may help with technical support).
Limitations:
- Sandbox supports only
EUR
currency. - You can create as many customers as you want. But only one account per customer will be created in the Sandbox. This restriction is added to simplify the Sandbox logic. In a real project you will be able to create as many accounts per cardholder as required.
- You can issue up to 20 virtual cards for up to 20 cardholders, one card for each cardholder. When you register with Sandbox, a pool of 20 cards is prepared for issuing. Production environment does not have such restrictions.
Banking API v.2 Use Cases
Using the Sandbox API, you can perform various use cases: issuing and working with virtual cards, receiving detailed information on transactions and etc., as well as financial services (issuing, managing and distribution of payment cards) too.
To test Sandbox API functionality, we suggest the following use case: 1. Create two cardholders (this function automatically creates accounts for these cardholders). 1. Issue a virtual card for the cardholders; 1. Set the spending limits of the card; 1. Top-up one of the issued cards; 1. Check the account balance of the card; 1. Perform transfer(s) between cards of different cardholders; 1. Get a list of transfers, filtered by debited card, then by credited card; 1. Block a card.
Create a cardholder
Cardholder is main entity (individual or business) that cards can be issued to. Create a new Cardholder resource with POST /cardholders request
.
Cardholder is a top-level resource, so this must be the first step in the business use case. When creating a Cardholder, corresponding Primary (default) card account being created for this cardholder. Required parameters for creating a Cardholder: billingAddress (country, postalCode), firstName, lastName, phoneNumber. You may specify additional optional fields for a Cardholder, or you can try to update Cardholder resource with new data later. See documentation for detailed Cardholder resource schema (you will need "for updating" option).
Request
curl --location --request POST 'https://dev.bpcbt.com/v2/cardholders' \
--header 'X-API-KEY: YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"billingAddress": {
"city": "Budapest",
"country": "HU",
"line1": "Szabadsag ter",
"line2": "9",
"postalCode": "1850",
"state": "Budapest"
},
"email": "d@harrxample.com",
"phoneNumber": "123123123",
"firstName": "Harry",
"lastName": "Waters",
"dateOfBirth": "1998-03-24",
"verification": {
"idType": "passport",
"documentId": "1111111111"
},
"status": "active"
}'
Response
{
"id": "3269_1640686122656",
"billingAddress": {
"city": "Budapest",
"country": "HU",
"line1":"Szabadsag ter",
"line2":"9",
"postalCode": "1850",
"state":"Budapest"
},
"email": "harry@example.com",
"phoneNumber": "123123123",
"firstName": "Harry",
"lastName": "Waters",
"dateOfBirth": "1998-03-24",
"verification": {
"idType": "passport",
"documentId": "1111111111"
},
"status": "active"
}
You also may fetch created resource using GET cardholders/{id}
API request. Repeat this step to register another cardholder. When perform P2P transfers, both card accounts will be involved.
Issue virtual cards
When you are done with cardholders, you may start issuing virtual cards for the Cardholders. Create new virtual card and assign it to a Cardholder. Virtual cards are issued in "active" state, there is no need in special activation procedure.
Required parameters for issuing virtual cards:
Field | Description |
---|---|
productName | Card product name (The request must include:"Visa"). At the moment, Sandbox is configured to issue only "Visa Classic" virtual cards. In the future, the list of card products can be expanded. |
cardholder | Unique identifier of the cardholder object. Take the value from first step, when you create a cardholder. |
Request
curl --location --request POST 'https://dev.bpcbt.com/v2/cards' \
--header 'X-API-KEY: YOUR_TOKEN' \
--header 'content-type: application/json' \
--data productName=Visa \
--data cardholder=3269_1640686122656
Response
{
"id": "100000007847",
"status": "active",
"productName": "Visa Classic",
"cardholder": "3269_1640686122656",
"account": {
"accountNumber": "3556978700000000037",
"balance": 0,
"currency": "EUR"
},
"embossedName": "",
"expiryDate": "202512",
"numberMask": "414364******8601",
"creationDate": "2022-02-02T12:32:07",
"blockingDate": "",
"pinDenialCounter": "0",
"spendingLimits": [
{
"amount": 1234,
"interval": "daily"
},{
"amount": 123450,
"interval": "monthly"
}
]
}
Sandbox returns new virtual Card resource in the response body.
Repeat API request to create virtual card for another Cardholder. You need at least 2 card accounts to make transfers between them.
Spending limits
Virtual cards are issued with spending limits (day limit: 1,000.00 EUR and card purchase month limit: 10,000.00 EUR). You can change a spending limit on the cards. Spending limits define limits amount of spending over interval of time. Setting spending limits is a card resource updating request.
The following card parameters can be updated:
status
spendingLimits
pin
resetPinCounter
reissueCard
For card updating, only one card parameter can be updated with one request. Updating spending limits with only one request, the other field will not be updated, see the API Reference for details.
Please note that pin
and reissueCard
are not Card resource fields. They are only available in update request and you will never see them in Card resource itself.
- When you try to set new
pin
for the card, it should be encrypted (with public key) in update request, see details in the API Reference. - When you use
reissueCard
parameter, it acts as a command to reissue the card and must contain the reason why the card should be reissued. Valid values for this parameter are: lost, stolen, damaged, expired.
Also, there is some specificity when you change card status. These are described in "Card blocking" use case. To set card spending limits, specify spendingLimits
parameter in your update request.
You can set or change as many different limits in one request as you want. Some limits may be already set upon card creating - it depends on Sandbox settings.
Request
curl --location --request POST 'https://dev.bpcbt.com/v2/cards' \
--header 'X-API-KEY: YOUR_TOKEN' \
--header 'content-type: application/json' \
--data-raw '{
"spendingLimits": [
{
"amount": 123035,
"interval": "monthly"
},{
"amount": 12130,
"interval": "daily"
}
]
}'
Response
{
"id": "100000007847",
"status": "active",
"productName": " Classic",
"cardholder": "3269_1640686122656",
"account": {
"accountNumber": "3556978700000000037",
"balance": 0,
"currency": "EUR"
},
"embossedName": "",
"expiryDate": "202512",
"numberMask": "414364******8601",
"creationDate": "2022-02-02T12:32:07",
"blockingDate": "",
"pinDenialCounter": "0",
"spendingLimits": [
{
"amount": 12130,
"interval": "daily"
},{
"amount": 123035,
"interval": "monthly"
}
]
}
Top-up the card
To perform card-to-card transfers, you need to add funds to the card account. Card top-up is Sandbox-only operation which allows you add funds. You will need to specify destinationCard
destination card number, amount
amount (in smallest currency units) and currency
currency. Remember that full card number is only available via GET /cards/{id}
method, and the only currency available in Sandbox is EUR.
The following request will add 125 EUR to a card account:
Request
curl --location --request POST 'https://dev.bpcbt.com/v2/topups' \
--header 'X-API-KEY: YOUR_TOKEN' \
--header 'content-type: application/json' \
--data amount=12500 \
--data currency=EUR \
--data destinationCard=array \
--data cardNumber=4143640071118601
Response
{
"id": "662691",
"amount": 12500,
"currency": "EUR",
"destinationCard": {
"cardNumber": "4143640071118601"
},
"creationDate": "2022-02-04T13:14:27",
"status": "approved",
"statusMessage": "",
"rrn": "000000348182"
}
The response contains newly created Top-up, which represents financial transaction information.
Check card account balance
After successful top-up request you may check that card account balance has changed.
Use GET /cards/{id}
request to get card account balance.
Request
curl --location --request GET 'https://dev.bpcbt.com/v2/cards/100000000012' \
--header 'X-API-KEY: YOUR_TOKEN'
Response
{
"id": "100000007847",
"status": "blocked",
"productName": " Classic",
"cardholder": "3269_1640686122656",
"account": {
"accountNumber": "3556978700000000037",
"balance": 143800,
"currency": "EUR"
},
"embossedName": "",
"expiryDate": "202512",
"numberMask": "414364******8601",
"number": "4143640071118601",
"cvc": "245",
"creationDate": "2022-02-02T12:32:07",
"blockingDate": "2019-08-24T14:15:22",
"pinDenialCounter": "2",
"spendingLimits": [
{
"amount": 1234,
"interval": "daily"
},
{
"amount": 123450,
"interval": "monthly"
}
]
}
Issuing transactions (transfer between cards)
You can try card-to-card (P2P) funds transfer.
Basically, all you need is to specify source card, destination card, and amount.
To make a P2P transfer, you will need virtual card number (PAN). This information on previously issued virtual cards can be obtained using the GET cards/{id}
request.
The next example will transfer 12 EUR to another cardholder (we assume that source card is the one you replenished in previous step, and destination card is the card of second cardholder).
Request
curl --location --request POST 'https://dev.bpcbt.com/v2/transfers' \
--header 'X-API-KEY: YOUR_TOKEN' \
--header 'content-type: application/json' \
--data-raw '{
"amount": 1200,
"currency": "EUR",
"sourceCard": {
"cardNumber": "4143640071118601",
"expiryDate": "202502"
},
"destinationCard": {
"cardNumber": "4143640037674631"
}
}'
Response
{
"id": "407930",
"amount": 1200,
"currency": "EUR",
"sourceCard": {
"cardNumber": "4143640071118601",
"expiryDate": "202502"
},
"destinationCard": {
"cardNumber": "4143640037674631"
},
"creationDate": "2022-03-17T12:07:04",
"status": "approved",
"statusMessage": "",
"rrn": "000000407928"
}
The response contains newly created P2P transfer object, which represents financial transaction information. It is much like Top-up resource, except that source card parameter is added. Repeat this step few times, transferring funds from one account to another and vice versa. Try to transfer amount greater that source account balance to see operation status.
Get list of transfers
After you perform some P2P transfers between accounts, you can request the list of transfers by source or destination card. When requesting Transfer resource collection, you should use cardNumberFltr query parameter, which is required. Also you may include in query parameters another optional filters:
- periodStartFltr - starting date of the period to filter the retrieved transactions list (inclusive). Date format is "2022-03-29".
- periodEndFltr - end date of the period to filter the retrieved transactions list (inclusive).
- statusFltr - only return transactions that have the given status. Allowed values are "approved", "declined".
Request
curl --location --request GET 'https://dev.bpcbt.com/v2/transfers?periodStartFltr=2022-03-29&cardNumberFltr=4143640071118601' \
--header 'X-API-KEY: YOUR_TOKEN' \
Response
{
"transfers": [
{
"id": "407930",
"amount": 1200,
"currency": "EUR",
"sourceCard": {
"cardNumber": "4143640071118601",
"expiryDate": "202512"
},
"destinationCard": {
"cardNumber": "4143640037674631"
},
"creationDate": "2022-03-17T12:07:04",
"status": "approved",
"statusMessage": "",
"rrn": "000000407928"
}, {
"id": "407975",
"amount": 15600,
"currency": "EUR",
"sourceCard": {
"cardNumber": "4143640071118601",
"expiryDate": "202512"
},
"destinationCard": {
"cardNumber": "4143640037674631"
},
"creationDate": "2022-02-17T13:32:41",
"status": "declined",
"statusMessage": "Insufficient Funds ...",
"rrn": "000000403548"
}
]
}
When retrieving the list of transfers, each resource object is equal the one you saw when performed transfers.
Block card
Blocking a card is a Card resource update request.
Only one card parameter per request should be changed.
As for card status updating, there are some restrictions. When you change card status, not all combinations of current status and new status are possible:
- for active status, any new status is allowed (e.g. blocked, lost, stollen);
- for blocked status, any new status is allowed (e.g. active, lost, stollen);
- for lost and stollen, no status change is allowed. You will get an error if you try to change such status. Use reissueCard parameter instead.
Request
curl --location --request POST 'https://dev.bpcbt.com/v2/cards/100000007847' \
--header 'X-API-KEY: YOUR_TOKEN' \
--header 'content-type: application/json' \
--data-raw '{
"status": "blocked"
}'
Response
{
"id": "100000007847",
"status": "blocked",
"productName": " Classic",
"cardholder": "3269_1640686122656",
"account": {
"accountNumber": "3556978700000000037",
"balance": 12100,
"currency": " EUR"
},
"embossedName": "",
"expiryDate": "202512",
"numberMask": "414364******8601",
"creationDate": "2022-02-02T12:32:07",
"blockingDate": "2022-03-08T15:04:22",
"pinDenialCounter": "0",
"spendingLimits": [
{
"amount": 12130,
"interval": "daily"
},{
"amount": 123035,
"interval": "monthly"
}
]
}
After updating a Card resource you get a modified resource in the response. Now, when the card is blocked, try to make some transfers using this card and check the operation status.
Get Started
Sandbox
Use Sandbox to try API. You can download Postman collection of API requests to test some basic card management functions of SmartVista suite.
Common characteristics
All Methods are HTTP POST
Content-Type: application/json
for both Requests and Responses
Authentication
Basic access authentication is a method for an HTTP user to provide a user name and password when making a request.
In basic HTTP authentication, a request contains a header field in the form of Authorization: Basic <credentials>
, where credentials is the Base64 encoding of ID and password joined by a single colon :
.
Customers
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 | parameters.name
|
string | Identify a parameter in the customer template for which the corresponding value is set. |
Mandatory | parameters.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
You got the value in the e-mail after the registration. -
agent_number
Same asinstitutionId
. -
customer_number
Any text. Has to be unique in your sandbox project. -
product_id
You got the value in the e-mail after the registration. -
start_date
Any date in the past. YYYY-MM-DD format. -
service_id_acc
You got the value in the e-mail after the registration. -
surname
firstName
secondName
email
mobile_phone
region
city
street
house
apartment
8postal_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"
}
]
}'
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"
}
getCustomerDetails
Get customer information.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | institutionId |
integer | Institution id. |
Mandatory | customerNumber |
string | Client number. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getCustomerDetails \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerNumber" : "2111_P012",
"institutionId" : 123
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | customerNumber |
string | Client number. |
Mandatory | customerId |
string | Client id. |
Optional | entityType |
string | |
Optional | entityTypeName |
string | |
Optional | firstName |
string | First name. |
Optional | secondName |
string | Second name. |
Optional | surname |
string | Surname. |
Optional | status |
string | Customer status. |
Response example
{
"customerId": 100000000039,
"customerNumber": "2111_P012",
"entityType": "ENTTPERS",
"entityTypeName": "Person",
"firstName": "John",
"secondName": "A.",
"surname": "Smith",
"status": "CTST0010"
}
isCustomerExist
Check whether customer id exists.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | customerNumber |
string | Customer number. |
Optional | institutionId |
integer | Institution id |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/isCustomerExist \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerNumber": 1002,
"institutionId": 7001
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | result |
boolean | Institution id. |
Response example
{
"result" : true
}
Accounts
changeAccountLimit
Change account limit.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | accountNumber |
string | Account number. |
Mandatory | limit |
Object | Limit parameters. |
Mandatory | limit.name
|
string | Limit name at SVBO. |
Optional | limit.startDate
|
DateTime | Limit start date. format: date-time |
Optional | limit.endDate
|
DateTime | Limit end date. |
Optional | limit.value
|
long | Limit value |
Optional | limit.cycleType
|
integer | Cycle type |
Optional | limit.cycleLength
|
integer | Cycle length |
Optional | limit.currency
|
integer | Currency |
Optional | limit.currentValue
|
long | Current limit value |
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/changeAccountLimit \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber" : 4000010000000003,
"limit" : {
"name" : "LMTTC01",
"startDate" : "2015-02-15",
"endDate" : "2015-02-20",
"value" : 10000000,
"cycleType" : 4,
"cycleLength" : 1
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
getAccountLimits
Get account limits list.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | accountNumber |
string | account number. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAccountLimits \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber" : 4000010000000003
}'
Response example
{
"limits": [
{
"name": "LMTTC01",
"value": 10000000,
"cycleType": 4,
"cycleLength": 1,
"currency": 978,
"currentValue": 0,
"limitExceptions": [
{
"limitName": "LMTTA02",
"startDate": "2014-12-30",
"endDate": "2014-12-31",
"value": 10000,
"cycleType": 0,
"cycleLength": 0
}
]
}
changeAccountStatusInFe
Change account status.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | accountNumber |
string | Account number. |
Mandatory | accountStatus |
integer | Account status |
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/changeAccountStatusInFe \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber": 3210978700000000579,
"accountStatus": 1
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode": "00",
"processingCode": "810000",
"systemTraceAuditNumber": 320257,
"localTransactionDate": "2024-02-08T15:08:14"
}
getAccountData
Get account details.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | accountNumber |
string | Account number. |
Optional | returnCardNumber |
boolean | Shows whether or not it is necessary to include full card number in response. |
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | accountData |
Object | Account parameters. |
Mandatory | accountData.number
|
string | Account number. |
Mandatory | accountData.currency
|
integer | Account currency. |
Optional | accountData.currencyAlphaCode
|
string | Account currency letter code. |
Mandatory | accountData.balance
|
integer | Account balance. |
Optional | accountData.creditLimit
|
integer | Credit limit. |
Mandatory | accountData.customerId
|
string | Client id. |
Optional | accountData.defaultAccount
|
boolean | Default account indicator. |
Mandatory | accountData.cards
|
Object | Card list for the account. |
Optional | cards.cardType
|
string | Card type. |
Optional | cards.cardNumber
|
string | Card number. |
Optional | cards.expiryDate
|
string | Card expiration date. |
Optional | cards.cardStatus
|
string | Card status. |
Optional | cards.accountNumber
|
string | Account number. |
Optional | cards.accountStatus
|
string | Account status. |
Optional | cards.gmfIndicator
|
string | Exempt GMF account indicator. |
Optional | cards.productNumber
|
string | Product number. |
Mandatory | cards.productId
|
string | Product id. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAccountData \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber" : 3210978700000000579
}'
Response example
{
"accountData": {
"number": "3210978700000000579",
"currency": 978,
"currencyAlphaCode": "EUR",
"balance": 0,
"customerId": "3210_P004",
"cards": [
{
"cardNumberMask": "414210******8086",
"expiryDate": "202512",
"cardId": "100000003347",
"hotCardStatus": 0,
"cardTypeName": "VISA - PLUS",
"embossedName": "GENERAL POOL",
"customerId": "3210_P004",
"personId": "3210P_0000001",
"pinDenialCounter": 0,
"plasticNumber": 1,
"hotCardStatusDescription": "VALID CARD",
"cardIsPrimary": false,
"cardBindToCustomer": false,
"customerIsCardholder": false
}
]
}
}
setAllowedBeneficiaries
Set a list of allowed beneficiaries for a card or an account.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/setAllowedBeneficiaries \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber": "4000010000000003",
"beneficiaries": [
"M0001"
]
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode": "00"
}
getAllowedBeneficiaries
Get a list of allowed beneficiaries for a card or an account.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAllowedBeneficiaries \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber" : 4000010000000003
}'
Response example
{
"beneficiaries": [
M0001
]
}
setAllowedMccList
Set a list of MCC allowed for a card or an account.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/setAllowedMccList \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber": "4000010000000003",
"mccList" : [
1750
]
}'
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode": "00"
}
getAllowedMccList
Get a list of MCC allowed for a card or an account.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAllowedMccList \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber" : 4000010000000003
}'
Response example
{
"mccList": [
1750
]
}
Merchants
changeMerchantStatus
Change merchant status.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | merchantNumber |
string | Merchant number. |
Mandatory | institutionId |
string | Internal institution id. |
Mandatory | agentId |
string | Agent id. |
Mandatory | customerNumber |
string | Client number. |
Mandatory | contractNumber |
string | Contract number. |
Mandatory | status |
string | Merchant status. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/changeMerchantStatus \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantNumber": "M000001",
"institutionId": "3210",
"agentId": "32",
"customerNumber": "3210_P004",
"contractNumber": "201",
"status": "Valid Entity"
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVisa. |
Response example
{
"responseCode" : "00"
}
getMerchantTransactions
Get merchant's transaction list.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | merchantId |
string | Merchant id. |
Optional | terminalId |
string | Terminal id. |
Mandatory | institutionId |
string | Internal institution id. |
Mandatory | period |
Object | Time span. |
Optional | period.start
|
DateTime | Start date. |
Optional | period.end
|
DateTime | End date. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getMerchantTransactions \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantIdn" : "M999101",
"institutionId": 2,
"period": {
"start": "2019-05-01",
"end": "2019-06-01"
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | transactions |
Object | Transactions. |
Mandatory | transactions.utrnno
|
long | Transaction id in SVFE |
Optional | transactions.reversal
|
boolean | Reversal flag. |
Mandatory | transactions.merchantId
|
string | Merchant id. |
Mandatory | transactions.terminalId
|
string | Terminal id. |
Mandatory | transactions.transactionDate
|
DateTime | Transaction date/time. |
Optional | transactions.settlementDate
|
DateTime | Settlement date/time. |
Mandatory | transactions.cardNumberMask
|
string | Masked card number. |
Mandatory | transactions.cardNumber
|
string | Card number. |
Optional | transactions.transactionAmount
|
integer | Transaction amount. |
Optional | transactions.transactionCurrency
|
integer | Transaction currency code |
Optional | transactions.submittedAmount
|
integer | Requested amount. |
Optional | transactions.submittedCurrency
|
integer | Requested currency |
Optional | transactions.responseCode
|
integer | Internal SVFE response code. |
Optional | transactions.authorizationCode
|
string | Authorization code. |
Optional | transactions.cashbackAmount
|
integer | Cashback amount. |
Optional | transactions.transactionType
|
string | Transaction type. |
Optional | transactions.networkType
|
string | Network type. |
Optional | transactions.cardType
|
string | Card type. |
Optional | transactions.orderNumber
|
string | Payment order number. |
Optional | transactions.orderId
|
string | Payment order id. |
Response example
{
"transactions": {
"transaction": [
{
"utrnno": 7220355,
"reversal": false,
"merchantId": "M999101",
"terminalId": 999101,
"transactionDate": "2019-05-15T13:08:07+04:00",
"cardNumber": 4440010000000001,
"transactionAmount": 10000,
"transactionCurrency": 978,
"responseCode": 802,
"authorizationCode": 0,
"cashbackAmount": 0,
"transactionType": 736,
"networkType": 28,
"cardType": 0
},
{
"utrnno": 7220403,
"reversal": false,
"merchantId": "M999101",
"terminalId": 999101,
"transactionDate": "2019-05-15T13:11:38+04:00",
"cardNumber": 4440010000000001,
"transactionAmount": 10000,
"transactionCurrency": 978,
"responseCode": 802,
"authorizationCode": 0,
"cashbackAmount": 0,
"transactionType": 736,
"networkType": 28,
"cardType": "DEF"
},
{
"utrnno": 7220431,
"reversal": false,
"merchantId": "M999101",
"terminalId": 999101,
"transactionDate": "2019-05-15T13:12:55+04:00",
"cardNumber": 4440010000000001,
"transactionAmount": 10000,
"transactionCurrency": 978,
"responseCode": 801,
"authorizationCode": 0,
"cashbackAmount": 0,
"transactionType": 736,
"networkType": 44,
"cardType": "DEF"
}
]
}
}
changeTerminalStatus
Change terminal status.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | merchantNumber |
string | Merchant number. |
Mandatory | terminalNumber |
string | Terminal number. |
Mandatory | institutionId |
string | Internal institution id. |
Mandatory | agentId |
string | Agent id. |
Mandatory | customerNumber |
string | Client number. |
Mandatory | contractNumber |
string | Contract number. |
Mandatory | status |
string | Terminal status. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/changeTerminalStatus \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantNumber" : "M999201",
"terminalNumber" : "00999201",
"institutionId" : "3210",
"agentId" : "32",
"customerNumber" : "3210_P004",
"contractNumber" : "201",
"status" : "Valid Entity"
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVisa. |
Response example
{
"responseCode" : "00"
}
generateKey
Generate key.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | terminalId |
long | SVFE terminal internal id (pid) |
Optional | terminalNumber |
string | Terminal id. |
Optional | merchantNumber |
string | Merchant id. |
Mandatory | hostId |
integer | ZMK key internal id (PID), which should be used to export generated key. |
Mandatory | keyType |
string | Key type. |
Mandatory | keyLength |
string | Length of the generated key. Possible values: [ENKL_0016, ENKL_0032, ENKL_0048] |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/generateKey \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"hostId" : 54329,
"keyType": "string",
"keyLength": "ENKL_0016",
"keySerialNumber": "string",
"dukptId": 0
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | keyValue |
string | Generated key (encrypted by ZMK). |
Optional | checkValue |
string | Check value |
Optional | lmkHsmKeyValue |
string | Generated key (encrypted by LMK). |
Response example
{
"keyValue" : "keyValue",
"lmkHsmKeyValue" : "lmkHsmKeyValue",
"checkValue" : "checkValue"
}
setKey
Set key.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | terminalId |
long | SVFE terminal internal id (pid) |
Optional | terminalNumber |
string | Terminal id. |
Optional | merchantNumber |
string | Merchant id. |
Mandatory | hostId |
integer | Host PID |
Mandatory | keyType |
string | Key type. Possible values: [ENKTTMKA, ENKTTMKP, ENKTTAK, ENKTIKEY] |
Optional | inputKeyPrefix |
string | Input key prefix. Possible values: [U, T, X, Y] |
Mandatory | key |
string | Key. |
Optional | keyCheckValue |
string | Check value |
Mandatory | newKeyPrefix |
string | New key prefix. Possible values: [U, T, X, Y] |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/setKey \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"terminalId": 0,
"terminalNumber": "string",
"merchantNumber": "string",
"hostId": 0,
"keyType": "ENKTTMKA",
"inputKeyPrefix": "U",
"key": "string",
"keyCheckValue": "string",
"newKeyPrefix": "U"
}'
Response parameters
Response example
{ }
serviceAction
Perform an action on the service.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | serviceIdentification |
Object | Service identification data. |
Mandatory | serviceIdentification.serviceType
|
string | Service type. |
Mandatory | serviceIdentification.serviceId
|
string | Service id. |
Mandatory | serviceIdentification.serviceObjectType
|
string | Object, which the service can be linked to. Possible values: [SERVICE_OBJECT_CARD, SERVICE_OBJECT_ACCOUNT] |
Mandatory | actionCode |
string | Action code. Possible values: [ACTION_CODE_ADD, ACTION_CODE_UPDATE, ACTION_CODE_DELETE, ACTION_CODE_CHECK, ACTION_CODE_CHANGE_ACCESS, ACTION_CODE_CHECK_PARAMETERS, ACTION_CODE_RESTORE_PARAMETERS, ACTION_CODE_INQUIRE, ACTION_CODE_ACTION] |
Mandatory | cardIdentification |
Object | Card identification parameters. expDate and (cardNumber ) or (barCode ) or (cardNumberMask and phoneNumber ) are required. |
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 | accountNumber |
string | Account number. |
Optional | serviceParameters |
Object | Service parameters. |
Optional | serviceParameters.phoneNumber
|
string | Phone number. |
Optional | serviceParameters.email
|
string | |
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/serviceAction \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"serviceIdentification": {
"serviceType" : 7,
"serviceId" : 300,
"serviceObjectType": "SERVICE_OBJECT_CARD"
},
"actionCode": "ACTION_CODE_ADD",
"cardIdentification": {
"cardNumber": 4000010000000003
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVisa. |
Response example
{
"responseCode" : 00
}
Cards & Wallets
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" : 100000000873
},
"hotCardStatus" : 6
}'
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" : 100000000873
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode": "00",
"processingCode": "980000",
"systemTraceAuditNumber": 320252,
"localTransactionDate": "2024-02-08T15:06:53"
}
bindCardToAccount
Bind card to an account.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. cardNumber and expDate are required. |
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. |
Mandatory | accountNumber |
string | Account number to bind to. |
Mandatory | accountType |
string | Account type. Possible values: [ACCOUNT_TYPE_DEFAULT, ACCOUNT_TYPE_SAVING, ACCOUNT_TYPE_CHECKING, ACCOUNT_TYPE_CREDIT, ACCOUNT_TYPE_FIRST_OTHERS, ACCOUNT_TYPE_LOANS, ACCOUNT_TYPE_ENVELOPE, ACCOUNT_TYPE_ESCROW, ACCOUNT_TYPE_MONEY_MARKET, ACCOUNT_TYPE_LOYALTY] |
Optional | accountCurrency |
integer | Account currency ( only required for new accounts ). |
Optional | personalData |
Object | Cardholder personal information. |
Optional | personalData.firstName
|
string | |
Optional | personalData.lastName
|
string | |
Optional | customerId |
string | Client 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/bindCardToAccount \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000001,
"expDate" : 202512
},
"accountNumber" : 4000010000000001,
"accountType" : "ACCOUNT_TYPE_DEFAULT",
"accountCurrency" : 978,
"personalData" : {
"firstName" : "IVAN",
"lastName" : "IVANOV"
},
"customerId" : "3210_P004"
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
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
}
}'
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": []
}
]
}
addCardLimitException
Add card limit exception.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (barCode ) or (cardNumberMasked and cardholderId ) or (cardNumberMasked 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. |
Mandatory | limitException |
Object | Limit exception parameters. |
Mandatory | limitException.limitName
|
string | Limit name at SVBO. |
Mandatory | limitException.startDate
|
DateTime | Exception start date. |
Mandatory | limitException.endDate
|
DateTime | Exception end date. |
Optional | limitException.value
|
long | Limit value |
Optional | limitException.cycleType
|
integer | Cycle type |
Optional | limitException.cycleLength
|
integer | Cycle length |
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/addCardLimitException \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000003
},
"limitException" : {
"limitName" : "LMTTC01",
"startDate" : "2015-04-20",
"endDate" : "2015-04-30",
"value" : 10000000,
"cycleType" : 4,
"cycleLength" : 1
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
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" : 100000000873
},
"limit" : {
"name" : "LMTP0112",
"value" : 13000000,
"cycleType" : 4,
"cycleLength" : 1
}
}'
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": 620394,
"localTransactionDate": "2021-09-23T14:35:24"
}
changeCardLimitException
Change card limit exception.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. cardNumber or cardId are required. |
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. |
Mandatory | limitException |
Object | Limit exception parameters. |
Mandatory | limitException.limitName
|
string | Limit name at SVBO. |
Mandatory | limitException.startDate
|
DateTime | Exception start date. |
Mandatory | limitException.endDate
|
DateTime | Exception end date. |
Optional | limitException.value
|
long | Limit value |
Optional | limitException.cycleType
|
integer | Cycle type |
Optional | limitException.cycleLength
|
integer | Cycle length |
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. |
Response example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/changeCardLimitException \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000003,
"expDate" : 202512
},
"limitException" : {
"limitName" : "LMTTC01",
"startDate" : "2015-04-20",
"endDate" : "2015-04-30",
"value" : 10000000
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
deleteCardLimitException
Delete card limit exception.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (barCode ) 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. |
Mandatory | limitException |
Object | Limit exception parameters. |
Mandatory | limitException.limitName
|
string | Limit name at SVBO. |
Mandatory | limitException.startDate
|
DateTime | Exception start date. |
Mandatory | limitException.endDate
|
DateTime | Exception end date. |
Optional | limitException.value
|
long | Limit value |
Optional | limitException.cycleType
|
integer | Cycle type |
Optional | limitException.cycleLength
|
integer | Cycle length |
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/deleteCardLimitException \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000003,
"expDate" : 202512
},
"limitException" : {
"limitName" : "LMTTC01",
"startDate" : "2015-02-15",
"endDate" : "2015-02-20"
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
generatePin
Generate PIN.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. (encryptedCardNumber ) or (cardNumberMask and phoneNumber ) or external card id are required. |
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 | pinDeliveryMethod |
string | PIN delivery method. Possible values: [SMS - in SMS, WS - in Web Service response, HALF_AND_HALF - 1st two digits in WS response, 2nd two digits in SMS, WS_ENCRYPTED - in Web Service response using public RSA encryption in ECB mode, NONE - do not deliver PIN] |
Optional | encryptedPinValue |
ByteArray | Encrypted PIN. |
Optional | pinValue |
string | PIN. |
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. |
Optional | parameters |
Object | List of arbitrary parameters. |
Optional | parameters.name
|
string | |
Optional | parameters.value
|
string | |
Optional | checkCardOnly |
boolean | Flag, showing whether it is necessary to only check existence and card status and not form and change PIN. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/generatePin \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumberMask" : "400001%0003",
"phoneNumber" : 79021111111
},
"pinDeliveryMethod" : "WS"
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista (00 - success). |
Optional | pinValue |
string | PIN. |
Optional | encryptedPinValue |
ByteArray | Encrypted PIN. |
Response example
{
"encryptedPinValue" : [ "encryptedPinValue", "encryptedPinValue" ],
"pinValue" : 1111,
"responseCode" : 00
}
changePin
Change PIN.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. cardNumber or cardId are required. |
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. |
Mandatory | newPinData |
string | New PIN. |
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/changePin \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000003
},
"newPinData" : "059B2AA97DF72557"
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
resetPinCounter
Reset incorrect PIN attempts counter.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. cardNumber or cardId are required. |
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/resetPinCounter \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardNumber": 4142100007657181
},
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVisa. |
Response example
{
"responseCode": "00",
"processingCode": "890000",
"systemTraceAuditNumber": 452018,
"localTransactionDate": "2021-11-11T12:28:19",
"rrn": "000000224348",
"authorizationIdResponse": "224348"
}
generateCVC2
Generate CVC2.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (barCode ) 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. Must be passed if deliveryMethod is SMS and phoneNumber is NOT used as identification option. |
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 | deliveryMethod |
string | Code delivery method. Possible values: [SMS, WS, HALF_AND_HALF, WS_ENCRYPTED, NONE] |
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/generateCVC2 \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4149070067595816
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | SVFE operation completion code. |
Optional | cardNumberMask |
string | Masked card number. |
Optional | cardNumber |
string | Card number. |
Optional | cvc2 |
string | Generated CVV2 value. |
Response example
{
"responseCode": "00",
"cardNumberMask": "****07006759****",
"cvc2": "692"
}
setGeoRestrictions
Set geo-restrictions for the card. Only the rules that can be changed are returned.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Posible identification options: (cardNumber ) or (cardId ). |
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. |
Mandatory | restrictions |
Object | Restriction list. |
Mandatory | restrictions.countryId
|
integer | Country ID. |
Mandatory | restrictions.regionId
|
integer | Region id. |
Mandatory | restrictions.transactionGroupId
|
integer | Transaction group id. |
Mandatory | restrictions.status
|
string | Restriction status. Possible values: [ENABLED, DISABLED] |
Optional | restrictions.startDate
|
DateTime | The date when restrictions come into effect. |
Optional | restrictions.endDate
|
DateTime | The date when restrictions are removed. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/setGeoRestrictions \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardNumber" : 4000010000000001
},
"restrictions": {
"restriction": [
{
"regionId": 5,
"transactionGroupId": 999,
"status": "DISABLED",
"startDate": "2021-05-01T00:00:00",
"endDate": "2021-05-09T23:59:59"
},
{
"regionId" : 11,
"transactionGroupId" : 3,
"status" : "DISABLED"
}
]
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
getGeoRestrictions
Get geo-restrictions list for a card. Only the rules that impose limitations for the card are returned.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Posible identification options: cardNumber or cardId . |
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. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getGeoRestrictions \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000001
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | regions |
Object | Region list. |
Mandatory | regions.id
|
integer | Region id. |
Mandatory | regions.description
|
string | Description. |
Optional | countries |
Object | Country list. |
Mandatory | countries.id
|
integer | Country id. |
Mandatory | countries.description
|
string | Description. |
Mandatory | transactionGroups |
Object | Transaction group list. |
Mandatory | transactionGroups.id
|
integer | Group id |
Mandatory | transactionGroups.description
|
string | Description. |
Mandatory | restrictions |
Object | Restriction list. |
Mandatory | restrictions.countryId
|
integer | Country id. |
Mandatory | restrictions.regionId
|
integer | Region id. |
Mandatory | restrictions.transactionGroupId
|
integer | Transaction group id. |
Mandatory | restrictions.status
|
string | Restriction status. Possible values: [ENABLED, DISABLED] |
Optional | restrictions.startDate
|
DateTime | The date when restrictions come into effect. |
Optional | restrictions.endDate
|
DateTime | The date when restrictions are removed. |
Response example
{
"regions": {
"region": [
{
"id": 1,
"description": "NETHERLANDS"
},
{
"id": 2,
"description": "EUROPEAN UNION"
}
]
},
"countries": {
"country": [
{
"id": 978,
"description": "NETHERLANDS"
},
{
"id": 840,
"description": "UNITED STATES"
}
]
},
"transactionGroups": {
"transactionGroup": [
{
"id": 1,
"description": "Purchase Or Payments"
},
{
"id": 2,
"description": "Cash Withdrawal"
}
]
},
"restrictions": {
"restriction": [
{
"regionId": 1,
"transactionGroupId": 1,
"status": "DISABLED"
},
{
"countryId": 640,
"transactionGroupId": 1,
"status": "DISABLED",
"startDate": "2021-05-01T00:00:00+03:00",
"endDate": "2021-05-09T23:59:59+03:00"
}
]
}
}
cardStatusInquiry
Make card status inquiry.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (barCode ) or (cardNumberMask and cardholderId ) or (cardNumberMask and phoneNumber ).Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (barCode ) 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/cardStatusInquiry \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000003
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | hotCardStatus |
integer | Card status |
Response example
{
"hotCardStatus" : 0
}
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 '5C' 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" : "3006P_0000002"
},
"virtualCardIdentification" : {
"expDate" : 202512,
"productType" : "5C"
},
"amount" : 0,
"currency" : 978,
"accountNumber" : "3006978700000000108",
"deliveryMethod" : "WS"
}'
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": "4140050021658271",
"cardId": "100000000873",
"expDate": "202512",
"productType": "5C"
}
}
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" : 100000000873
}
}'
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": "202512",
"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": []
}
}
getCardFees
Get card fees.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardNumber |
string | Card number. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getCardFees \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardNumber" : 4000010000000003
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | fees |
Object | Fee list. |
Mandatory | fees.feeType
|
string | Fee type. |
Mandatory | fees.feeValue
|
number | Fee value. |
Response example
{
"fees" : [ {
"feeValue" : 1.46581298050294517310021547018550336360931396484375,
"feeType" : "feeType"
}, {
"feeValue" : 1.46581298050294517310021547018550336360931396484375,
"feeType" : "feeType"
} ]
}
getCardListByOwner
Get card list using client ID and/or cardholder ID.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. (customerId ) or (phoneNumber ) or (email ) are required. |
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. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getCardListByOwner \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"customerId" : 10022830
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | cards |
Object | |
Optional | cards.encryptedCardNumber
|
ByteArray | Encrypted card number. |
Mandatory | cards.cardNumberMask
|
string | Masked card number. |
Mandatory | cards.cardNumber
|
string | Card number. |
Optional | cards.expiryDate
|
string | Card expiration date. |
Optional | cards.formattedExpiryDate
|
string | User-formatted card expiration date. |
Optional | cards.cardId
|
string | Card id. |
Optional | cards.hotCardStatus
|
integer | Card status |
Optional | cards.cardTypeName
|
string | Card type. |
Optional | cards.embossedName
|
string | Embossed name. |
Optional | cards.customerId
|
string | Client id. |
Optional | cards.customerName
|
string | Client name. |
Optional | cards.personId
|
string | Cardholder id. |
Optional | cards.pinDenialCounter
|
integer | Incorrect PIN attempts count |
Optional | cards.plasticNumber
|
integer | Plastic number |
Optional | cards.hotCardStatusDescription
|
string | Card status description. |
Optional | cards.cardIsPrimary
|
boolean | Primary card flag. |
Optional | cards.cardBindToCustomer
|
boolean | Card binded to client flag. |
Optional | cards.customerIsCardholder
|
boolean | Is client a cardholder flag. |
Optional | cards.cardContractId
|
string | Card contract id. |
Optional | cards.cardPlasticId
|
string | Plastic type id. |
Optional | cards.cardPlasticDescription
|
string | Plastic type description. |
Optional | cards.memorableWord
|
string | Secret word. |
Optional | cards.email
|
string | E-mail. |
Optional | cards.lastWrongPinDate
|
DateTime | Last incorrect PIN attempt date/time. |
Optional | cards.cardCreationDate
|
DateTime | Card issue date. |
Optional | cards.cardBlockingDate
|
DateTime | Card lock date/time. |
Optional | cards.directDebitAccount
|
string | Account used for auto-payments. |
Optional | cards.cardholderMobilePhoneNumber
|
string | Cardholder's phone number. |
Optional | cards.accounts
|
Object | List of accounts for the card. |
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. |
Response example
{
"cards": {
"card": [
{
"cardNumberMask": "400001******0004",
"expiryDate": 202512,
"cardId": 99,
"hotCardStatus": 0,
"cardTypeName": "EC/MC Virtual",
"embossedName": "TEST FOR_BO_TRANS1",
"customerId": 10022830,
"personId": 40000004,
"pinDenialCounter": 0,
"plasticNumber": 0,
"hotCardStatusDescription": "VALID CARD",
"cardIsPrimary": true,
"cardBindToCustomer": true,
"customerIsCardholder": false
},
{
"cardNumberMask": "400001******0008",
"expiryDate": 202512,
"hotCardStatus": 8,
"cardTypeName": "EC/MC Virtual",
"embossedName": "TEST FOR_BO_TRANS1",
"customerId": 10022830,
"personId": 40000008,
"pinDenialCounter": 0,
"plasticNumber": 0,
"hotCardStatusDescription": "CALL SECURITY, CAPTURE",
"cardIsPrimary": true,
"cardBindToCustomer": true,
"customerIsCardholder": false
},
{
"cardNumberMask": "400001******0017",
"expiryDate": 202512,
"hotCardStatus": 0,
"cardTypeName": "EC/MC Virtual",
"embossedName": "TEST FOR_BO_TRANS1",
"customerId": 10022830,
"personId": 40000017,
"pinDenialCounter": 0,
"plasticNumber": 0,
"hotCardStatusDescription": "VALID CARD",
"cardIsPrimary": true,
"cardBindToCustomer": true,
"customerIsCardholder": false
}
]
}
}
getTransactionSchemeAdditions
Get additional transaction scheme rules.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: cardId . |
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 | templateSchemeId |
long | Id for the scheme used as a template |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getTransactionSchemeAdditions \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardId": 1000
},
"templateSchemeId": 10
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | transactionSchemeAdditions |
Object | Additional transaction scheme rules list. |
Mandatory | transactionSchemeAdditions.id
|
long | Rule id |
Mandatory | transactionSchemeAdditions.domain
|
string | Issuer institution id. |
Mandatory | transactionSchemeAdditions.countryGroup
|
integer | Country group id |
Mandatory | transactionSchemeAdditions.mccGroup
|
integer | MCC group id |
Mandatory | transactionSchemeAdditions.transactionType
|
integer | Transaction type: format |
Mandatory | transactionSchemeAdditions.posDataCode
|
string | POS data code value. |
Response example
{
"transactionSchemeAdditions": {
"addition": [
{
"id": 141,
"domain": 9999,
"countryGroup": 9987,
"mccGroup": -1,
"transactionType": 781,
"posDataCode": "************"
},
{
"id": 142,
"domain": 9999,
"countryGroup": 9987,
"mccGroup": -1,
"transactionType": 781,
"posDataCode": "************"
},
{
"id": 143,
"domain": 9999,
"countryGroup": 9987,
"mccGroup": -1,
"transactionType": 781,
"posDataCode": "************"
}
]
}
}
setTransactionSchemeAdditions
Set rules list for the additional transaction scheme.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: cardId . |
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. |
Mandatory | transactionSchemeAdditions |
Object | Additional transaction scheme rules list. |
Mandatory | transactionSchemeAdditions.id
|
long | Rule id |
Mandatory | transactionSchemeAdditions.domain
|
string | Issuer institution id. |
Mandatory | transactionSchemeAdditions.countryGroup
|
integer | Country group id |
Mandatory | transactionSchemeAdditions.mccGroup
|
integer | MCC group id |
Mandatory | transactionSchemeAdditions.transactionType
|
integer | Transaction type: format |
Mandatory | transactionSchemeAdditions.posDataCode
|
string | POS data code value. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/setTransactionSchemeAdditions \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification": {
"cardId": 1000
},
"transactionSchemeAdditions": {
"addition": [
{
"id": 141,
"domain": 9999,
"countryGroup": 9987,
"mccGroup": -1,
"transactionType": 793,
"posDataCode": "************"
},
{
"id": 142,
"domain": 9999,
"countryGroup": 9987,
"mccGroup": -1,
"transactionType": 781,
"posDataCode": "************"
},
{
"id": 143,
"domain": 9999,
"countryGroup": 9987,
"mccGroup": -1,
"transactionType": 781,
"posDataCode": "************"
}
]
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | Operation completion code in SmartVista. |
Response example
{
"responseCode" : 00
}
topUp
Top up a card or an account.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/topUp \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"pan": "string",
"expiryMonth": "string",
"expiryYear": "string",
"cvc": "string",
"cardholderName": "string"
}'
Response example
{
"preAuthorization": false,
"cardIdentification": {
"encryptedCardNumber": [
"string"
],
"cardNumberMask": "string",
"cardLastDigitMask": "string",
"cardNumber": "string",
"cardId": "string",
"expDate": "string",
"plasticNumber": 0,
"phoneNumber": "string",
"cardholderId": "string",
"customerId": "string",
"customerNumber": "string",
"barCode": "string",
"cvv2": "string",
"externalCardId": "string",
"token": "string",
"cardTypeCode": "string",
"email": "string",
"institutionId": "string"
},
"amount": 0,
"currency": 0,
"accountType": "ACCOUNT_TYPE_DEFAULT",
"accountIndex": 0,
"accountNumber": "string",
"account2Type": "ACCOUNT_TYPE_DEFAULT",
"account2Index": 0,
"account2Number": "string",
"tds": {
"xid": "string",
"cavv": "string",
"ucaf": "string",
"authenticationIndicator": "NOT_PERFORMED"
},
"senderReceiverInfo": {
"senderName": "string",
"senderAddress": "string",
"senderCity": "string",
"senderCountry": "string",
"senderPostalCode": "string",
"receiverName": "string"
},
"pointOfServiceDataCode": "string",
"pointOfServiceConditionCode": "string",
"fee": {
"feeAmount": 0,
"feeCurrency": 0
},
"cardAcceptorParameters": {
"terminalIdentification": "string",
"merchantIdentification": "string",
"merchantType": "string",
"nameAndLocation": "string"
},
"securityLevelIndicator": "string",
"fundingSource": 0,
"externalTransactionId": "string",
"originalTransactionParameters": {
"systemTraceAuditNumber": 0,
"localTransactionDate": "2021-10-29T11:57:14.481Z",
"rrn": "string"
},
"posCardholderPresence": 0,
"uniqueReferenceNumber": "string",
"otp": "string",
"serviceId": "string",
"paymentSpecificData": {
"f57": "string",
"f58": "string",
"f59": "string",
"f60": "string",
"f61": "string",
"f62": "string",
"f63": "string",
"f64": "string",
"f65": "string",
"f66": "string",
"f67": "string",
"f68": "string",
"f69": "string",
"f70": "string",
"f71": "string",
"f72": "string",
"f73": "string"
},
"transactionComment": "string",
"additionalAmounts": [
{
"accountType": "ACCOUNT_TYPE_DEFAULT",
"amountType": "string",
"currency": 0,
"amount": 0
}
]
}
Transactions
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" : 4140050021658271,
"expDate" : 202512
},
"amount" : 10000,
"currency" : 978,
}'
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": 620399,
"localTransactionDate": "2021-09-23T14:39:15",
"rrn": "000000154798",
"authorizationIdResponse": "154798",
"paymentSpecificData": {}
}
debitCard
Withdraw funds from the card.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Optional | preAuthorization |
boolean | Pre-authorization flag. |
Mandatory | cardIdentification |
Object | Card identification parameters. Possible identification options: (cardNumber ) or (cardId ) or (barCode ) 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. |
Mandatory | amount |
integer | Amount. |
Mandatory | currency |
integer | Currency |
Optional | fee |
Object | Acquirer fee parameters. |
Mandatory | fee.feeType
|
string | Fee type. |
Mandatory | fee.feeValue
|
number | Fee value. |
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. |
Optional | tds |
Object | 3DS transaction parameters. |
Optional | tds.xid
|
string | VISA 3DS transaction id. |
Optional | tds.cavv
|
string | VISA authentication check value. |
Optional | tds.ucaf
|
string | Mastercard universal authentification field. |
Optional | tds.authenticationIndicator
|
string | E-commerce transaction authentification type. Possible values: [NOT_PERFORMED, TDS_MERCHANT_ONLY, TDS_PERFORMED, ADDITIONAL_PROTOCOL_USED, RECURRENT_PAYMENT_AUTH] |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/debitCard \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardNumber" : 4000010000000003
},
"amount" : 100000,
"currency" : 978,
"fee" : {
"feeAmount" : 1000
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | responseCode |
string | SVFE operation completion code. |
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. |
Optional | acquirerFeeAmount |
string | Acquirer fee amount. |
Optional | issuerFeeAmount |
string | Issuer fee amount. |
Optional | paymentSpecificData |
Object | Payment specific data. |
Optional | paymentSpecificData.f57
|
string | Specific field 57. |
Optional | paymentSpecificData.f58
|
string | Specific field 58. |
Optional | paymentSpecificData.f59
|
string | Specific field 59. |
Optional | paymentSpecificData.f60
|
string | Specific field 60. |
Optional | paymentSpecificData.f61
|
string | Specific field 61. |
Optional | paymentSpecificData.f62
|
string | Specific field 62. |
Optional | paymentSpecificData.f63
|
string | Specific field 63. |
Optional | paymentSpecificData.f64
|
string | Specific field 64. |
Optional | paymentSpecificData.f65
|
string | Specific field 65. |
Optional | paymentSpecificData.f66
|
string | Specific field 66. |
Optional | paymentSpecificData.f67
|
string | Specific field 67. |
Optional | paymentSpecificData.f68
|
string | Specific field 68. |
Optional | paymentSpecificData.f69
|
string | Specific field 69. |
Optional | paymentSpecificData.f70
|
string | Specific field 70. |
Optional | paymentSpecificData.f71
|
string | Specific field 71. |
Optional | paymentSpecificData.f72
|
string | Specific field 72. |
Optional | paymentSpecificData.f73
|
string | Specific field 73. |
Response example
{
"systemTraceAuditNumber" : 51106,
"paymentSpecificData" : {
"f61" : "f61",
"f72" : "f72",
"f60" : "f60",
"f71" : "f71",
"f63" : "f63",
"f62" : "f62",
"f73" : "f73",
"f65" : "f65",
"f64" : "f64",
"f67" : "f67",
"f66" : "f66",
"f58" : "f58",
"f69" : "f69",
"f57" : "f57",
"f68" : "f68",
"f59" : "f59",
"f70" : "f70"
},
"acquirerFeeAmount" : "acquirerFeeAmount",
"processingCode" : 170000,
"issuerFeeAmount" : "issuerFeeAmount",
"localTransactionDate" : "2000-01-23T04:56:07.000+00:00",
"otp" : "otp",
"authorizationIdResponse" : "123ABC",
"responseCode" : 00,
"rrn" : 987654321987,
"uniqueReferenceNumber" : "uniqueReferenceNumber"
}
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 '{
"cardIdentification": {
"cardNumber": 4140050021658271,
"expDate": 202512
},
"amount": 10000,
"currency": 978,
"senderReceiverInfo": {
"senderName": "Tor, John",
"senderAddress": "New York, USA"
},
"pointOfServiceDataCode": 810
}'
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": 620400,
"localTransactionDate": "2021-09-23T14:40:05",
"rrn": "000000154799",
"authorizationIdResponse": "154801",
"paymentSpecificData": {}
}
getOrderDetails
Get payment order detailed information.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | orderId |
long | Payment order id |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getOrderDetails \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"orderId": 2343
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | transactionList |
Object | Transaction list. |
Mandatory | transactionList.merchantId
|
string | Merchant id. |
Mandatory | transactionList.terminalId
|
string | Terminal id. |
Mandatory | transactionList.transactionDate
|
DateTime | Transaction date/time. |
Optional | transactionList.cardNumber
|
string | Card number. |
Optional | transactionList.transactionAmount
|
integer | Transaction amount. |
Optional | transactionList.transactionCurrency
|
integer | Transaction currency code |
Optional | transactionList.submittedAmount
|
integer | Requested amount. |
Optional | transactionList.submittedCurrency
|
integer | Requested currency |
Optional | transactionList.authorizationCode
|
string | Authorization code. |
Optional | transactionList.cashbackAmount
|
integer | Cashback amount. |
Optional | transactionList.transactionType
|
string | Transaction type. |
Optional | transactionList.networkType
|
string | Network type. |
Optional | transactionList.cardType
|
string | Card type. |
Optional | transactionList.orderNumber
|
string | Payment order number. |
Response example
{
"transactionList" : [ {
"terminalId" : "00999201",
"transactionDate" : "2000-01-23T04:56:07.000+00:00",
"merchantId" : "M000001",
} ]
}
getPaymentOrders
Get payment orders list.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | merchantNumber |
string | Merchant number. |
Mandatory | institutionId |
string | Internal institution id. |
Mandatory | period |
Object | Time span. |
Optional | period.start
|
DateTime | Start date. |
Optional | period.end
|
DateTime | End date. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getPaymentOrders \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantNumber" : "M000001",
"institutionId": "3012",
"period": {
"start": "2020-04-20",
"end": "2020-04-30"
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | orderList |
Object | Payment orders list. |
Mandatory | orderList.id
|
long | Payment order id |
Optional | orderList.eventDate
|
DateTime | Event date. |
Optional | orderList.purpose
|
string | Purpose. |
Optional | orderList.currency
|
integer | Currency code |
Optional | orderList.amount
|
integer | Amount. |
Optional | orderList.status
|
string | Date of the last status update. |
Optional | orderList.orderNumber
|
string | Payment order number. |
Response example
{
"orderList" : [ {
"amount" : 1,
"orderNumber" : "2344552",
"id" : 3,
"eventDate" : "2020-04-30",
} ]
}
getTransactionDetails
Get transaction details.
Request parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | utrnno |
long | Transaction id in SVFE |
Optional | reversal |
boolean | Reversal flag. |
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getTransactionDetails \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"utrnno": 2203248,
"reversal": true
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | transaction |
Object | Transaction parameters. |
Optional | transaction.boWriteOffDate
|
DateTime | SVBO write-off time and date. |
Mandatory | transaction.authorizationDate
|
DateTime | Authorization date/time. |
Mandatory | transaction.transactionType
|
string | Transaction type. |
Mandatory | transaction.operationDirection
|
string | Transaction direction. Possible values: [CREDIT, DEBIT, NOOP] |
Mandatory | transaction.amount
|
integer | Transaction amount. |
Mandatory | transaction.currency
|
integer | Operation currency |
Mandatory | transaction.amountInAccountCurrency
|
integer | Transaction amount in account currency. |
Mandatory | transaction.utrnno
|
long | Transaction id in SVFE |
Optional | transaction.boUtrnno
|
long | Transaction ID in SVBO. |
Optional | transaction.transactionDescription
|
string | Transaction description. |
Optional | transaction.feeDirection
|
string | Fee direction. Possible values: [CREDIT, DEBIT, NOOP] |
Optional | transaction.acquireFeeAmount
|
integer | Acquirer fee amount, calculated for SVFE operation. |
Optional | transaction.feIssuerFeeAmount
|
integer | Issuer fee amount, calculated for SVFE operation. |
Optional | transaction.boIssuerFeeAmount
|
integer | Issuer fee amount, calculated for SVBO operation. |
Optional | transaction.mcc
|
long | MCC. |
Optional | transaction.merchantCountry
|
string | Merchant country. |
Optional | transaction.merchantCity
|
string | Merchant city. |
Optional | transaction.merchantName
|
string | Merchant name. |
Optional | transaction.merchantId
|
string | Merchant id. |
Optional | transaction.terminalAddress
|
string | Terminal address. |
Optional | transaction.posDataCode
|
string | POS data code. |
Optional | transaction.authorizationIdResponse
|
string | Authorization id. |
Optional | transaction.reversalDate
|
DateTime | Reversal date/time. |
Optional | transaction.reversal
|
boolean | Reversal flag. |
Optional | transaction.requestAmount
|
integer | Requested amount for the transaction. |
Optional | transaction.terminalId
|
string | Terminal id. |
Optional | transaction.payId
|
string | ID assigned by service provider. |
Response example
{
"transaction": {
"authorizationDate": "2015-04-09T11:15:35+04:00",
"transactionType": 774,
"operationDirection": "debit",
"amount": 10000,
"currency": 978,
"amountInAccountCurrency": 0,
"utrnno": 2203248,
"transactionDescription": "POS purchase",
"feeDirection": "debit",
"acquireFeeAmount": 0,
"feIssuerFeeAmount": 0,
"mcc": 5999,
"merchantCountry": "NLD",
"merchantCity": "NETHERLANDS1234512345123451234512345",
"merchantName": "PREDPRINIMATEL",
"merchantId": "M999101",
"terminalAddress": "MERCHANT2 NLD NETHERLANDS ELANDSGRACHT 50/A",
"authorizationIdResponse": 0,
"requestAmount": 10,
"terminalId": 1
}
}
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": 100000000873
},
"period": {
"start": "2020-04-01",
"end": "2020-05-01"
}
}'
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
}
]
}
getTransactionCurrencies
Get transaction currencies.
Request example
curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getTransactionCurrencies \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardIdentification" : {
"cardId" : "1000"
}
}'
Response parameters
Required | Name | Type | Description |
---|---|---|---|
Mandatory | transaction.currency
|
integer | Currency code |
Response example
{
"currencies": [
978
]
}