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

RequiredNameTypeDescription
OptionalterminalIdStringTerminal identifier.
OptionalpidInteger [1..64]Internal SVFE terminal identifier (pid).
OptionalinstitutionIdStringInternal 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

RequiredNameTypeDescription
MandatoryatmStatusListObjectTerminal list.
MandatoryatmStatusList.terminalIdstringTerminal id.
MandatoryatmStatusList.linkStatusstringConnection status (1 - connected, 2- no connection).
MandatoryatmStatusList.openFlagstringATM status flag (0 - closed, 1 - opened).
OptionalatmStatusList.lastTransactionDateDateTimeLast transaction date/time.
OptionalatmStatusList.lastWithdrawalDateDateTimeLast cash withdrawal date/time.
OptionalatmStatusList.locationstringATM address.
MandatoryatmStatusList.hopperStatusListArray of objects.Cassette list. Each cassete is a hopperStatus object. See nested parameters.
MandatoryatmStatusList.safeStatusstringSafe status (0 - closed, 1 - opened).
MandatoryatmStatusList.supervisorModestringSupervisor mode flag (0 - normal mode, 1 - supervisor mode).
MandatoryatmStatusList.loadConfigurationStatusstringConfiguration load mode flag (0 - normal mode, 1 - Configuration load mode).
OptionalatmStatusList.receiptPrinterStateInfoobjectReceipt printer health details. See nested parameters.
OptionalatmStatusList.journalPrinterStateInfoobjectJournal printer health details. See nested parameters.
OptionalatmStatusList.encryptorStateInfoobjectEncryptor health details. See nested parameters.
OptionalatmStatusList.cardReaderStateInfoobjectCard reader health details. See nested parameters.
OptionalatmStatusList.contactlessReaderStateInfoobjectContactless reader health details. See nested parameters.
OptionalatmStatusList.drawerStateInfoobjectBunch presenter health details. See nested parameters.
MandatoryatmStatusList.bnaStateInfoobjectBNA health details. See nested parameters.
OptionalatmStatusList.iptServicestringIPT software version.
MandatoryatmStatusList.ejStateInfoobjectElectronic journal health details. See nested parameters.
OptionalatmStatusList.lastDepositDateString (date-time)Last deposit operation date/time.

Cassette parameters

The hopperStatus block contains the following parameters.

RequiredNameTypeDescription
MandatorypositionInteger [1..64]Cassette position.
MandatorycurrencyInteger [1..64]Currency code.
MandatorystatusstringCassette status (0 - disabled, 1 - enabled).
MandatorybillsValueInteger [1..64]Bill value.
MandatorybillsLoadedInteger [1..64]Number of loaded bills.
MandatorybillsOutInteger [1..64]Number of withdrawn bills.
MandatorybillsRejectedInteger [1..64]Number of diverted and retracted bills.
MandatorybillsEndInteger [1..64]Number of remained bills.

Device state information

This block contains the following parameters:

RequiredNameTypeDescription
MandatorystatusStringStatus (0 - no device, 1 - normal, 2 - warnings, 3 - errors).
OptionalerrorDescriptionStringError description.
OptionalerrorDateString (date-time)Error date.

BNA state information

This block contains the following parameters:

RequiredNameTypeDescription
MandatorystatusStringStatus (0 - no device, 1 - normal, 2 - warnings, 3 - errors).
OptionalerrorDescriptionStringError description.
OptionalerrorDateString (date-time)Error date.
OptionalcurrenciesArray of objectsBNA currency list. See nested parameters.

BNA currency parameters

This block contains the following parameters:

RequiredNameTypeDescription
MandatorycodeInteger [1..32]Numeric currency code.
MandatoryamountInteger [1..64]Deposited amount.
MandatorynotesCountInteger [1..32]Deposited banknotes counter.
MandatorydenominationCountersArray of objectsDeposited banknotes counter list. See nested parameters.

Counter parameters

This block contains the following parameters:

RequiredNameTypeDescription
MandatorydenominationInteger [1..32]Denomination.
MandatoryvalueInteger [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

RequiredNameTypeDescription
OptionalinstitutionIdintegerInstitution id.
MandatorycustomerNumberstringClient 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

RequiredNameTypeDescription
MandatorycustomerNumberstringClient number.
MandatorycustomerIdstringClient id.
OptionalentityTypestring
OptionalentityTypeNamestring
OptionalfirstNamestringFirst name.
OptionalsecondNamestringSecond name.
OptionalsurnamestringSurname.
OptionalstatusstringCustomer 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

RequiredNameTypeDescription
MandatorycustomerNumberstringCustomer number.
OptionalinstitutionIdintegerInstitution 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

RequiredNameTypeDescription
MandatoryresultbooleanInstitution 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

RequiredNameTypeDescription
MandatoryproductNamestringCustomer 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.
MandatoryparametersObjectParameter 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
Mandatoryparameters.namestringIdentify a parameter in the customer template for which the corresponding value is set.
Mandatoryparameters.valuestringThe 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

RequiredNameTypeDescription
MandatorycustomerNumberstringClient number. You will receive the one you send in the request as the Sandbox configured to set the requested number to a created customer.
MandatoryaccountNumberstringAccount 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

RequiredNameTypeDescription
MandatoryaccountNumberstringAccount number.
Mandatoryamountintegeramount
MandatorycurrencyintegerCurrency

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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatoryaccountNumberstringAccount number.
MandatorylimitObjectLimit parameters.
Mandatorylimit.namestringLimit name at SVBO.
Optionallimit.startDateDateTimeLimit start date. format: date-time
Optionallimit.endDateDateTimeLimit end date.
Optionallimit.valuelongLimit value
Optionallimit.cycleTypeintegerCycle type
Optionallimit.cycleLengthintegerCycle length
Optionallimit.currencyintegerCurrency
Optionallimit.currentValuelongCurrent limit value
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVista.

Response example

{
  "responseCode" : 00
}

changeAccountStatusInFe

Change account status.

Request parameters

RequiredNameTypeDescription
MandatoryaccountNumberstringAccount number.
MandatoryaccountStatusintegerAccount status
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatoryaccountNumberStringAccount 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

RequiredNameTypeDescription
MandatoryavailableBalanceInteger [1..64]Account available balance.
MandatoryholdBalanceInteger [1..64]Hold balance.
MandatoryexceedBalanceInteger [1..64]Exceed balance.

Response example

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

getAccountBalances

Get account balances from SVBO.

Request parameters

RequiredNameTypeDescription
MandatoryaccountNumberStringAccount number.
OptionalaccountIdInteger [1..64]Account identifier.
MandatoryinstitutionIdStringInternal 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

RequiredNameTypeDescription
MandatoryaccountBalancesArray of objectsArray 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).

RequiredNameTypeDescription
OptionalbalanceTypeStringBalance type.
OptionalbalanceTypeDescriptionStringBalance type description.
OptionalamountStringBalance amount.
OptionalcurrencyStringBalance currency.
OptionalamountAccCurrencyStringAmount of account currency.
MandatoryaccountCurrencyStringAccount 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

RequiredNameTypeDescription
MandatoryaccountNumberstringaccount 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

RequiredNameTypeDescription
MandatorycustomerIdstringCustomer 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

RequiredNameTypeDescription
Mandatoryaccountsarray of objectsList 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).

RequiredNameTypeDescription
MandatorynumberStringAccount number.
OptionalaccountTypeInteger [1..32]Account type.
MandatorycurrencyInteger [1..32]Account currency.
OptionalcurrencyAlphaCodeStringAlpha-code of account currency.
MandatorybalanceInteger [1..64]Account balance.
OptionalcreditLimitInteger [1..64]Credit limit.
MandatorycustomerIdStringClient identifier.
OptionaldefaultAccountBooleanDefault account flag.
OptionalstatusInteger [1..2]Status of account arrest. See the list of values below.
OptionalstatusDescriptionStringDescription 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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
  ]
}'
RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVista.

Response example

{
  "responseCode": "00"
}

Merchants

changeMerchantStatus

Change merchant status.

Request parameters

RequiredNameTypeDescription
MandatorymerchantNumberstringMerchant number.
MandatoryinstitutionIdstringInternal institution id.
MandatoryagentIdstringAgent id.
MandatorycustomerNumberstringClient number.
MandatorycontractNumberstringContract number.
MandatorystatusstringMerchant 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVisa.

Response example

{
  "responseCode" : "00"
}

changeTerminalStatus

Change terminal status.

Request parameters

RequiredNameTypeDescription
MandatorymerchantNumberstringMerchant number.
MandatoryterminalNumberstringTerminal number.
MandatoryinstitutionIdstringInternal institution id.
MandatoryagentIdstringAgent id.
MandatorycustomerNumberstringClient number.
MandatorycontractNumberstringContract number.
MandatorystatusstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVisa.

Response example

{
  "responseCode" : "00"
}

generateKey

Generate key.

Request parameters

RequiredNameTypeDescription
OptionalterminalIdlongSVFE terminal internal id (pid)
OptionalterminalNumberstringTerminal id.
OptionalmerchantNumberstringMerchant id.
MandatoryhostIdintegerZMK key internal id (PID), which should be used to export generated key.
MandatorykeyTypestringKey type.
MandatorykeyLengthstringLength 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

RequiredNameTypeDescription
OptionalkeyValuestringGenerated key (encrypted by ZMK).
OptionalcheckValuestringCheck value
OptionallmkHsmKeyValuestringGenerated key (encrypted by LMK).

Response example

{
  "keyValue" : "keyValue",
  "lmkHsmKeyValue" : "lmkHsmKeyValue",
  "checkValue" : "checkValue"
}

getMerchantTransactions

Get merchant's transaction list.

Request parameters

RequiredNameTypeDescription
MandatorymerchantIdstringMerchant id.
OptionalterminalIdstringTerminal id.
MandatoryinstitutionIdstringInternal institution id.
MandatoryperiodObjectTime span.
Optionalperiod.startDateTimeStart date.
Optionalperiod.endDateTimeEnd 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

RequiredNameTypeDescription
MandatorytransactionsObjectTransactions.
Mandatorytransactions.utrnnolongTransaction id in SVFE
Optionaltransactions.reversalbooleanReversal flag.
Mandatorytransactions.merchantIdstringMerchant id.
Mandatorytransactions.terminalIdstringTerminal id.
Mandatorytransactions.transactionDateDateTimeTransaction date/time.
Optionaltransactions.settlementDateDateTimeSettlement date/time.
Mandatorytransactions.cardNumberMaskstringMasked card number.
Mandatorytransactions.cardNumberstringCard number.
Optionaltransactions.transactionAmountintegerTransaction amount.
Optionaltransactions.transactionCurrencyintegerTransaction currency code
Optionaltransactions.submittedAmountintegerRequested amount.
Optionaltransactions.submittedCurrencyintegerRequested currency
Optionaltransactions.responseCodeintegerInternal SVFE response code.
Optionaltransactions.authorizationCodestringAuthorization code.
Optionaltransactions.cashbackAmountintegerCashback amount.
Optionaltransactions.transactionTypestringTransaction type.
Optionaltransactions.networkTypestringNetwork type.
Optionaltransactions.cardTypestringCard type.
Optionaltransactions.orderNumberstringPayment order number.
Optionaltransactions.orderIdstringPayment 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

RequiredNameTypeDescription
MandatoryserviceIdentificationObjectService identification data.
MandatoryserviceIdentification.serviceTypestringService type.
MandatoryserviceIdentification.serviceIdstringService id.
MandatoryserviceIdentification.serviceObjectTypestringObject, which the service can be linked to. Possible values: [SERVICE_OBJECT_CARD, SERVICE_OBJECT_ACCOUNT]
MandatoryactionCodestringAction 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]
MandatorycardIdentificationObjectCard identification parameters. expDate and (cardNumber) or (barCode) or (cardNumberMask and phoneNumber) are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalaccountNumberstringAccount number.
OptionalserviceParametersObjectService parameters.
OptionalserviceParameters.phoneNumberstringPhone number.
OptionalserviceParameters.emailstringE-mail
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVisa.

Response example

{
  "responseCode" : 00
}

setKey

Set key.

Request parameters

RequiredNameTypeDescription
OptionalterminalIdlongSVFE terminal internal id (pid)
OptionalterminalNumberstringTerminal id.
OptionalmerchantNumberstringMerchant id.
MandatoryhostIdintegerHost PID
MandatorykeyTypestringKey type. Possible values: [ENKTTMKA, ENKTTMKP, ENKTTAK, ENKTIKEY]
OptionalinputKeyPrefixstringInput key prefix. Possible values: [U, T, X, Y]
MandatorykeystringKey.
OptionalkeyCheckValuestringCheck value
MandatorynewKeyPrefixstringNew 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (barCode) or (cardNumberMasked and cardholderId) or (cardNumberMasked and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatorylimitExceptionObjectLimit exception parameters.
MandatorylimitException.limitNamestringLimit name at SVBO.
MandatorylimitException.startDateDateTimeException start date.
MandatorylimitException.endDateDateTimeException end date.
OptionallimitException.valuelongLimit value
OptionallimitException.cycleTypeintegerCycle type
OptionallimitException.cycleLengthintegerCycle length
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVista.

Response example

{
  "responseCode" : 00
}

bindCardToAccount

Bind card to an account.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. cardNumber and expDate are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatoryaccountNumberstringAccount number to bind to.
MandatoryaccountTypestringAccount 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]
OptionalaccountCurrencyintegerAccount currency ( only required for new accounts ).
OptionalpersonalDataObjectCardholder personal information.
OptionalpersonalData.firstNamestring
OptionalpersonalData.lastNamestring
OptionalcustomerIdstringClient id.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatoryhotCardStatusintegerCard status. Should be '6' for the Sandbox. This means the card is blocked and should be captured on usage attempt.
OptionalcardAcceptorParametersObjectTerminal parameters. Not for the Sandbox.
OptionalcardAcceptorParameters.terminalIdentificationstringTerminal id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantIdentificationstringMerchant id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantTypestringMerchant category code. Not for the Sandbox.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryhotCardStatusintegerCard 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number. Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatorylimitObjectLimit parameters.
Mandatorylimit.namestringLimit name. It is predefined in the Sandbox. You can get the limits list with getCardLimits() and get limit names from its response.
Optionallimit.startDateDateTimeLimit start date. Not for the Sandbox.
Optionallimit.endDateDateTimeLimit end date. Not for the Sandbox.
Optionallimit.valuelongLimit value.
Optionallimit.cycleTypeintegerCycle type.
Optionallimit.cycleLengthintegerCycle length.
Optionallimit.currencyintegerCurrency. Not for the Sandbox.
Optionallimit.currentValuelongCurrent limit value. Not for the Sandbox.
OptionalcardAcceptorParametersObjectTerminal parameters. Not for the Sandbox.
OptionalcardAcceptorParameters.terminalIdentificationstringTerminal id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantIdentificationstringMerchant id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantTypestringMerchant category code. Not for the Sandbox.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. cardNumber or cardId are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatorylimitExceptionObjectLimit exception parameters.
MandatorylimitException.limitNamestringLimit name at SVBO.
MandatorylimitException.startDateDateTimeException start date.
MandatorylimitException.endDateDateTimeException end date.
OptionallimitException.valuelongLimit value
OptionallimitException.cycleTypeintegerCycle type
OptionallimitException.cycleLengthintegerCycle length
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number. Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatoryhotCardStatusintegerCard status. For the Sandbox should be '0' to activate a blocked card.
OptionalcardAcceptorParametersObjectTerminal parameters. Not for the Sandbox.
OptionalcardAcceptorParameters.terminalIdentificationstringTerminal id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantIdentificationstringMerchant id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantTypestringMerchant category code. Not for the Sandbox.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. cardNumber or cardId are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatorynewPinDatastringNew PIN.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectPrimary 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.
MandatorycardIdentification.cardNumberstringCard 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.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted 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.
OptionalcardIdentification.cardNumberMaskstringMasked 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.
OptionalcardIdentification.cardLastDigitMaskstringLast 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.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Frequently used with some other card attributes. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number. Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Frequently used with some other card attributes. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatoryvirtualCardIdentificationObjectVirtual card parameters. expDate and productType are required.
MandatoryvirtualCardIdentification.expDatestringCard expiration date. Any future date in "YYYYMM" format.
MandatoryvirtualCardIdentification.productTypestringProduct 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.
OptionalvirtualCardIdentification.cardNumberstringCard number. Not for the Sandbox.
OptionalvirtualCardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalvirtualCardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalvirtualCardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalvirtualCardIdentification.cvv2stringCVV2/CVC2. Not for the Sandbox.
MandatoryamountintegerDefault limit for newly created virtual cards. Should be constant number '0' in the Sandbox.
MandatorycurrencyintegerCurrency. ISO 4217 numeric currency code. Use '978' for the Sandbox.
MandatoryaccountNumberstringAccount number for primary card identification. Use the account number you got from registerCustomer().
OptionaldeliveryMethodstringVirtual 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.
OptionalpersonalDataObjectCard owner personal data. Not for the Sandbox.
OptionalpersonalData.firstNamestringNot for the Sandbox.
OptionalpersonalData.lastNamestringNot for the Sandbox.
OptionalcardAcceptorParametersObjectTerminal parameters. Not for the Sandbox.
OptionalcardAcceptorParameters.terminalIdentificationstringTerminal id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantIdentificationstringMerchant id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantTypestringMerchant category code. Not for the Sandbox.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryvirtualCardIdentificationObjectVirtual card Parameters.
OptionalvirtualCardIdentification.cardNumberstringCard 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.
OptionalvirtualCardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalvirtualCardIdentification.cardIdstringCard id. Not for the Sandbox.
MandatoryvirtualCardIdentification.expDatestringCard expiration date. Not for the Sandbox.
MandatoryvirtualCardIdentification.productTypestringProduct type. Not for the Sandbox.
OptionalvirtualCardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalvirtualCardIdentification.cvv2stringCVV2/CVC2. Not for the Sandbox.

Response example

{
	    "virtualCardIdentification": {
	        "cardNumber": "4140050021658271",
	        "cardId": "100000000873",
	        "expDate": "202512",
	        "productType": "5C"
	    }
	}

deleteCardLimitException

Delete card limit exception.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (barCode) or (cardNumberMask and cardholderId) or (cardNumberMask and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatorylimitExceptionObjectLimit exception parameters.
MandatorylimitException.limitNamestringLimit name at SVBO.
MandatorylimitException.startDateDateTimeException start date.
MandatorylimitException.endDateDateTimeException end date.
OptionallimitException.valuelongLimit value
OptionallimitException.cycleTypeintegerCycle type
OptionallimitException.cycleLengthintegerCycle length
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVista.

Response example

{
  "responseCode" : 00
}

generateCVC2

Generate CVC2.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (barCode) or (cardNumberMask and cardholderId) or (cardNumberMask and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number. Must be passed if deliveryMethod is SMS and phoneNumber is NOT used as identification option.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionaldeliveryMethodstringCode delivery method. Possible values: [SMS, WS, HALF_AND_HALF, WS_ENCRYPTED, NONE]
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringSVFE operation completion code.
OptionalcardNumberMaskstringMasked card number.
OptionalcardNumberstringCard number.
Optionalcvc2stringGenerated CVV2 value.

Response example

{
    "responseCode": "00",
    "cardNumberMask": "****07006759****",
    "cvc2": "692"
}

generatePin

Generate PIN.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. (encryptedCardNumber) or (cardNumberMask and phoneNumber) or external card id are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalpinDeliveryMethodstringPIN 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]
OptionalencryptedPinValueByteArrayEncrypted PIN.
OptionalpinValuestringPIN.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal location address.
OptionalparametersObjectList of arbitrary parameters.
Optionalparameters.namestring
Optionalparameters.valuestring
OptionalcheckCardOnlybooleanFlag, 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVista (00 - success).
OptionalpinValuestringPIN.
OptionalencryptedPinValueByteArrayEncrypted PIN.

Response example

{
  "encryptedPinValue" : [ "encryptedPinValue", "encryptedPinValue" ],
  "pinValue" : 1111,
  "responseCode" : 00
}

getCardBalance

Get card balance.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (barCode) or (cardNumberMask and cardholderId) or (cardNumberMask and phoneNumber).
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number.
OptionalcardIdentification.cardNumberMaskstringMasked card number.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalaccountNumberstringAccount number.
OptionalaccountTypestringAccount 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]
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal location address.

Response parameters

RequiredNameTypeDescription
OptionalcardIdentificationObjectCard parameters (number and expiration date).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalbalanceintegerBalance.
OptionalcurrencyintegerCurrency
OptionalavailableExceedLimitintegerCredit limit.
OptionalavailableExceedLimitCurrencyintegerCredit limit currency
OptionalownFundsintegerOwn funds.
OptionalownFundsCurrencyintegerOwn funds currency
OptionaltotalAmountDueintegerTotal amount due.
OptionalminimumAmountDueintegerMinimum payment amount.
OptionaldueDateDateTimePayment 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.idNumberstringIdentification document number.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
OptionalrsaPublicKeyArray of stringOpen 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

RequiredNameTypeDescription
MandatorycardDataObjectCard parameters.
OptionalcardData.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardData.cardNumberMaskstringMasked card number. Not for the Sandbox.
MandatorycardData.cardNumberstringCard number.
OptionalcardData.expiryDatestringCard expiration date. Comes in YYYYMM format.
OptionalcardData.expiryTimestring (date-time)Card expiration time.
OptionalcardData.formattedExpiryDatestringUser-formatted card expiration date. Not for the Sandbox.
OptionalcardData.cardIdstringCard id. This is internal SmartVista card ID that can be used to identify the card for non PCI DSS compliant apps.
OptionalcardData.hotCardStatusintegerCard status.
OptionalcardData.cardTypeNamestringCard type.
OptionalcardData.embossedNamestringEmbossed name. Would have a real value only for embossed plastic cards and not for virtual cards in the Sanbox.
OptionalcardData.customerIdstringClient id.
OptionalcardData.customerNamestringClient name. Not for the Sandbox.
OptionalcardData.personIdstringCardholder id. Not for the Sandbox.
OptionalcardData.pinDenialCounterintegerIncorrect PIN attempts count
OptionalcardData.plasticNumberintegerPlastic number. Not for the Sandbox.
OptionalcardData.hotCardStatusDescriptionstringCard status description.
OptionalcardData.cardIsPrimarybooleanPrimary card flag. Always false for the Sandbox.
OptionalcardData.cardBindToCustomerbooleanCard binded to client flag. Always false for the Sandbox.
OptionalcardData.customerIsCardholderbooleanIs client a cardholder flag. Always false for the Sandbox.
OptionalcardData.cardContractIdstringCard contract id. Not for the Sandbox.
OptionalcardData.cardPlasticIdstringPlastic type id. Not for the Sandbox.
OptionalcardData.cardPlasticDescriptionstringPlastic type description. Not for the Sandbox.
OptionalcardData.memorableWordstringSecret word. Not for the Sandbox.
OptionalcardData.emailstringE-mail. Not for the Sandbox.
OptionalcardData.lastWrongPinDateDateTimeLast incorrect PIN attempt date/time. Not for the Sandbox.
OptionalcardData.cardCreationDateDateTimeCard issue date. Not for the Sandbox.
OptionalcardData.cardBlockingDateDateTimeCard lock date/time. Not for the Sandbox.
OptionalcardData.directDebitAccountstringAccount used for auto-payments. Not for the Sandbox.
OptionalcardData.cardholderMobilePhoneNumberstringCardholder's phone number. Not for the Sandbox.
OptionalcardData.accountsObjectList of accounts for the card. There should be only one account in the Sandbox.
Mandatoryaccounts.numberstringAccount number.
Optionalaccounts.accountTypestringAccount type.
Mandatoryaccounts.currencyintegerAccount currency
Optionalaccounts.currencyAlphaCodestringAccount currency letter code.
Mandatoryaccounts.balanceintegerAccount balance.
Optionalaccounts.creditLimitintegerCredit limit.
Mandatoryaccounts.customerIdstringClient identifier.
Optionalaccounts.defaultAccountbooleanDefault 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

RequiredNameTypeDescription
MandatorycardNumberstringCard 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

RequiredNameTypeDescription
MandatoryfeesObjectFee list.
Mandatoryfees.feeTypestringFee type.
Mandatoryfees.feeValuenumberFee 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal 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

RequiredNameTypeDescription
MandatorylimitsObjectList of card limits.
Mandatorylimits.namestringLimit name.
Optionallimits.startDateDateTimeLimit start date. Not for the Sandbox.
Optionallimits.endDateDateTimeLimit end date. Not for the Sandbox.
Optionallimits.valuelongLimit value.
Optionallimits.cycleTypeintegerCycle type. There several possible types of limits cycles - daily, monthly etc.
Optionallimits.cycleLengthintegerCycle length. For example, value 2 for monthly limit types means 2 months.
Optionallimits.currencyintegerCurrency.
Optionallimits.currentValuelongCurrent limit value.
Mandatorylimits.limitExceptionsObjectLimit 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. (customerId) or (phoneNumber) or (email) are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal 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

RequiredNameTypeDescription
OptionalcardsObject
Optionalcards.encryptedCardNumberByteArrayEncrypted card number.
Mandatorycards.cardNumberMaskstringMasked card number.
Mandatorycards.cardNumberstringCard number.
Optionalcards.expiryDatestringCard expiration date.
Optionalcards.formattedExpiryDatestringUser-formatted card expiration date.
Optionalcards.cardIdstringCard id.
Optionalcards.hotCardStatusintegerCard status
Optionalcards.cardTypeNamestringCard type.
Optionalcards.embossedNamestringEmbossed name.
Optionalcards.customerIdstringClient id.
Optionalcards.customerNamestringClient name.
Optionalcards.personIdstringCardholder id.
Optionalcards.pinDenialCounterintegerIncorrect PIN attempts count
Optionalcards.plasticNumberintegerPlastic number
Optionalcards.hotCardStatusDescriptionstringCard status description.
Optionalcards.cardIsPrimarybooleanPrimary card flag.
Optionalcards.cardBindToCustomerbooleanCard binded to client flag.
Optionalcards.customerIsCardholderbooleanIs client a cardholder flag.
Optionalcards.cardContractIdstringCard contract id.
Optionalcards.cardPlasticIdstringPlastic type id.
Optionalcards.cardPlasticDescriptionstringPlastic type description.
Optionalcards.memorableWordstringSecret word.
Optionalcards.emailstringE-mail.
Optionalcards.lastWrongPinDateDateTimeLast incorrect PIN attempt date/time.
Optionalcards.cardCreationDateDateTimeCard issue date.
Optionalcards.cardBlockingDateDateTimeCard lock date/time.
Optionalcards.directDebitAccountstringAccount used for auto-payments.
Optionalcards.cardholderMobilePhoneNumberstringCardholder's phone number.
Optionalcards.accountsObjectList of accounts for the card.
Mandatoryaccounts.numberstringAccount number.
Mandatoryaccounts.currencyintegerAccount currency
Optionalaccounts.currencyAlphaCodestringAccount currency letter code.
Mandatoryaccounts.balanceintegerAccount balance.
Optionalaccounts.creditLimitintegerCredit limit.
Mandatoryaccounts.customerIdstringClient id.
Optionalaccounts.defaultAccountbooleanDefault 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Posible identification options: cardNumber or cardId.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal 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

RequiredNameTypeDescription
MandatoryregionsObjectRegion list.
Mandatoryregions.idintegerRegion id.
Mandatoryregions.descriptionstringDescription.
OptionalcountriesObjectCountry list.
Mandatorycountries.idintegerCountry id.
Mandatorycountries.descriptionstringDescription.
MandatorytransactionGroupsObjectTransaction group list.
MandatorytransactionGroups.idintegerGroup id
MandatorytransactionGroups.descriptionstringDescription.
MandatoryrestrictionsObjectRestriction list.
Mandatoryrestrictions.countryIdintegerCountry id.
Mandatoryrestrictions.regionIdintegerRegion id.
Mandatoryrestrictions.transactionGroupIdintegerTransaction group id.
Mandatoryrestrictions.statusstringRestriction status. Possible values: [ENABLED, DISABLED]
Optionalrestrictions.startDateDateTimeThe date when restrictions come into effect.
Optionalrestrictions.endDateDateTimeThe 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: cardId.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionaltemplateSchemeIdlongId 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

RequiredNameTypeDescription
OptionaltransactionSchemeAdditionsObjectAdditional transaction scheme rules list.
MandatorytransactionSchemeAdditions.idlongRule id
MandatorytransactionSchemeAdditions.domainstringIssuer institution id.
MandatorytransactionSchemeAdditions.countryGroupintegerCountry group id
MandatorytransactionSchemeAdditions.mccGroupintegerMCC group id
MandatorytransactionSchemeAdditions.transactionTypeintegerTransaction type: format
MandatorytransactionSchemeAdditions.posDataCodestringPOS 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. cardNumber or cardId are required.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Posible identification options: (cardNumber) or (cardId).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatoryrestrictionsObjectRestriction list.
Mandatoryrestrictions.countryIdintegerCountry ID.
Mandatoryrestrictions.regionIdintegerRegion id.
Mandatoryrestrictions.transactionGroupIdintegerTransaction group id.
Mandatoryrestrictions.statusstringRestriction status. Possible values: [ENABLED, DISABLED]
Optionalrestrictions.startDateDateTimeThe date when restrictions come into effect.
Optionalrestrictions.endDateDateTimeThe 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code in SmartVista.

Response example

{
  "responseCode" : 00
}

setTransactionSchemeAdditions

Set rules list for the additional transaction scheme.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: cardId.
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatorytransactionSchemeAdditionsObjectAdditional transaction scheme rules list.
MandatorytransactionSchemeAdditions.idlongRule id
MandatorytransactionSchemeAdditions.domainstringIssuer institution id.
MandatorytransactionSchemeAdditions.countryGroupintegerCountry group id
MandatorytransactionSchemeAdditions.mccGroupintegerMCC group id
MandatorytransactionSchemeAdditions.transactionTypeintegerTransaction type: format
MandatorytransactionSchemeAdditions.posDataCodestringPOS 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (cardNumberMask and cardholderId) or (cardNumberMask and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation 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

RequiredNameTypeDescription
OptionalpreAuthorizationbooleanPre-authorization flag.
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatoryamountintegerAmount.
MandatorycurrencyintegerCurrency. ISO 4217 numeric currency code. Use '978' for the Sandbox.
OptionaltdsObject3DS transaction parameters.
Optionaltds.xidstringVISA 3DS transaction id. Not for the Sandbox.
Optionaltds.cavvstringVISA authentication check value. Not for the Sandbox.
Optionaltds.ucafstringMastercard universal authentification field. Not for the Sandbox.
Optionaltds.authenticationIndicatorstringE-commerce transaction authentification type. Possible values: [NOT_PERFORMED, TDS_MERCHANT_ONLY, TDS_PERFORMED, ADDITIONAL_PROTOCOL_USED, RECURRENT_PAYMENT_AUTH]. Not for the Sandbox.
OptionalcardAcceptorParametersObjectTerminal parameters. Not for the Sandbox.
OptionalcardAcceptorParameters.terminalIdentificationstringTerminal id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantIdentificationstringMerchant id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantTypestringMerchant category code. Not for the Sandbox.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal 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

RequiredNameTypeDescription
MandatoryresponseCodestringSVFE operation completion code. '00' is for success.
MandatoryprocessingCodestringprocessing code.
MandatorysystemTraceAuditNumberintegerAudit record number
MandatorylocalTransactionDateDateTimeTransaction date. format: date-time
MandatoryrrnstringExternal id RNN.
OptionalauthorizationIdResponsestringAuthorization id.
OptionaluniqueReferenceNumberstringUnique reference number for the operation.
OptionalotpstringOne-time password. Not for the Sandbox.
OptionalacquirerFeeAmountstringAcquirer fee amount. Not for the Sandbox.
OptionalissuerFeeAmountstringIssuer fee amount. Not for the Sandbox.
OptionalpaymentSpecificDataObjectPayment 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

RequiredNameTypeDescription
OptionalpreAuthorizationbooleanPre-authorization flag.
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (barCode) or (cardNumberMask and cardholderId) or (cardNumberMask and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatoryamountintegerAmount.
MandatorycurrencyintegerCurrency
OptionalfeeObjectAcquirer fee parameters.
Mandatoryfee.feeTypestringFee type.
Mandatoryfee.feeValuenumberFee value.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal location address.
OptionaltdsObject3DS transaction parameters.
Optionaltds.xidstringVISA 3DS transaction id.
Optionaltds.cavvstringVISA authentication check value.
Optionaltds.ucafstringMastercard universal authentification field.
Optionaltds.authenticationIndicatorstringE-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

RequiredNameTypeDescription
MandatoryresponseCodestringSVFE operation completion code.
MandatoryprocessingCodestringprocessing code.
MandatorysystemTraceAuditNumberintegerAudit record number
MandatorylocalTransactionDateDateTimeTransaction date. format: date-time
MandatoryrrnstringExternal id RNN.
OptionalauthorizationIdResponsestringAuthorization id.
OptionaluniqueReferenceNumberstringUnique reference number for the operation.
OptionalotpstringOne-time password.
OptionalacquirerFeeAmountstringAcquirer fee amount.
OptionalissuerFeeAmountstringIssuer fee amount.
OptionalpaymentSpecificDataObjectPayment specific data.
OptionalpaymentSpecificData.f57stringSpecific field 57.
OptionalpaymentSpecificData.f58stringSpecific field 58.
OptionalpaymentSpecificData.f59stringSpecific field 59.
OptionalpaymentSpecificData.f60stringSpecific field 60.
OptionalpaymentSpecificData.f61stringSpecific field 61.
OptionalpaymentSpecificData.f62stringSpecific field 62.
OptionalpaymentSpecificData.f63stringSpecific field 63.
OptionalpaymentSpecificData.f64stringSpecific field 64.
OptionalpaymentSpecificData.f65stringSpecific field 65.
OptionalpaymentSpecificData.f66stringSpecific field 66.
OptionalpaymentSpecificData.f67stringSpecific field 67.
OptionalpaymentSpecificData.f68stringSpecific field 68.
OptionalpaymentSpecificData.f69stringSpecific field 69.
OptionalpaymentSpecificData.f70stringSpecific field 70.
OptionalpaymentSpecificData.f71stringSpecific field 71.
OptionalpaymentSpecificData.f72stringSpecific field 72.
OptionalpaymentSpecificData.f73stringSpecific 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

RequiredNameTypeDescription
MandatoryorderIdlongPayment 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

RequiredNameTypeDescription
MandatorytransactionListObjectTransaction list.
MandatorytransactionList.merchantIdstringMerchant id.
MandatorytransactionList.terminalIdstringTerminal id.
MandatorytransactionList.transactionDateDateTimeTransaction date/time.
OptionaltransactionList.cardNumberstringCard number.
OptionaltransactionList.transactionAmountintegerTransaction amount.
OptionaltransactionList.transactionCurrencyintegerTransaction currency code
OptionaltransactionList.submittedAmountintegerRequested amount.
OptionaltransactionList.submittedCurrencyintegerRequested currency
OptionaltransactionList.authorizationCodestringAuthorization code.
OptionaltransactionList.cashbackAmountintegerCashback amount.
OptionaltransactionList.transactionTypestringTransaction type.
OptionaltransactionList.networkTypestringNetwork type.
OptionaltransactionList.cardTypestringCard type.
OptionaltransactionList.orderNumberstringPayment 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

RequiredNameTypeDescription
MandatorymerchantNumberstringMerchant number.
MandatoryinstitutionIdstringInternal institution id.
MandatoryperiodObjectTime span.
Optionalperiod.startDateTimeStart date.
Optionalperiod.endDateTimeEnd 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

RequiredNameTypeDescription
MandatoryorderListObjectPayment orders list.
MandatoryorderList.idlongPayment order id
OptionalorderList.eventDateDateTimeEvent date.
OptionalorderList.purposestringPurpose.
OptionalorderList.currencyintegerCurrency code
OptionalorderList.amountintegerAmount.
OptionalorderList.statusstringDate of the last status update.
OptionalorderList.orderNumberstringPayment order number.

Response example

{
  "orderList" : [ {
    "amount" : 1,
    "orderNumber" : "2344552",
    "id" : 3,
    "eventDate" : "2020-04-30",
  } ]
}

getTokenList

Get token list.

Request parameters

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardNumberMask and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number. If not passed, all plastic cards of the card will be returned.
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal 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

RequiredNameTypeDescription
OptionaltokenListObject
MandatorytokenList.tokenValuestringToken value.
OptionaltokenList.plasticNumberintegerPlastic number
OptionaltokenList.expiryDatestringExpiration date.
MandatorytokenList.activebooleanToken activity flag.
OptionaltokenList.seidstringApplication id.
OptionaltokenList.payIdstringId 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

RequiredNameTypeDescription
MandatorycardIdentificationObjectCard 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.
MandatorycardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionalcardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalcardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalcardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalcardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalcardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionalcardIdentification.plasticNumberintegerPlastic number. Not for the Sandbox.
OptionalcardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalcardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalcardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalcardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalcardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalcardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalcardIdentification.tokenstringToken. Not for the Sandbox.
OptionalcardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalcardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalcardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatoryperiodObjectTime span.
Optionalperiod.startDateTimeStart date. YYYY-MM-DD format.
Optionalperiod.endDateTimeEnd 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

RequiredNameTypeDescription
MandatorytransactionsObjectTransactions.
Optionaltransactions.boWriteOffDateDateTimeSVBO write-off time and date. Not for the Sandbox.
Mandatorytransactions.authorizationDateDateTimeAuthorization date/time.
Mandatorytransactions.transactionTypestringTransaction type.
Mandatorytransactions.operationDirectionstringTransaction direction. Possible values: [CREDIT, DEBIT, NOOP]
Mandatorytransactions.amountintegerTransaction amount.
Mandatorytransactions.currencyintegerCurrency.
Mandatorytransactions.amountInAccountCurrencyintegerTransaction amount in account currency.
Mandatorytransactions.utrnnolongTransaction id in SVFE (SmartVista internal ID).
Optionaltransactions.boUtrnnolongTransaction ID in SVBO. (SmartVista internal ID).
Optionaltransactions.transactionDescriptionstringTransaction description.
Optionaltransactions.feeDirectionstringFee direction. Possible values: [CREDIT, DEBIT, NOOP]
Optionaltransactions.acquireFeeAmountintegerAcquirer fee amount.
Optionaltransactions.feIssuerFeeAmountintegerIssuer online fee amount.
Optionaltransactions.boIssuerFeeAmountintegerIssuer offline fee amount.
Optionaltransactions.mcclongMCC.
Optionaltransactions.merchantCountrystringMerchant country.
Optionaltransactions.merchantCitystringMerchant city.
Optionaltransactions.merchantNamestringMerchant name.
Optionaltransactions.merchantIdstringMerchant id.
Optionaltransactions.terminalAddressstringTerminal address.
Optionaltransactions.posDataCodestringPOS data code.
Optionaltransactions.authorizationIdResponsestringAuthorization id.
Optionaltransactions.reversalDateDateTimeReversal date/time.
Optionaltransactions.reversalbooleanReversal flag.
Optionaltransactions.requestAmountintegerRequested amount for the transaction.
Optionaltransactions.terminalIdstringTerminal id.
Optionaltransactions.payIdstringID 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

RequiredNameTypeDescription
MandatoryutrnnolongTransaction id in SVFE
OptionalreversalbooleanReversal 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

RequiredNameTypeDescription
MandatorytransactionObjectTransaction parameters.
Optionaltransaction.boWriteOffDateDateTimeSVBO write-off time and date.
Mandatorytransaction.authorizationDateDateTimeAuthorization date/time.
Mandatorytransaction.transactionTypestringTransaction type.
Mandatorytransaction.operationDirectionstringTransaction direction. Possible values: [CREDIT, DEBIT, NOOP]
Mandatorytransaction.amountintegerTransaction amount.
Mandatorytransaction.currencyintegerOperation currency
Mandatorytransaction.amountInAccountCurrencyintegerTransaction amount in account currency.
Mandatorytransaction.utrnnolongTransaction id in SVFE
Optionaltransaction.boUtrnnolongTransaction ID in SVBO.
Optionaltransaction.transactionDescriptionstringTransaction description.
Optionaltransaction.feeDirectionstringFee direction. Possible values: [CREDIT, DEBIT, NOOP]
Optionaltransaction.acquireFeeAmountintegerAcquirer fee amount, calculated for SVFE operation.
Optionaltransaction.feIssuerFeeAmountintegerIssuer fee amount, calculated for SVFE operation.
Optionaltransaction.boIssuerFeeAmountintegerIssuer fee amount, calculated for SVBO operation.
Optionaltransaction.mcclongMCC.
Optionaltransaction.merchantCountrystringMerchant country.
Optionaltransaction.merchantCitystringMerchant city.
Optionaltransaction.merchantNamestringMerchant name.
Optionaltransaction.merchantIdstringMerchant id.
Optionaltransaction.terminalAddressstringTerminal address.
Optionaltransaction.posDataCodestringPOS data code.
Optionaltransaction.authorizationIdResponsestringAuthorization id.
Optionaltransaction.reversalDateDateTimeReversal date/time.
Optionaltransaction.reversalbooleanReversal flag.
Optionaltransaction.requestAmountintegerRequested amount for the transaction.
Optionaltransaction.terminalIdstringTerminal id.
Optionaltransaction.payIdstringID 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

RequiredNameTypeDescription
Mandatorytransaction.currencyintegerCurrency 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

RequiredNameTypeDescription
OptionalcardIdentificationObjectCard identification parameters. Possible identification options: (cardNumber) or (cardId) or (barCode) or (cardNumberMask and cardholderId) or (cardNumberMask and phoneNumber).
MandatorycardIdentification.encryptedCardNumberByteArrayEncrypted card number.
MandatorycardIdentification.cardNumberMaskstringMasked card number.
MandatorycardIdentification.cardLastDigitMaskstringLast digits of the card number.
MandatorycardIdentification.cardNumberstringCard number.
OptionalcardIdentification.cardIdstringCard id.
OptionalcardIdentification.expDatestringCard expiration date.
OptionalcardIdentification.plasticNumberintegerPlastic number
OptionalcardIdentification.phoneNumberstringClient phone number.
OptionalcardIdentification.cardholderIdstringCardholder id.
OptionalcardIdentification.customerIdstringClient id.
OptionalcardIdentification.customerNumberstringClient number in SVB02.
OptionalcardIdentification.barCodestringBar code.
OptionalcardIdentification.cvv2stringCVV2.
OptionalcardIdentification.externalCardIdstringCard id in the bank's external system.
OptionalcardIdentification.tokenstringToken.
OptionalcardIdentification.cardTypeCodestringCard type code.
OptionalcardIdentification.emailstringE-mail.
OptionalcardIdentification.institutionIdstringInternal institution id.
MandatoryamountintegerAmount.
MandatorycurrencyintegerCurrency
OptionalaccountNumberstringAccount number.
OptionaltdsObject3DS transaction parameters.
Optionaltds.xidstringVISA 3DS transaction id.
Optionaltds.cavvstringVISA authentication check value.
Optionaltds.ucafstringMastercard universal authentification field.
Optionaltds.authenticationIndicatorstringE-commerce transaction authentification type. Possible values: [NOT_PERFORMED, TDS_MERCHANT_ONLY, TDS_PERFORMED, ADDITIONAL_PROTOCOL_USED, RECURRENT_PAYMENT_AUTH]
OptionalsenderReceiverInfoObjectInformation about the sender and recipient of the payment.
OptionalsenderReceiverInfo.senderNamestringSender name in 'Lastname, Firstname' fromat.
OptionalsenderReceiverInfo.senderAddressstringSender address.
OptionalsenderReceiverInfo.senderCitystringSender city.
OptionalsenderReceiverInfo.senderCountrystringSender country code.
OptionalsenderReceiverInfo.senderPostalCodestringSender postcode.
OptionalsenderReceiverInfo.receiverNamestringRecipient name in 'Lastname, Firstname' fromat.
OptionalpointOfServiceDataCodestringA set of codes that determine the capabilities of the terminal, the parameters of its environment and the use of security tools during a transaction.
OptionalpointOfServiceConditionCodestringA code that defines the conditions for conducting a transaction at a service point.
OptionalcardAcceptorParametersObjectTerminal parameters.
MandatorycardAcceptorParameters.terminalIdentificationstringTerminal id.
MandatorycardAcceptorParameters.merchantIdentificationstringMerchant id.
MandatorycardAcceptorParameters.merchantTypestringMerchant category code.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal location address.
OptionalsecurityLevelIndicatorstringSecurity level indicator.
OptionaldebitedCardNumberstringNumber of a card being debited.
OptionalexternalRRNstringDebit transaction RNN.
OptionaloriginalTransactionParametersObjectInitial transaction parameters. Must be included in transaction status check request.
MandatoryoriginalTransactionParameters.systemTraceAuditNumberintegerAudit record number
MandatoryoriginalTransactionParameters.localTransactionDateDateTimeTransaction date. format: date-time
MandatoryoriginalTransactionParameters.rrnstringExternal id RNN.
OptionalposCardholderPresenceintegerCardholder presense at a service point type
OptionalbusinessApplicationIdentifierstringBusiness application id.
OptionalmcTransactionTypeIndicatorstringMC 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

RequiredNameTypeDescription
MandatoryresponseCodestringSVFE operation completion code.
MandatoryprocessingCodestringprocessing code.
MandatorysystemTraceAuditNumberintegerAudit record number
MandatorylocalTransactionDateDateTimeTransaction date. format: date-time
MandatoryrrnstringExternal id RNN.
OptionalauthorizationIdResponsestringAuthorization id.
OptionaluniqueReferenceNumberstringUnique reference number for the operation.
OptionalotpstringOne-time password.
OptionalacquirerFeeAmountstringAcquirer fee amount.
OptionalissuerFeeAmountstringIssuer fee amount.
OptionalpaymentSpecificDataObjectPayment specific data.
OptionalpaymentSpecificData.f57stringSpecific field 57.
OptionalpaymentSpecificData.f58stringSpecific field 58.
OptionalpaymentSpecificData.f59stringSpecific field 59.
OptionalpaymentSpecificData.f60stringSpecific field 60.
OptionalpaymentSpecificData.f61stringSpecific field 61.
OptionalpaymentSpecificData.f62stringSpecific field 62.
OptionalpaymentSpecificData.f63stringSpecific field 63.
OptionalpaymentSpecificData.f64stringSpecific field 64.
OptionalpaymentSpecificData.f65stringSpecific field 65.
OptionalpaymentSpecificData.f66stringSpecific field 66.
OptionalpaymentSpecificData.f67stringSpecific field 67.
OptionalpaymentSpecificData.f68stringSpecific field 68.
OptionalpaymentSpecificData.f69stringSpecific field 69.
OptionalpaymentSpecificData.f70stringSpecific field 70.
OptionalpaymentSpecificData.f71stringSpecific field 71.
OptionalpaymentSpecificData.f72stringSpecific field 72.
OptionalpaymentSpecificData.f73stringSpecific 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

RequiredNameTypeDescription
OptionalpreAuthorizationbooleanPre-authorization flag.
MandatorysourceCardIdentificationObjectCard 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.
MandatorysourceCardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
MandatorysourceCardIdentification.expDatestringCard expiration date. YYYYMM format.
OptionalsourceCardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionalsourceCardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionalsourceCardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionalsourceCardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionalsourceCardIdentification.plasticNumberintegerPlastic number. Not for the Sandbox.
OptionalsourceCardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionalsourceCardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionalsourceCardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionalsourceCardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionalsourceCardIdentification.barCodestringBar code. Not for the Sandbox.
OptionalsourceCardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionalsourceCardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionalsourceCardIdentification.tokenstringToken. Not for the Sandbox.
OptionalsourceCardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionalsourceCardIdentification.emailstringE-mail. Not for the Sandbox.
OptionalsourceCardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatorydestinationCardIdentificationObjectIdentification 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.
MandatorydestinationCardIdentification.cardNumberstringCard number. You will get it in CreateVirtualCard() response.
OptionaldestinationCardIdentification.encryptedCardNumberByteArrayEncrypted card number. Not for the Sandbox.
OptionaldestinationCardIdentification.cardNumberMaskstringMasked card number. Not for the Sandbox.
OptionaldestinationCardIdentification.cardLastDigitMaskstringLast digits of the card number. Not for the Sandbox.
OptionaldestinationCardIdentification.cardIdstringCard id. Not for the Sandbox.
OptionaldestinationCardIdentification.expDatestringCard expiration date. Not for the Sandbox.
OptionaldestinationCardIdentification.plasticNumberintegerPlastic number Not for the Sandbox.
OptionaldestinationCardIdentification.phoneNumberstringClient phone number. Not for the Sandbox.
OptionaldestinationCardIdentification.cardholderIdstringCardholder id. Not for the Sandbox.
OptionaldestinationCardIdentification.customerIdstringClient id. Not for the Sandbox.
OptionaldestinationCardIdentification.customerNumberstringClient number in SVB02. Not for the Sandbox.
OptionaldestinationCardIdentification.barCodestringBar code. Not for the Sandbox.
OptionaldestinationCardIdentification.cvv2stringCVV2. Not for the Sandbox.
OptionaldestinationCardIdentification.externalCardIdstringCard id in the bank's external system. Not for the Sandbox.
OptionaldestinationCardIdentification.tokenstringToken. Not for the Sandbox.
OptionaldestinationCardIdentification.cardTypeCodestringCard type code. Not for the Sandbox.
OptionaldestinationCardIdentification.emailstringE-mail. Not for the Sandbox.
OptionaldestinationCardIdentification.institutionIdstringInternal institution id. Not for the Sandbox.
MandatoryamountintegerAmount.
MandatorycurrencyintegerCurrency. ISO 4217 numeric currency code. Use '978' for the Sandbox.
OptionalsourceAccountNumberstringCard number for the card being debited. Not for the Sandbox.
OptionaldestinationAccountNumberstringCard number for the card being credited. Not for the Sandbox.
OptionaltdsObject3DS transaction parameters. Not for the Sandbox.
Optionaltds.xidstringVISA 3DS transaction id. Not for the Sandbox.
Optionaltds.cavvstringVISA authentication check value. Not for the Sandbox.
Optionaltds.ucafstringMastercard universal authentification field. Not for the Sandbox.
Optionaltds.authenticationIndicatorstringE-commerce transaction authentification type. Possible values: [NOT_PERFORMED, TDS_MERCHANT_ONLY, TDS_PERFORMED, ADDITIONAL_PROTOCOL_USED, RECURRENT_PAYMENT_AUTH]. Not for the Sandbox.
MandatorysenderReceiverInfoObjectInformation about the sender and recipient of the payment. Not for the Sandbox.
MandatorysenderReceiverInfo.senderNamestringSender name in 'Lastname, Firstname' format.
MandatorysenderReceiverInfo.senderAddressstringSender address.
OptionalsenderReceiverInfo.senderCitystringSender city. Not for the Sandbox.
OptionalsenderReceiverInfo.senderCountrystringSender country code. Not for the Sandbox.
OptionalsenderReceiverInfo.senderPostalCodestringSender postcode. Not for the Sandbox.
OptionalsenderReceiverInfo.receiverNamestringRecipient name in 'Lastname, Firstname' format. Not for the Sandbox.
OptionalpointOfServiceDataCodestringA 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.
MandatorypointOfServiceConditionCodestringA code that defines the conditions for conducting a transaction at a service point. Any text.
OptionalcardAcceptorParametersObjectTerminal parameters. Not for the Sandbox.
OptionalcardAcceptorParameters.terminalIdentificationstringTerminal id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantIdentificationstringMerchant id. Not for the Sandbox.
OptionalcardAcceptorParameters.merchantTypestringMerchant category code. Not for the Sandbox.
OptionalcardAcceptorParameters.nameAndLocationstringTerminal location address. Not for the Sandbox.
OptionalsecurityLevelIndicatorstringSecurity level indicator. Not for the Sandbox.
OptionaloriginalTransactionParametersObjectInitial transaction parameters. Must be included in transaction status check request. Not for the Sandbox.
OptionaloriginalTransactionParameters.systemTraceAuditNumberintegerAudit record number. Not for the Sandbox.
OptionaloriginalTransactionParameters.localTransactionDateDateTimeTransaction date. Not for the Sandbox.
OptionaloriginalTransactionParameters.rrnstringExternal id RNN. Not for the Sandbox.
OptionalposCardholderPresenceintegerCardholder presense at a service point type. Not for the Sandbox.
OptionalbusinessApplicationIdentifierstringMC 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

RequiredNameTypeDescription
MandatoryresponseCodestringOperation completion code. 00' is for success.
MandatoryprocessingCodestringprocessing code.
MandatorysystemTraceAuditNumberintegerAudit record number
MandatorylocalTransactionDateDateTimeTransaction date. format: date-time
MandatoryrrnstringExternal id RNN.
OptionalauthorizationIdResponsestringAuthorization id.
OptionalpaymentSpecificDataObjectPayment specific data.

Response example

{
        "responseCode": "00",
        "processingCode": "490000",
        "systemTraceAuditNumber": 620400,
        "localTransactionDate": "2021-09-23T14:40:05",
        "rrn": "000000154799",
        "authorizationIdResponse": "154801",
        "paymentSpecificData": {}
    }
Categories:
BankingAPI V1
Categories
Search results