Skip to content

Gift Card

Gift card sales, balances, and adjustments.

6 endpoints All API groups

Activate Gift Card

POST /api/GiftCard/Activate

Activate a gift card.

Request body

Schema: SaleRequest

Field Type Requirement Description
Amount number (double) Required Transaction amount as a JSON number. Quoted numeric strings are not part of the public contract.
AppInfo string Optional Application information including language, version, platform, device model and OS.
Format: "Lang: XX. Version: X.X.X. Platform: XXXX. DeviceModel: XXXX. OS: XXXX"
Example: "Lang: Es. Version: 3.11.8. Platform: android. DeviceModel: dedede. OS: Android OS 13 / API-33"
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.
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardDifferenceAmount number (double) Optional The amount dedicated to the card difference (this is an optional charge passed on to the user)
CardNumber string Optional Credit card number. Not required if credit card isswiped.
CurrencyCode string Optional The Code of the currency to process the transaction. By default, USD dollar is used.
CustomerAddress string Optional Optional address for the customer
CustomerCity string Optional Optional city for the customer
CustomerCountry string Optional Optional country for the customer
CustomerEmail string Optional The email for the customer in the e-commerce transaction (optional)
CustomerId integer (int32) Optional The merchant customer ID as a JSON integer. Quoted strings are not part of the public contract.
CustomerPhone string Optional The phone number for the customer in the e-commerce transaction (optional)
CustomerState string Optional Optional state for the customer
DigWltProgType string Optional
DigWltToken string Optional
EmvData string Optional Contactless data.
ExpDate string Optional Credit card expiration date. SaleWithToken accepts MMYY or MM/YY; other sale flows require MMYY.
Not required if credit card is swiped. Rapid Connect token sales use the valid stored token
expiration when available and otherwise require this field.
ForceDuplication boolean Optional Indicates whether the payment should be executed even if a recent payment exists with the same signature.
InvoiceNumber string Optional Optional invoice number associated with the transaction.
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
OrderReference string Optional Optional reference for the order in case it applies
Password string Required Password of the client on the host.
PaymentLinkId string Optional Optional Payment Link identifier when the transaction is paid from a payment link.
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional The condition in which the payment was captured
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional The entry mode in which the payment was captured
PurchaseCardLevel2 PurchaseCardLevel2Data Optional Optional Purchase Card Level 2 data sent to Rapid Connect for commercial card processing.
SURI string Optional SURI number
SaveCustomer boolean Optional This optional parameter indicates if the merchant wants to save the customer
SaveToken boolean Optional Indicates to return a token for the card in case the transaction was successful
SecureData string Optional The 3D secure data present once the 3D secure flow has been triggered for the transaction
SecureTransactionId string Optional ID of the secure transaction
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional The source of the request
Street string Optional Cardholder�s billing street. Not required if credit card is swiped.
SurchargeAmount number (double) Optional Optional surcharge amount as a JSON number. Direct API callers calculate and supply this value;
the API does not derive it from the merchant's configured surcharge percentage.
TaxAmount number (double) Optional The amount dedicated to the tax (this is an optional charge configurable by the merchant)
TipAmount number (double) Optional The amount dedicated to the tip (this is an optional charge for the client with a default value configurable by the merchant)
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
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 |
UserName string Required User credential of the client on the host.
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
ZipCode string Optional Cardholder�s zip code. Not required if credit card is swiped.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
curl --request POST \
  --url 'https://services.bmspay.com/api/GiftCard/Activate' \
  --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 Activate Response SaleResponse
Example response
{
  "AppliedSurchargeAmount": 10.0,
  "AuthorizationNumber": "<authorization-number>",
  "Balance": "<balance>",
  "CardType": "<card-type>",
  "CustomerId": 1,
  "EmvData": "<emv-data>",
  "LastFour": "<last-four>",
  "Msg": [
    "<msg>"
  ],
  "PaymentPlanInfo": {
    "Description": "<description>",
    "DisplayName": false,
    "MonthlyFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "PlanId": 1,
    "PlanName": "<plan-name>",
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0
  },
  "ResponseCode": 200,
  "ServiceReferenceNumber": "<service-reference-number>",
  "Token": "<token>",
  "avs": "<avs>",
  "cv": "<cv>",
  "displayMessage": "<display-message>",
  "msoft_code": "<msoft-code>"
}

Deactivate Gift Card

POST /api/GiftCard/Deactivate

Deactivate a gift card.

Request body

Schema: SaleRequest

Field Type Requirement Description
Amount number (double) Required Transaction amount as a JSON number. Quoted numeric strings are not part of the public contract.
AppInfo string Optional Application information including language, version, platform, device model and OS.
Format: "Lang: XX. Version: X.X.X. Platform: XXXX. DeviceModel: XXXX. OS: XXXX"
Example: "Lang: Es. Version: 3.11.8. Platform: android. DeviceModel: dedede. OS: Android OS 13 / API-33"
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.
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardDifferenceAmount number (double) Optional The amount dedicated to the card difference (this is an optional charge passed on to the user)
CardNumber string Optional Credit card number. Not required if credit card isswiped.
CurrencyCode string Optional The Code of the currency to process the transaction. By default, USD dollar is used.
CustomerAddress string Optional Optional address for the customer
CustomerCity string Optional Optional city for the customer
CustomerCountry string Optional Optional country for the customer
CustomerEmail string Optional The email for the customer in the e-commerce transaction (optional)
CustomerId integer (int32) Optional The merchant customer ID as a JSON integer. Quoted strings are not part of the public contract.
CustomerPhone string Optional The phone number for the customer in the e-commerce transaction (optional)
CustomerState string Optional Optional state for the customer
DigWltProgType string Optional
DigWltToken string Optional
EmvData string Optional Contactless data.
ExpDate string Optional Credit card expiration date. SaleWithToken accepts MMYY or MM/YY; other sale flows require MMYY.
Not required if credit card is swiped. Rapid Connect token sales use the valid stored token
expiration when available and otherwise require this field.
ForceDuplication boolean Optional Indicates whether the payment should be executed even if a recent payment exists with the same signature.
InvoiceNumber string Optional Optional invoice number associated with the transaction.
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
OrderReference string Optional Optional reference for the order in case it applies
Password string Required Password of the client on the host.
PaymentLinkId string Optional Optional Payment Link identifier when the transaction is paid from a payment link.
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional The condition in which the payment was captured
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional The entry mode in which the payment was captured
PurchaseCardLevel2 PurchaseCardLevel2Data Optional Optional Purchase Card Level 2 data sent to Rapid Connect for commercial card processing.
SURI string Optional SURI number
SaveCustomer boolean Optional This optional parameter indicates if the merchant wants to save the customer
SaveToken boolean Optional Indicates to return a token for the card in case the transaction was successful
SecureData string Optional The 3D secure data present once the 3D secure flow has been triggered for the transaction
SecureTransactionId string Optional ID of the secure transaction
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional The source of the request
Street string Optional Cardholder�s billing street. Not required if credit card is swiped.
SurchargeAmount number (double) Optional Optional surcharge amount as a JSON number. Direct API callers calculate and supply this value;
the API does not derive it from the merchant's configured surcharge percentage.
TaxAmount number (double) Optional The amount dedicated to the tax (this is an optional charge configurable by the merchant)
TipAmount number (double) Optional The amount dedicated to the tip (this is an optional charge for the client with a default value configurable by the merchant)
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
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 |
UserName string Required User credential of the client on the host.
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
ZipCode string Optional Cardholder�s zip code. Not required if credit card is swiped.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
curl --request POST \
  --url 'https://services.bmspay.com/api/GiftCard/Deactivate' \
  --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 Deactivate Response SaleResponse
Example response
{
  "AppliedSurchargeAmount": 10.0,
  "AuthorizationNumber": "<authorization-number>",
  "Balance": "<balance>",
  "CardType": "<card-type>",
  "CustomerId": 1,
  "EmvData": "<emv-data>",
  "LastFour": "<last-four>",
  "Msg": [
    "<msg>"
  ],
  "PaymentPlanInfo": {
    "Description": "<description>",
    "DisplayName": false,
    "MonthlyFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "PlanId": 1,
    "PlanName": "<plan-name>",
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0
  },
  "ResponseCode": 200,
  "ServiceReferenceNumber": "<service-reference-number>",
  "Token": "<token>",
  "avs": "<avs>",
  "cv": "<cv>",
  "displayMessage": "<display-message>",
  "msoft_code": "<msoft-code>"
}

Get Gift Card Balance

POST /api/GiftCard/GetBalance

Get the balance on a gift card.

Request body

Schema: SaleRequest

Field Type Requirement Description
Amount number (double) Required Transaction amount as a JSON number. Quoted numeric strings are not part of the public contract.
AppInfo string Optional Application information including language, version, platform, device model and OS.
Format: "Lang: XX. Version: X.X.X. Platform: XXXX. DeviceModel: XXXX. OS: XXXX"
Example: "Lang: Es. Version: 3.11.8. Platform: android. DeviceModel: dedede. OS: Android OS 13 / API-33"
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.
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardDifferenceAmount number (double) Optional The amount dedicated to the card difference (this is an optional charge passed on to the user)
CardNumber string Optional Credit card number. Not required if credit card isswiped.
CurrencyCode string Optional The Code of the currency to process the transaction. By default, USD dollar is used.
CustomerAddress string Optional Optional address for the customer
CustomerCity string Optional Optional city for the customer
CustomerCountry string Optional Optional country for the customer
CustomerEmail string Optional The email for the customer in the e-commerce transaction (optional)
CustomerId integer (int32) Optional The merchant customer ID as a JSON integer. Quoted strings are not part of the public contract.
CustomerPhone string Optional The phone number for the customer in the e-commerce transaction (optional)
CustomerState string Optional Optional state for the customer
DigWltProgType string Optional
DigWltToken string Optional
EmvData string Optional Contactless data.
ExpDate string Optional Credit card expiration date. SaleWithToken accepts MMYY or MM/YY; other sale flows require MMYY.
Not required if credit card is swiped. Rapid Connect token sales use the valid stored token
expiration when available and otherwise require this field.
ForceDuplication boolean Optional Indicates whether the payment should be executed even if a recent payment exists with the same signature.
InvoiceNumber string Optional Optional invoice number associated with the transaction.
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
OrderReference string Optional Optional reference for the order in case it applies
Password string Required Password of the client on the host.
PaymentLinkId string Optional Optional Payment Link identifier when the transaction is paid from a payment link.
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional The condition in which the payment was captured
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional The entry mode in which the payment was captured
PurchaseCardLevel2 PurchaseCardLevel2Data Optional Optional Purchase Card Level 2 data sent to Rapid Connect for commercial card processing.
SURI string Optional SURI number
SaveCustomer boolean Optional This optional parameter indicates if the merchant wants to save the customer
SaveToken boolean Optional Indicates to return a token for the card in case the transaction was successful
SecureData string Optional The 3D secure data present once the 3D secure flow has been triggered for the transaction
SecureTransactionId string Optional ID of the secure transaction
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional The source of the request
Street string Optional Cardholder�s billing street. Not required if credit card is swiped.
SurchargeAmount number (double) Optional Optional surcharge amount as a JSON number. Direct API callers calculate and supply this value;
the API does not derive it from the merchant's configured surcharge percentage.
TaxAmount number (double) Optional The amount dedicated to the tax (this is an optional charge configurable by the merchant)
TipAmount number (double) Optional The amount dedicated to the tip (this is an optional charge for the client with a default value configurable by the merchant)
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
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 |
UserName string Required User credential of the client on the host.
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
ZipCode string Optional Cardholder�s zip code. Not required if credit card is swiped.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
curl --request POST \
  --url 'https://services.bmspay.com/api/GiftCard/GetBalance' \
  --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 Balance Response SaleResponse
Example response
{
  "AppliedSurchargeAmount": 10.0,
  "AuthorizationNumber": "<authorization-number>",
  "Balance": "<balance>",
  "CardType": "<card-type>",
  "CustomerId": 1,
  "EmvData": "<emv-data>",
  "LastFour": "<last-four>",
  "Msg": [
    "<msg>"
  ],
  "PaymentPlanInfo": {
    "Description": "<description>",
    "DisplayName": false,
    "MonthlyFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "PlanId": 1,
    "PlanName": "<plan-name>",
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0
  },
  "ResponseCode": 200,
  "ServiceReferenceNumber": "<service-reference-number>",
  "Token": "<token>",
  "avs": "<avs>",
  "cv": "<cv>",
  "displayMessage": "<display-message>",
  "msoft_code": "<msoft-code>"
}

Gift Card Refund

POST /api/GiftCard/Refund

Process a gift card refund. The request will fail if the transaction was previously fully refunded.

Request body

Schema: RefundRequest

Field Type Requirement Description
Account string Optional Card number. Optional if using swipe method. Otherwise required.
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. The API refunds this exact amount and does not automatically prorate a surcharge into a
separate refund component.
AppInfo string Optional Application information including language, version, platform, device model and OS.
Format: "Lang: XX. Version: X.X.X. Platform: XXXX. DeviceModel: XXXX. OS: XXXX"
Example: "Lang: Es. Version: 3.11.8. Platform: android. DeviceModel: dedede. OS: Android OS 13 / API-33"
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.
ExpDate string Optional Card expiration date (MMYY).
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
Password string Required Password of the client on the host.
SURI string Optional SURI number
ServiceTransactionNumber string Required The transaction identifier provided by the Blackstone system at the time of the original transaction.
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional The source of the request
TrackData string Optional Card track data. Optional if using the No Swipe method.
UserName string Required User credential of the client on the host.
UserTransactionNumber string Required The transaction identifier used for referencepurposes only; must be unique.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
curl --request POST \
  --url 'https://services.bmspay.com/api/GiftCard/Refund' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "ServiceTransactionNumber": "<service-transaction-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
{
  "ServiceTransactionNumber": "<service-transaction-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 Refund Response SaleResponse
Example response
{
  "AppliedSurchargeAmount": 10.0,
  "AuthorizationNumber": "<authorization-number>",
  "Balance": "<balance>",
  "CardType": "<card-type>",
  "CustomerId": 1,
  "EmvData": "<emv-data>",
  "LastFour": "<last-four>",
  "Msg": [
    "<msg>"
  ],
  "PaymentPlanInfo": {
    "Description": "<description>",
    "DisplayName": false,
    "MonthlyFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "PlanId": 1,
    "PlanName": "<plan-name>",
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0
  },
  "ResponseCode": 200,
  "ServiceReferenceNumber": "<service-reference-number>",
  "Token": "<token>",
  "avs": "<avs>",
  "cv": "<cv>",
  "displayMessage": "<display-message>",
  "msoft_code": "<msoft-code>"
}

Gift Card Reversal

POST /api/GiftCard/Reversal

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

Request body

Schema: ReversalRequest

Field Type Requirement Description
AppInfo string Optional Application information including language, version, platform, device model and OS.
Format: "Lang: XX. Version: X.X.X. Platform: XXXX. DeviceModel: XXXX. OS: XXXX"
Example: "Lang: Es. Version: 3.11.8. Platform: android. DeviceModel: dedede. OS: Android OS 13 / API-33"
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.
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
Password string Required Password of the client on the host.
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional The source of the request
UserName string Required User credential of the client on the host.
UserTransactionNumber string Required The user transaction number that was sent by the client at the time of the transaction.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
curl --request POST \
  --url 'https://services.bmspay.com/api/GiftCard/Reversal' \
  --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
{
  "AppliedSurchargeAmount": 10.0,
  "AuthorizationNumber": "<authorization-number>",
  "Balance": "<balance>",
  "CardType": "<card-type>",
  "CustomerId": 1,
  "EmvData": "<emv-data>",
  "LastFour": "<last-four>",
  "Msg": [
    "<msg>"
  ],
  "PaymentPlanInfo": {
    "Description": "<description>",
    "DisplayName": false,
    "MonthlyFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "PlanId": 1,
    "PlanName": "<plan-name>",
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0
  },
  "ResponseCode": 200,
  "ServiceReferenceNumber": "<service-reference-number>",
  "Token": "<token>",
  "avs": "<avs>",
  "cv": "<cv>",
  "displayMessage": "<display-message>",
  "msoft_code": "<msoft-code>"
}

Gift Card Sale

POST /api/GiftCard/Sale

Process a sale using a gift card.

Request body

Schema: SaleRequest

Field Type Requirement Description
Amount number (double) Required Transaction amount as a JSON number. Quoted numeric strings are not part of the public contract.
AppInfo string Optional Application information including language, version, platform, device model and OS.
Format: "Lang: XX. Version: X.X.X. Platform: XXXX. DeviceModel: XXXX. OS: XXXX"
Example: "Lang: Es. Version: 3.11.8. Platform: android. DeviceModel: dedede. OS: Android OS 13 / API-33"
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.
CVN string Optional Credit card verification number (security code). Not required if credit card is swiped.
CardDifferenceAmount number (double) Optional The amount dedicated to the card difference (this is an optional charge passed on to the user)
CardNumber string Optional Credit card number. Not required if credit card isswiped.
CurrencyCode string Optional The Code of the currency to process the transaction. By default, USD dollar is used.
CustomerAddress string Optional Optional address for the customer
CustomerCity string Optional Optional city for the customer
CustomerCountry string Optional Optional country for the customer
CustomerEmail string Optional The email for the customer in the e-commerce transaction (optional)
CustomerId integer (int32) Optional The merchant customer ID as a JSON integer. Quoted strings are not part of the public contract.
CustomerPhone string Optional The phone number for the customer in the e-commerce transaction (optional)
CustomerState string Optional Optional state for the customer
DigWltProgType string Optional
DigWltToken string Optional
EmvData string Optional Contactless data.
ExpDate string Optional Credit card expiration date. SaleWithToken accepts MMYY or MM/YY; other sale flows require MMYY.
Not required if credit card is swiped. Rapid Connect token sales use the valid stored token
expiration when available and otherwise require this field.
ForceDuplication boolean Optional Indicates whether the payment should be executed even if a recent payment exists with the same signature.
InvoiceNumber string Optional Optional invoice number associated with the transaction.
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
NameOnCard string Optional Cardholder Name. Not required if credit card is swiped.
OrderReference string Optional Optional reference for the order in case it applies
Password string Required Password of the client on the host.
PaymentLinkId string Optional Optional Payment Link identifier when the transaction is paid from a payment link.
PosCode string — ECommerce, Moto, RecurringBilling, Retail Optional The condition in which the payment was captured
PosEntryMode string — KeyEntered, AmexContactless, CredentialOnFile, Contactless, Swiped, AmexDigitalWallet, Chip, ChipFallbackSwipe, ChipFallbackManual Optional The entry mode in which the payment was captured
PurchaseCardLevel2 PurchaseCardLevel2Data Optional Optional Purchase Card Level 2 data sent to Rapid Connect for commercial card processing.
SURI string Optional SURI number
SaveCustomer boolean Optional This optional parameter indicates if the merchant wants to save the customer
SaveToken boolean Optional Indicates to return a token for the card in case the transaction was successful
SecureData string Optional The 3D secure data present once the 3D secure flow has been triggered for the transaction
SecureTransactionId string Optional ID of the secure transaction
Source string — ApiClient, BpaydPortal, BPaydApp, BatchCloser, RecurringBillingTask, BPaydPlugin, PaymentFrame, VirtualTerminal, PaymentLink, Recurring, Invoice, QuickPayment, TakePayment, QuickPaymentMobileApp, WordPress, Zoho, Xero, Odoo, GoHighLevel, TakePaymentMobileApp Optional The source of the request
Street string Optional Cardholder�s billing street. Not required if credit card is swiped.
SurchargeAmount number (double) Optional Optional surcharge amount as a JSON number. Direct API callers calculate and supply this value;
the API does not derive it from the merchant's configured surcharge percentage.
TaxAmount number (double) Optional The amount dedicated to the tax (this is an optional charge configurable by the merchant)
TipAmount number (double) Optional The amount dedicated to the tip (this is an optional charge for the client with a default value configurable by the merchant)
Track2 string Optional Credit card track data. Not required if using the No Swipe method.
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 |
UserName string Required User credential of the client on the host.
UserTransactionNumber string Required The transaction identifier used for reference purposes only; must be unique.
ZipCode string Optional Cardholder�s zip code. Not required if credit card is swiped.
cid integer (int32) Required Cashier ID – A number used to identify the merchant’s subclient.
mid integer (int32) Required Merchant ID – A number used to identify the merchant.
curl --request POST \
  --url 'https://services.bmspay.com/api/GiftCard/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
{
  "AppliedSurchargeAmount": 10.0,
  "AuthorizationNumber": "<authorization-number>",
  "Balance": "<balance>",
  "CardType": "<card-type>",
  "CustomerId": 1,
  "EmvData": "<emv-data>",
  "LastFour": "<last-four>",
  "Msg": [
    "<msg>"
  ],
  "PaymentPlanInfo": {
    "Description": "<description>",
    "DisplayName": false,
    "MonthlyFee": 1.0,
    "NonSwipeDiscount": 1.0,
    "NonSwipeTransactionFee": 1.0,
    "PlanId": 1,
    "PlanName": "<plan-name>",
    "SwipeDiscount": 1.0,
    "SwipeTransactionFee": 1.0
  },
  "ResponseCode": 200,
  "ServiceReferenceNumber": "<service-reference-number>",
  "Token": "<token>",
  "avs": "<avs>",
  "cv": "<cv>",
  "displayMessage": "<display-message>",
  "msoft_code": "<msoft-code>"
}