For any question, we are one click away

Contact us

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.

Download Postman collection

Start using the Sandbox
Click the log in link to create an account on the Sandbox platform:
/cabinet/
You will get access to all of the API's and Merchant Portal.
icon

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

getAtmStatusExt

Get ATMs statuses. Allows to receive a status of some ATM (by pid or terminal identifier) or statuses of all institution ATMs (by institution identifier) or statuses of all registered ATMs.

Request parameters

Required Name Type Description
Optional terminalId String Terminal identifier.
Optional pid Integer [1..64] Internal SVFE terminal identifier (pid).
Optional institutionId String Internal institution identifier.

Request example

curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAccountBalances \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "terminalId":"2111TEST",
  "institutionId":"2111"
}'

Response parameters

Required Name Type Description
Mandatory atmStatusList Object Terminal list.
Mandatory atmStatusList.terminalId string Terminal id.
Mandatory atmStatusList.linkStatus string Connection status (1 - connected, 2- no connection).
Mandatory atmStatusList.openFlag string ATM status flag (0 - closed, 1 - opened).
Optional atmStatusList.lastTransactionDate DateTime Last transaction date/time.
Optional atmStatusList.lastWithdrawalDate DateTime Last cash withdrawal date/time.
Optional atmStatusList.location string ATM address.
Mandatory atmStatusList.hopperStatusList Array of objects. Cassette list. Each cassete is a hopperStatus object. See nested parameters.
Mandatory atmStatusList.safeStatus string Safe status (0 - closed, 1 - opened).
Mandatory atmStatusList.supervisorMode string Supervisor mode flag (0 - normal mode, 1 - supervisor mode).
Mandatory atmStatusList.loadConfigurationStatus string Configuration load mode flag (0 - normal mode, 1 - Configuration load mode).
Optional atmStatusList.receiptPrinterStateInfo object Receipt printer health details. See nested parameters.
Optional atmStatusList.journalPrinterStateInfo object Journal printer health details. See nested parameters.
Optional atmStatusList.encryptorStateInfo object Encryptor health details. See nested parameters.
Optional atmStatusList.cardReaderStateInfo object Card reader health details. See nested parameters.
Optional atmStatusList.contactlessReaderStateInfo object Contactless reader health details. See nested parameters.
Optional atmStatusList.drawerStateInfo object Bunch presenter health details. See nested parameters.
Mandatory atmStatusList.bnaStateInfo object BNA health details. See nested parameters.
Optional atmStatusList.iptService string IPT software version.
Mandatory atmStatusList.ejStateInfo object Electronic journal health details. See nested parameters.
Optional atmStatusList.lastDepositDate String (date-time) Last deposit operation date/time.

Cassette parameters

The hopperStatus block contains the following parameters.

Required Name Type Description
Mandatory position Integer [1..64] Cassette position.
Mandatory currency Integer [1..64] Currency code.
Mandatory status string Cassette status (0 - disabled, 1 - enabled).
Mandatory billsValue Integer [1..64] Bill value.
Mandatory billsLoaded Integer [1..64] Number of loaded bills.
Mandatory billsOut Integer [1..64] Number of withdrawn bills.
Mandatory billsRejected Integer [1..64] Number of diverted and retracted bills.
Mandatory billsEnd Integer [1..64] Number of remained bills.

Device state information

This block contains the following parameters:

Required Name Type Description
Mandatory status String Status (0 - no device, 1 - normal, 2 - warnings, 3 - errors).
Optional errorDescription String Error description.
Optional errorDate String (date-time) Error date.

BNA state information

This block contains the following parameters:

Required Name Type Description
Mandatory status String Status (0 - no device, 1 - normal, 2 - warnings, 3 - errors).
Optional errorDescription String Error description.
Optional errorDate String (date-time) Error date.
Optional currencies Array of objects BNA currency list. See nested parameters.

BNA currency parameters

This block contains the following parameters:

Required Name Type Description
Mandatory code Integer [1..32] Numeric currency code.
Mandatory amount Integer [1..64] Deposited amount.
Mandatory notesCount Integer [1..32] Deposited banknotes counter.
Mandatory denominationCounters Array of objects Deposited banknotes counter list. See nested parameters.

Counter parameters

This block contains the following parameters:

Required Name Type Description
Mandatory denomination Integer [1..32] Denomination.
Mandatory value Integer [1..32] Counter.

Response example

{
    "atmStatusList": {
        "atmStatus": {
            "terminalId": "2111TEST",
            "linkStatus": 2,
            "openFlag": 0,
            "lastTransactionDate": "2024-05-16T11:07:09",
            "hopperStatusList": {
                "hopperStatus": [
                    {
                        "position": 1,
                        "currency": "000",
                        "status": 3,
                        "billsValue": 0,
                        "billsLoaded": 0,
                        "billsOut": 0,
                        "billsRejected": 0,
                        "billsEnd": 0
                    },
                    {
                        "position": 2,
                        "currency": "000",
                        "status": 3,
                        "billsValue": 0,
                        "billsLoaded": 0,
                        "billsOut": 0,
                        "billsRejected": 0,
                        "billsEnd": 0
                    }
                ]
            },
            "safeStatus": 0,
            "supervisorMode": 0,
            "loadConfigurationStatus": 0,
            "iptService": ""
        }
    }
}

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
}

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:

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"
    }

Accounts

changeAccountArrestAmount

Change account arrest amount.

Request parameters

Required Name Type Description
Mandatory accountNumber string Account number.
Mandatory amount integer amount
Mandatory currency integer Currency

Request example

curl --request POST \
--url https://dev.bpcbt.com/payment/apigate/ws/rest/changeAccountArrestAmount \
--header 'Content-Type: application/json' \
--data-raw '{
  "accountNumber": "string",
  "amount": 0,
  "currency": 0
}'

Response parameters

Required Name Type Description
Mandatory responseCode string Operation completion code in SmartVista.

Response example

{
  "responseCode": "string",
  "processingCode": "string",
  "systemTraceAuditNumber": 0,
  "localTransactionDate": "2021-10-29T09:50:01.457Z",
  "rrn": "string",
  "authorizationIdResponse": "string",
  "utrnno": 0
}

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
}

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"
}

getAccountBalanceFromBo

Get account balance from SVBO.

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/getAccountBalanceFromBo \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "accountNumber":2111978700000000372
}'

Response parameters

Required Name Type Description
Mandatory availableBalance Integer [1..64] Account available balance.
Mandatory holdBalance Integer [1..64] Hold balance.
Mandatory exceedBalance Integer [1..64] Exceed balance.

Response example

{
    "availableBalance": 0,
    "holdBalance": 0,
    "exceedBalance": 0
}

getAccountBalances

Get account balances from SVBO.

Request parameters

Required Name Type Description
Mandatory accountNumber String Account number.
Optional accountId Integer [1..64] Account identifier.
Mandatory institutionId String Internal institution identifier.

Request example

curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAccountBalances \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "accountNumber":"2111978700000000372",
  "institutionId":"2111"
}'

Response parameters

Required Name Type Description
Mandatory accountBalances Array of objects Array of account balances. Each balance is an account_balances object. See nested parameters

Below are the parameters of the account_balances block (data about an account balances).

Required Name Type Description
Optional balanceType String Balance type.
Optional balanceTypeDescription String Balance type description.
Optional amount String Balance amount.
Optional currency String Balance currency.
Optional amountAccCurrency String Amount of account currency.
Mandatory accountCurrency String Account currency.

|

Response example

{
    "account_balances": [
        {
            "balance_type": "BLTP0001",
            "balance_type_description": "Ledger",
            "amount": 0,
            "currency": 978,
            "amount_acc_currency": 0,
            "account_currency": 978
        },
        {
            "balance_type": "BLTP0002",
            "balance_type_description": "Hold",
            "amount": 0,
            "currency": 978,
            "amount_acc_currency": 0,
            "account_currency": 978
        },
        {
            "balance_type": "BLTP1001",
            "balance_type_description": "Assigned exceed limit",
            "amount": 0,
            "currency": 978,
            "amount_acc_currency": 0,
            "account_currency": 978
        }
    ]
}

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
        }
      ]
    }

getAccountListByOwner

Get a list of accounts belonged to a customer.

Request parameters

Required Name Type Description
Mandatory customerId string Customer identifier.

Request example

curl --request POST \
--url https://dev.bpcbt.com/v1/apigate/ws/rest/getAccountListByOwner \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "customerId":2111_1709647552366
}'

Response parameters

Required Name Type Description
Mandatory accounts array of objects List of the customer's accounts. Each account is an account object. See nested parameters

Below are the parameters of the account block (data about an account).

Required Name Type Description
Mandatory number String Account number.
Optional accountType Integer [1..32] Account type.
Mandatory currency Integer [1..32] Account currency.
Optional currencyAlphaCode String Alpha-code of account currency.
Mandatory balance Integer [1..64] Account balance.
Optional creditLimit Integer [1..64] Credit limit.
Mandatory customerId String Client identifier.
Optional defaultAccount Boolean Default account flag.
Optional status Integer [1..2] Status of account arrest. See the list of values below.
Optional statusDescription String Description of account arrest status.

Statuses of account arrest

Response example

{ 
  "accounts":[
    {
      "number":2111978700000000372,
      "accountType":0,
      "currency":978,
      "balance":389,
      "creditLimit":0,
      "status":0,
      "statusDescription":"NO RESTRICTIONS"
      }
  ]
}

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
  ]
}

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
  ]
}

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"
}

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"
}

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"
}

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"
}

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"
            }
          ]
        }
      }

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 E-mail
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
}

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

{ }

Cards & Wallets

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
}

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
}

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"
    }

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
}

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
}

changeCardStatus

Change card status. In the Sandbox you can change card status only for blocked cards (card status code is '6'). You can get the card status code with getCardData request. To change card status from '0' to '6' (blocked) use blockCard request.

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.
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 hotCardStatus integer Card status. For the Sandbox should be '0' to activate a blocked card.
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/changeCardStatus \
--header 'Authorization: Basic YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "cardIdentification" : {
    "cardId" : 100000000873
  },
  "hotCardStatus" : 0
}'

Response parameters

Required Name Type Description
Mandatory responseCode string Operation completion code in SmartVista. '00' is for success.

Response example

{
        "responseCode": "00",
        "processingCode": "950000",
        "systemTraceAuditNumber": 620398,
        "localTransactionDate": "2021-09-23T14:38:26"
    }

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
}

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"
        }
    }

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
}

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"
}

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
}

getCardBalance

Get card balance.

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).
Optional cardIdentification.encryptedCardNumber ByteArray Encrypted card number.
Optional cardIdentification.cardNumberMask string Masked card number.
Optional 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 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 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 parameters

Required Name Type Description
Optional cardIdentification Object Card parameters (number and expiration date).
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 balance integer Balance.
Optional currency integer Currency
Optional availableExceedLimit integer Credit limit.
Optional availableExceedLimitCurrency integer Credit limit currency
Optional ownFunds integer Own funds.
Optional ownFundsCurrency integer Own funds currency
Optional totalAmountDue integer Total amount due.
Optional minimumAmountDue integer Minimum payment amount.
Optional dueDate DateTime Payment due date.

Request example

curl --request POST \
--url https://dev.bpcbt.com/payment/apigate/ws/rest/getCardBalance \
--header 'Content-Type: application/json' \
--data-raw '{
  "cardIdentification" : {
    "cardNumber" : 4000010000000001,
    "expDate" : 202012
  }
}'

Response example

{
  "balance" : 0,
  "availableExceedLimit" : 1,
  "availableExceedLimitCurrency" : 5,
  "ownFunds" : 5,
  "dueDate" : "2000-01-23T04:56:07.000+00:00",
  "totalAmountDue" : 7,
  "currency" : 6,
  "cardIdentification" : {
    "cvv2" : "cvv2",
    "cardholderId" : "cardholderId",
    "externalCardId" : "externalCardId",
    "institutionId" : "institutionId",
    "plasticNumber" : 0,
    "customerNumber" : "customerNumber",
    "expDate" : "expDate",
    "cardNumberMask" : "cardNumberMask",
    "barCode" : "barCode",
    "token" : "token",
    "encryptedCardNumber" : [ "encryptedCardNumber", "encryptedCardNumber" ],
    "phoneNumber" : "phoneNumber",
    "cardLastDigitMask" : "cardLastDigitMask",
    "cardId" : "cardId",
    "customerId" : "customerId",
    "cardTypeCode" : "cardTypeCode",
    "cardNumber" : "cardNumber",
    "email" : "email"
  },
  "ownFundsCurrency" : 978,
  "minimumAmountDue" : 9
}

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.idNumber string Identification document number.
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 Array of string 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":{
      "cardNumber":"4000000000000000",
      "expDate":"203001"
}
}'

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.expiryTime string (date-time) Card expiration time.
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.
Optional accounts.accountType string Account type.
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 identifier.
Optional accounts.defaultAccount boolean Default account indicator. Always true for the Sandbox.

Response example

{
    "cardData": {
        "cardNumber": 4000000000000000,
        "expiryDate": 203001,
        "cardId": 1001,
        "hotCardStatus": "",
        "cardTypeName": "VISA - PLUS",
        "embossedName": "GENERAL POOL",
        "customerId": "1001V_0000000",
        "personId": "1001V_0000000",
        "pinDenialCounter": 0,
        "plasticNumber": 1,
        "hotCardStatusDescription": "VALID CARD",
        "cardIsPrimary": false,
        "cardBindToCustomer": false,
        "customerIsCardholder": false,
        "cardContractId": "000125",
        "cardCreationDate": "2021-09-01",
        "cardBlockingDate": "2002-02-28T00:00:00",
        "accounts": {
            "accountData": [
                {
                    "number": 1001978000000000000,
                    "accountType": 1,
                    "currency": 978,
                    "currencyAlphaCode": "EUR",
                    "balance": 0,
                    "creditLimit": 0,
                    "customerId": "1001V_0000000",
                    "defaultAccount": true
                }
            ]
        }
    }
}

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"
  } ]
}

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": []
            }
        ]
    }

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
            }
          ]
        }
    }

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"
            }
          ]
        }
    }

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": "************"
            }
          ]
        }
    }

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"
}

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
}

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
    }
  ]
}

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"
}

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"
}

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",
  } ]
}

getTokenList

Get token list.

Request parameters

Required Name Type Description
Mandatory cardIdentification Object Card identification parameters. Possible identification options: (cardNumber) 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. If not passed, all plastic cards of the card will be returned.
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/payment/apigate/ws/rest/getTokenList \
--header 'Content-Type: application/json' \
--data-raw '{
  "cardIdentification" : {
    "cardNumber": 4000010000000001
  }
}'

Response parameters

Required Name Type Description
Optional tokenList Object
Mandatory tokenList.tokenValue string Token value.
Optional tokenList.plasticNumber integer Plastic number
Optional tokenList.expiryDate string Expiration date.
Mandatory tokenList.active boolean Token activity flag.
Optional tokenList.seid string Application id.
Optional tokenList.payId string Id assigned by service provider.

Response example

{
        "tokenList": {
          "token": [
            {
              "tokenValue": 4795780171000290,
              "plasticNumber": 0,
              "expiryDate": 2012,
              "active": true,
              "seid": "1234567890ABCDEFGHIJ1234567890ABCDEFGHIJ00000000",
              "payId": 103
            },
            {
              "tokenValue": 4795780171111290,
              "plasticNumber": 1,
              "expiryDate": 2212,
              "active": true,
              "seid": "1234567890ABCDEFGHIJ1234567890ABCDEFGHIJ00000000"
            }
          ]
        }
      }

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
            }
        ]
    }

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
        }
      }

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
  ]
}

p2pCredit

p2pCredit. The method also allows getting the transaction status. To check status, send a request identical to the original request but add the originalTransactionParameters element with values received in response to original request.

Request parameters

Required Name Type Description
Optional 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 accountNumber string Account number.
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]
Optional senderReceiverInfo Object Information about the sender and recipient of the payment.
Optional senderReceiverInfo.senderName string Sender name in 'Lastname, Firstname' fromat.
Optional senderReceiverInfo.senderAddress string Sender address.
Optional senderReceiverInfo.senderCity string Sender city.
Optional senderReceiverInfo.senderCountry string Sender country code.
Optional senderReceiverInfo.senderPostalCode string Sender postcode.
Optional senderReceiverInfo.receiverName string Recipient name in 'Lastname, Firstname' fromat.
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.
Optional pointOfServiceConditionCode string A code that defines the conditions for conducting a transaction at a service point.
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 securityLevelIndicator string Security level indicator.
Optional debitedCardNumber string Number of a card being debited.
Optional externalRRN string Debit transaction RNN.
Optional originalTransactionParameters Object Initial transaction parameters. Must be included in transaction status check request.
Mandatory originalTransactionParameters.systemTraceAuditNumber integer Audit record number
Mandatory originalTransactionParameters.localTransactionDate DateTime Transaction date. format: date-time
Mandatory originalTransactionParameters.rrn string External id RNN.
Optional posCardholderPresence integer Cardholder presense at a service point type
Optional businessApplicationIdentifier string Business application id.
Optional mcTransactionTypeIndicator string MC transaction type id.

Request example

curl --request POST \
--url https://dev.bpcbt.com/payment/apigate/ws/rest/p2PCredit \
--header 'Content-Type: application/json' \
--data-raw '{
  "cardIdentification": {
    "cardNumber": 4000010000000003,
    "expDate": 202012
  },
  "amount": 10000,
  "currency": 978,
  "tds": {
    "xid": "F6657773EF51322AB339823A59412D4D2F535D52",
    "cavv": 1.018951e+34,
    "authenticationIndicator": "TDS_PERFORMED"
  },
  "senderReceiverInfo": {
    "senderName": "IVANOV, IVAN",
    "receiverName": "PETROV, PETR"
  },
  "pointOfServiceDataCode": 1
}'

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

{
        "responseCode": 0,
        "processingCode": 220000,
        "systemTraceAuditNumber": 149554,
        "localTransactionDate": "2017-07-04T10:51:15+04:00",
        "rrn": 987654321987,
        "authorizationIdResponse": 123456
    }

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": {}
    }
Categories:
Banking API V1
Categories
Search results