Skip to content

Transactions

Sales, authorizations, completions, refunds, voids, tokens, and wallet payments.

24 endpoints All API groups

Get Supported Currencies

POST /api/Transactions/GetSupportedCurrencies

Request body

Schema: SupportedCurrenciesRequest

Field Type Requirement Description
CurrencyCode string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/GetSupportedCurrencies' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK SupportedCurrenciesResponse
Example response
{
  "SupportedCurrencies": [
    {
      "Name": "<name>",
      "Code": "<code>",
      "AlphaCode": "<alpha-code>"
    }
  ],
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Get Transaction

POST /api/Transactions/GetTransaction

Request body

Schema: GetTransactionRequest

Field Type Requirement Description
UserTransactionNumber string Required
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/GetTransaction' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Recurring Sale

POST /api/Transactions/RecurringSale

Request body

Schema: SaleRecurringRequest

Field Type Requirement Description
UniqueId string Optional
Frecuency string — Daily, Weekly, Biweekl, Monthly, Quarterly, Biannually, Annually, Unscheduled Optional
Type string — Registration, Subsequent Optional
Token string Optional The Token which identifies the credit card information.
Comments string Optional Transaction comments
Amount number (double) Required Transaction amount
ZipCode string Optional Cardholder’s zip code. Not required if credit card is swiped.
Street string Optional
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardNumber string Optional Credit card number. Not required if credit card isswiped.
ExpDate string Optional Credit card expiration date (MMYY). Not required if credit card is swiped.
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
EmvData string Optional
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TransactionType integer (int32) Required Transaction Type
| Name | Value | Description |
|---|---|---|
| CREDIT | 1 | Credit transaction |
| CREDIT_WITH_TOKEN | 2 | Credit with token transaction |
| Pre_Authorization | 3 | Credit preauthorization request |
| Pre_Authorization_Completion | 4 | Credit preauthorization completion |
| SaleDebit | 5 | Debit Card Sale transaction |
| EBT | 6 | EBT Transaction |
| GIFTCARD | 7 | Blackstone Gift Card transaction |
SURI string Optional
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
SecureData string Optional
SecureTransactionId string Optional
SaveToken boolean Optional
CurrencyCode string Optional
SaveCustomer boolean Optional
CustomerId integer (int32) Optional
CustomerPhone string Optional
CustomerEmail string Optional
CustomerCountry string Optional
CustomerState string Optional
CustomerCity string Optional
CustomerAddress string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
DigWltProgType string Optional
DigWltToken string Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional
ForceDuplication boolean Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/RecurringSale' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Sale With Apple Pay

POST /api/Transactions/SaleWithApplePay

Request body

Schema: ApplePayRequest

Field Type Requirement Description
Amount number (double) Required
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
CurrencyCode string Optional
SURI string Optional
Token string Required
UserTransactionNumber string Required
CustomerId integer (int32) Optional
CustomerEmail string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/SaleWithApplePay' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "Token": "<token>",
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "Token": "<token>",
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Validate Apple Pay Merchant

POST /api/Transactions/ValidateApplePayMerchant

Request body

Schema: ApplePayValidateMerchantRequest

Field Type Requirement Description
ValidationUrl string Required
Initiative string Required
InitiativeContext string Required
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/ValidateApplePayMerchant' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "ValidationUrl": "<validation-url>",
  "Initiative": "<initiative>",
  "InitiativeContext": "<initiative-context>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "ValidationUrl": "<validation-url>",
  "Initiative": "<initiative>",
  "InitiativeContext": "<initiative-context>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK object
Example response
{}

Sale With Google Pay

POST /api/Transactions/SaleWithGooglePay

Request body

Schema: GooglePayRequest

Field Type Requirement Description
Amount number (double) Required
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
CurrencyCode string Optional
SURI string Optional
Token string Optional
UserTransactionNumber string Required
CustomerId integer (int32) Optional
CustomerEmail string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/SaleWithGooglePay' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Sale

POST /api/Transactions/Sale

Process a credit card sale transaction where sales do not include tips.Refer to Preauthorization Request when sales include tips.

Request body

Schema: SaleRequest

Field Type Requirement Description
Amount number (double) Required Transaction amount
ZipCode string Optional Cardholder’s zip code. Not required if credit card is swiped.
Street string Optional
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardNumber string Optional Credit card number. Not required if credit card isswiped.
ExpDate string Optional Credit card expiration date (MMYY). Not required if credit card is swiped.
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
EmvData string Optional
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TransactionType integer (int32) Required Transaction Type
| Name | Value | Description |
|---|---|---|
| CREDIT | 1 | Credit transaction |
| CREDIT_WITH_TOKEN | 2 | Credit with token transaction |
| Pre_Authorization | 3 | Credit preauthorization request |
| Pre_Authorization_Completion | 4 | Credit preauthorization completion |
| SaleDebit | 5 | Debit Card Sale transaction |
| EBT | 6 | EBT Transaction |
| GIFTCARD | 7 | Blackstone Gift Card transaction |
SURI string Optional
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
SecureData string Optional
SecureTransactionId string Optional
SaveToken boolean Optional
CurrencyCode string Optional
SaveCustomer boolean Optional
CustomerId integer (int32) Optional
CustomerPhone string Optional
CustomerEmail string Optional
CustomerCountry string Optional
CustomerState string Optional
CustomerCity string Optional
CustomerAddress string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
DigWltProgType string Optional
DigWltToken string Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional
ForceDuplication boolean Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/Sale' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Sale Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Force Retail Sale

POST /api/Transactions/ForceRetailSale

Request body

Schema: ForceRetailSaleRequest

Field Type Requirement Description
AuthNumber integer (int32) Optional
ApprovalCode string Optional
Amount number (double) Required Transaction amount
ZipCode string Optional Cardholder’s zip code. Not required if credit card is swiped.
Street string Optional
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardNumber string Optional Credit card number. Not required if credit card isswiped.
ExpDate string Optional Credit card expiration date (MMYY). Not required if credit card is swiped.
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
EmvData string Optional
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TransactionType integer (int32) Required Transaction Type
| Name | Value | Description |
|---|---|---|
| CREDIT | 1 | Credit transaction |
| CREDIT_WITH_TOKEN | 2 | Credit with token transaction |
| Pre_Authorization | 3 | Credit preauthorization request |
| Pre_Authorization_Completion | 4 | Credit preauthorization completion |
| SaleDebit | 5 | Debit Card Sale transaction |
| EBT | 6 | EBT Transaction |
| GIFTCARD | 7 | Blackstone Gift Card transaction |
SURI string Optional
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
SecureData string Optional
SecureTransactionId string Optional
SaveToken boolean Optional
CurrencyCode string Optional
SaveCustomer boolean Optional
CustomerId integer (int32) Optional
CustomerPhone string Optional
CustomerEmail string Optional
CustomerCountry string Optional
CustomerState string Optional
CustomerCity string Optional
CustomerAddress string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
DigWltProgType string Optional
DigWltToken string Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional
ForceDuplication boolean Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/ForceRetailSale' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Force Retail Sale Response ForceRetailSaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "AcsUrl": "<acs-url>",
  "Is3DSecureNeeded": false,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>"
}

Verification Only

POST /api/Transactions/VerificationOnly

Request body

Schema: VerificationOnlyRequest

Field Type Requirement Description
Account string Optional
ExpDate string Optional
Street string Optional
Zip string Optional Cardholder’s zip code. Not required if credit card is swiped.
Cv string Optional CV verification message
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/VerificationOnly' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Verification Response VerificationOnlyResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Verify Bin

POST /api/Transactions/VerifyBin

Request body

Schema: BinDataRequest

Field Type Requirement Description
Bin string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/VerifyBin' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK BinDataResponse
Example response
{
  "Scheme": "<scheme>",
  "Type": "<type>",
  "Brand": "<brand>",
  "Country": {
    "Name": "<name>",
    "Emoji": "<emoji>",
    "Alpha2": "<alpha2>"
  },
  "Bank": {
    "Name": "<name>",
    "Url": "<url>",
    "Phone": "+1-555-0100"
  },
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Debit Card Sale

POST /api/Transactions/SaleDebit

Process a debit card sale.

Request body

Schema: SaleDebitRequest

Field Type Requirement Description
KSN string Optional Pin pad data.
PinBlock string Optional Pin pad block.
CashBackAmount number (double) Optional Cash back amount.
Amount number (double) Required Transaction amount
ZipCode string Optional Cardholder’s zip code. Not required if credit card is swiped.
Street string Optional
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardNumber string Optional Credit card number. Not required if credit card isswiped.
ExpDate string Optional Credit card expiration date (MMYY). Not required if credit card is swiped.
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
EmvData string Optional
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TransactionType integer (int32) Required Transaction Type
| Name | Value | Description |
|---|---|---|
| CREDIT | 1 | Credit transaction |
| CREDIT_WITH_TOKEN | 2 | Credit with token transaction |
| Pre_Authorization | 3 | Credit preauthorization request |
| Pre_Authorization_Completion | 4 | Credit preauthorization completion |
| SaleDebit | 5 | Debit Card Sale transaction |
| EBT | 6 | EBT Transaction |
| GIFTCARD | 7 | Blackstone Gift Card transaction |
SURI string Optional
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
SecureData string Optional
SecureTransactionId string Optional
SaveToken boolean Optional
CurrencyCode string Optional
SaveCustomer boolean Optional
CustomerId integer (int32) Optional
CustomerPhone string Optional
CustomerEmail string Optional
CustomerCountry string Optional
CustomerState string Optional
CustomerCity string Optional
CustomerAddress string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
DigWltProgType string Optional
DigWltToken string Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional
ForceDuplication boolean Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/SaleDebit' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Sale Debit Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Sale with Token

POST /api/Transactions/SaleWithToken

Process a credit card sale transaction using a preauthorized token.

Request body

Schema: SaleWithTokenRequest

Field Type Requirement Description
Token string Optional The Token which identifies the credit card information.
Comments string Optional Transaction comments
Amount number (double) Required Transaction amount
ZipCode string Optional Cardholder’s zip code. Not required if credit card is swiped.
Street string Optional
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardNumber string Optional Credit card number. Not required if credit card isswiped.
ExpDate string Optional Credit card expiration date (MMYY). Not required if credit card is swiped.
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
EmvData string Optional
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TransactionType integer (int32) Required Transaction Type
| Name | Value | Description |
|---|---|---|
| CREDIT | 1 | Credit transaction |
| CREDIT_WITH_TOKEN | 2 | Credit with token transaction |
| Pre_Authorization | 3 | Credit preauthorization request |
| Pre_Authorization_Completion | 4 | Credit preauthorization completion |
| SaleDebit | 5 | Debit Card Sale transaction |
| EBT | 6 | EBT Transaction |
| GIFTCARD | 7 | Blackstone Gift Card transaction |
SURI string Optional
SurchargeAmount number (double) Optional
CardDifferenceAmount number (double) Optional
TaxAmount number (double) Optional
TipAmount number (double) Optional
SecureData string Optional
SecureTransactionId string Optional
SaveToken boolean Optional
CurrencyCode string Optional
SaveCustomer boolean Optional
CustomerId integer (int32) Optional
CustomerPhone string Optional
CustomerEmail string Optional
CustomerCountry string Optional
CustomerState string Optional
CustomerCity string Optional
CustomerAddress string Optional
OrderReference string Optional
PaymentLinkId string Optional
InvoiceNumber string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
DigWltProgType string Optional
DigWltToken string Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional
ForceDuplication boolean Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/SaleWithToken' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "TransactionType": 1,
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Sale With Token Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Settlement

POST /api/Transactions/DoSettlement

Request a settlement of all outstanding transactions for a merchant.

Request body

Schema: SettlementRequest

Field Type Requirement Description
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/DoSettlement' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Settlement Response SettlementResponse
Example response
{
  "AmountSettled": 10.0,
  "Batches": [
    {
      "ID": "<id>",
      "Items": [],
      "AuthCode": "<auth-code>",
      "Verbiage": "<verbiage>"
    }
  ],
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Close All Settled Transaction

POST /api/Transactions/DoCloseAllSettledTransaction

Request body

Schema: SettlementRequest

Field Type Requirement Description
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/DoCloseAllSettledTransaction' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Settlement Response SettlementResponse
Example response
{
  "AmountSettled": 10.0,
  "Batches": [
    {
      "ID": "<id>",
      "Items": [],
      "AuthCode": "<auth-code>",
      "Verbiage": "<verbiage>"
    }
  ],
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Refund

POST /api/Transactions/DoRefund

Process a refund. The request will fail if the transaction was previously fully refunded or voided.

Request body

Schema: RefundRequest

Field Type Requirement Description
Amount number (double) Required Amount to be refunded. The amount to be
refunded can be less than the original transaction
amount.Multiple refunds can be applied to the
same transaction as long as the total amount of all
refunds does not exceed the original transaction
amount.
ExpDate string Optional Card expiration date (MMYY).
Account string Optional Card number. Optional if using swipe method. Otherwise required.
TrackData string Optional Card track data. Optional if using the No Swipe method.
UserTransactionNumber string Required The transaction identifier used for referencepurposes only; must be unique.
ServiceTransactionNumber string Required The transaction identifier provided by the Blackstone system at the time of the original transaction.
SURI string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/DoRefund' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "ServiceTransactionNumber": "<service-transaction-number>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "ServiceTransactionNumber": "<service-transaction-number>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Refund Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Full Refund

POST /api/Transactions/DoFullRefund

Process a full refund. The request will refund the amount that can be refunded, taking into account any prior partial refunds, not to exceed the original transaction amount.

This request will refund all monies that can be refunded (original transaction amount minus any partial refunds previously processed), not to exceed the original transaction amount.

Request body

Schema: RefundRequest

Field Type Requirement Description
Amount number (double) Required Amount to be refunded. The amount to be
refunded can be less than the original transaction
amount.Multiple refunds can be applied to the
same transaction as long as the total amount of all
refunds does not exceed the original transaction
amount.
ExpDate string Optional Card expiration date (MMYY).
Account string Optional Card number. Optional if using swipe method. Otherwise required.
TrackData string Optional Card track data. Optional if using the No Swipe method.
UserTransactionNumber string Required The transaction identifier used for referencepurposes only; must be unique.
ServiceTransactionNumber string Required The transaction identifier provided by the Blackstone system at the time of the original transaction.
SURI string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/DoFullRefund' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "ServiceTransactionNumber": "<service-transaction-number>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "ServiceTransactionNumber": "<service-transaction-number>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Sale DoFullRefundResponse
Example response
{
  "RefundedAmount": 10.0,
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200
}

Void

POST /api/Transactions/DoVoid

Void a transaction. The request will fail if the transaction was previously voided or refunded.

Request body

Schema: VoidRequest

Field Type Requirement Description
UserTransactionNumber string Required The transaction identifier provided by the Blackstone system at the time of the transaction.
ServiceTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/DoVoid' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "UserTransactionNumber": "unique-transaction-id",
  "ServiceTransactionNumber": "<service-transaction-number>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "UserTransactionNumber": "unique-transaction-id",
  "ServiceTransactionNumber": "<service-transaction-number>",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Void Response Response
Example response
{
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Reversal

POST /api/Transactions/DoReversal

Reverse a transaction where the user did not receive a response from the system.

Request body

Schema: ReversalRequest

Field Type Requirement Description
UserTransactionNumber string Required The user transaction number that was sent by the client at the time of the transaction.
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/DoReversal' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Reversal Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Process Preauthorization

POST /api/Transactions/ProcessPreauth

Process a preauthorization for a sale transaction with tips.Requires a Close Preauthorization request to close the receipt even when the tip amount is zero.

A Preauthorization Request is required for sale transactions that include tips, whether the tip is added during or after checkout, as in restaurants or hair salons.The Preauthorization Request is processed with the sale amount (not including the tip amount). A Close Preauthorization Request must be processed to add the tip amount and close the receipt.This will complete the transaction.

IMPORTANT: Preauthorization requests must be closed within 30 days, even if the tip amount is zero. If a Preauthorization Request is not closed, the preauthorization amount is returned to the cardholder.

Request body

Schema: ProcessPreauthRequest

Field Type Requirement Description
Account string Optional Credit card number
Amount number (double) Required Preauthorization amount
expDate string Optional Credit card expiration date (MMYY)
NameOnCard string Optional Cardholder name as it appears on the credit card
Street string Optional Cardholder street address
zipCode string Optional Cardholder zip code
cv string Optional Card Verification
comments string Optional Comments
IsClosable boolean Required Must be ‘True’ to be able to close the preauthorization request.
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TrackData string Optional
SecureData string Optional
SecureTransactionId string Optional
CurrencyCode string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/ProcessPreauth' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "IsClosable": false,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "IsClosable": false,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Rpocess Rpeauthorization Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Process Preauth With Token

POST /api/Transactions/ProcessPreauthWithToken

Request body

Schema: ProcessPreauthWithTokenRequest

Field Type Requirement Description
Token string Optional
Account string Optional Credit card number
Amount number (double) Required Preauthorization amount
expDate string Optional Credit card expiration date (MMYY)
NameOnCard string Optional Cardholder name as it appears on the credit card
Street string Optional Cardholder street address
zipCode string Optional Cardholder zip code
cv string Optional Card Verification
comments string Optional Comments
IsClosable boolean Required Must be ‘True’ to be able to close the preauthorization request.
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
TrackData string Optional
SecureData string Optional
SecureTransactionId string Optional
CurrencyCode string Optional
PurchaseCardLevel2 PurchaseCardLevel2Data Optional
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/ProcessPreauthWithToken' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "Amount": 10.0,
  "IsClosable": false,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "Amount": 10.0,
  "IsClosable": false,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Close Preauthorization

POST /api/Transactions/ClosePreauth

Close a preauthorization request.

The Close Preauthorization Request is required to add a tip amount and close the Preauthorization Request.

Request body

Schema: ClosePreauthRequest

Field Type Requirement Description
ServiceReferenceNumber string Required The transaction identifier provided by the Blackstone system at the time of the transaction.
Amount number (double) Required Transaction Amount
AdditionalTip number (double) Optional Additional Tip Amount
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
CurrencyCode string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/ClosePreauth' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "ServiceReferenceNumber": "<service-reference-number>",
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "ServiceReferenceNumber": "<service-reference-number>",
  "Amount": 10.0,
  "UserTransactionNumber": "unique-transaction-id",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 The Preauthorization Response SaleResponse
Example response
{
  "avs": "<avs>",
  "ServiceReferenceNumber": "<service-reference-number>",
  "msoft_code": "<msoft-code>",
  "phard_code": "<phard-code>",
  "cv": "<cv>",
  "AuthorizationNumber": "<authorization-number>",
  "PaymentPlanInfo": {
    "PlanId": 1,
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "MonthlyFee": 1.0,
    "Description": "<description>",
    "PlanName": "<plan-name>",
    "DisplayName": false
  },
  "CardType": "<card-type>",
  "LastFour": "<last-four>",
  "Balance": "<balance>",
  "Token": "<token>",
  "EmvData": "<emv-data>",
  "CustomerId": 1,
  "AppliedSurchargeAmount": 10.0,
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ]
}

Get Card PAN

POST /api/Transactions/GetCardPAN

Request body

Schema: GetCardPANRequest

Field Type Requirement Description
Token string Optional
AppKey string Required Application Key which uniquely identifies your application as provided by the Blackstone system.
AppType integer (int32) Required Application Type as provided by the Blackstone system.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
UserName string Required User credential of the client on the host.
Password string Required Password of the client on the host.
IpAddress string Optional
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional
AppInfo string Optional
IsTest boolean Optional
curl --request POST \
  --url 'https://services.bmspay.com/api/Transactions/GetCardPAN' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

Status Description Schema
200 OK GetCardPANResponse
Example response
{
  "CardHolderName": "<card-holder-name>",
  "CardNumber": "<card-number>",
  "CVV": "<security-code>",
  "ExpDate": "MMYY",
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Void Refund Test

GET /api/Transactions/VoidRefundTest

Responses

Status Description Schema
200 OK Response
Example response
{
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}

Transactions

GET /api/Transactions

Responses

Status Description Schema
200 OK Response
Example response
{
  "ResponseCode": 200,
  "Msg": [
    "<msg>"
  ],
  "verbiage": "<verbiage>",
  "displayMessage": "<display-message>"
}