Skip to content

Recurring Billing

Plans, subscriptions, and scheduled billing.

7 endpoints All API groups

Create a new ATHMobile Transaction

POST /api/ATHMobileTransaction

Request body

Schema: ATHMobileTransactionRequest

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.
BusinessCustomerId string Optional —
DailyTransactionId integer (int32) Optional —
EcommerceId string Optional —
EcommerceStatus string — Open, Completed, Cancel, Confirm Optional —
Fee number (double) Optional —
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
Merchantid integer (int32) Optional —
NetAmount number (double) Optional —
Password string Required Password of the client on the host.
ReferenceNumber 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 The source of the request
SubTotal number (double) Optional —
Tax number (double) Optional —
Total number (double) Optional —
TotalRefundedAmount number (double) Optional —
TransactionDate string (date-time) Optional —
UserName string Required User credential of the client on the host.
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/ATHMobileTransaction' \
  --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 Create ATHMobile Transaction Response ATHMobileTransactionResponse
Example response
{
  "Msg": [
    "<msg>"
  ],
  "ResponseCode": 200,
  "Transactions": [
    {
      "BusinessCustomerId": "<business-customer-id>",
      "DailyTransactionId": 1,
      "EcommerceId": "<ecommerce-id>",
      "EcommerceStatus": "Open",
      "Fee": 1.0,
      "Id": "00000000-0000-0000-0000-000000000000",
      "Mid": 1,
      "NetAmount": 10.0,
      "ReferenceNumber": "<reference-number>",
      "SubTotal": 1.0,
      "Tax": 1.0,
      "Total": 1.0,
      "TotalRefundedAmount": 10.0,
      "TransactionDate": "2026-01-31"
    }
  ],
  "displayMessage": "<display-message>",
  "verbiage": "<verbiage>"
}

Create a new ATHMobile Transaction

POST /api/ATHMobileTransaction/Create

Request body

Schema: ATHMobileTransactionRequest

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.
BusinessCustomerId string Optional —
DailyTransactionId integer (int32) Optional —
EcommerceId string Optional —
EcommerceStatus string — Open, Completed, Cancel, Confirm Optional —
Fee number (double) Optional —
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
Merchantid integer (int32) Optional —
NetAmount number (double) Optional —
Password string Required Password of the client on the host.
ReferenceNumber 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 The source of the request
SubTotal number (double) Optional —
Tax number (double) Optional —
Total number (double) Optional —
TotalRefundedAmount number (double) Optional —
TransactionDate string (date-time) Optional —
UserName string Required User credential of the client on the host.
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/ATHMobileTransaction/Create' \
  --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 Create ATHMobile Transaction Response ATHMobileTransactionResponse
Example response
{
  "Msg": [
    "<msg>"
  ],
  "ResponseCode": 200,
  "Transactions": [
    {
      "BusinessCustomerId": "<business-customer-id>",
      "DailyTransactionId": 1,
      "EcommerceId": "<ecommerce-id>",
      "EcommerceStatus": "Open",
      "Fee": 1.0,
      "Id": "00000000-0000-0000-0000-000000000000",
      "Mid": 1,
      "NetAmount": 10.0,
      "ReferenceNumber": "<reference-number>",
      "SubTotal": 1.0,
      "Tax": 1.0,
      "Total": 1.0,
      "TotalRefundedAmount": 10.0,
      "TransactionDate": "2026-01-31"
    }
  ],
  "displayMessage": "<display-message>",
  "verbiage": "<verbiage>"
}

Create

POST /api/RecurringBilling/Create

Request body

Schema: RecurringBillingRequest

Field Type Requirement Description
Account string Optional —
Amount number (double) Required —
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.
CardDifferencePercent number (double) Optional —
CardHolderName string Optional —
CardTokenId integer (int32) Optional —
City string Optional —
CustomerId string Optional —
CustomerZipCode string Optional —
Cv string Optional —
Description string Optional —
Email string Optional —
EndDate string (date-time) Optional —
ExpDate string Optional —
FirstName string Optional —
FrequencyId integer (int32) Required —
InstallmentTotal integer (int32) Required —
IpAddress string Optional The client's IP address.
IsInstallment boolean Required —
IsTest boolean Optional True if is a test sale
LastName string Optional —
MerchantId integer (int32) Optional —
Password string Required Password of the client on the host.
Phone string Optional —
SecureData string Optional —
SecureTransactionId string Optional —
SelectedCustomerId integer (int32) Optional —
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
StartDate string (date-time) Required —
State string Optional —
Street string Optional —
SurchargePercent number (double) Optional —
TaxPercent number (double) Optional —
TransactionId string Optional —
UserName string Required User credential of the client on the host.
ZipCode string Optional —
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/RecurringBilling/Create' \
  --header 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "IsInstallment": false,
  "InstallmentTotal": 1,
  "FrequencyId": 1,
  "Amount": 10.0,
  "StartDate": "2026-01-31",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}
JSON
{
  "IsInstallment": false,
  "InstallmentTotal": 1,
  "FrequencyId": 1,
  "Amount": 10.0,
  "StartDate": "2026-01-31",
  "AppKey": "your-app-key",
  "AppType": 1,
  "mid": 1,
  "cid": 1,
  "UserName": "your-username",
  "Password": "your-password",
  "IsTest": true
}

Responses

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

Deactivate

POST /api/RecurringBilling/Deactivate

Request body

Schema: RecurringBillingDeactivateRequest

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.
BillingId integer (int32) Optional Billing Identifier.
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.
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/RecurringBilling/Deactivate' \
  --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 Deactivate Response RecurringBillingDeactivateResponse
Example response
{
  "Msg": [
    "<msg>"
  ],
  "ResponseCode": 200,
  "displayMessage": "<display-message>",
  "verbiage": "<verbiage>"
}

Edit

POST /api/RecurringBilling/Edit

Request body

Schema: RecurringBillingEditRequest

Field Type Requirement Description
Amount number (double) Optional —
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.
Description string Optional —
FrequencyId integer (int32) Optional —
Id integer (int32) Optional —
IpAddress string Optional The client's IP address.
IsTest boolean Optional True if is a test sale
NextPaymentDate string (date-time) Optional —
Password string Required Password of the client on the host.
RecurringEnd string (date-time) Optional —
RecurringStart string (date-time) Optional —
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.
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/RecurringBilling/Edit' \
  --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 Edit Response RecurringBillingEditResponse
Example response
{
  "Msg": [
    "<msg>"
  ],
  "ResponseCode": 200,
  "displayMessage": "<display-message>",
  "verbiage": "<verbiage>"
}

Get an active Recurring Billing based on it's billing id

POST /api/RecurringBilling/Get

Request body

Schema: RecurringBillingGetRequest

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.
BillingId integer (int32) Optional Billings Identifier.
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.
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/RecurringBilling/Get' \
  --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 Get Response RecurringBillingGetResponse
Example response
{
  "Billing": {
    "AddedOn": "2026-01-31T12:00:00Z",
    "Amount": 10.0,
    "AmountCollectedSoFar": 10.0,
    "CardType": "<card-type>",
    "City": "<city>",
    "CustomerId": 1,
    "Description": "<description>",
    "Email": "developer@example.com",
    "EndDate": "2026-01-31",
    "FirstName": "<first-name>",
    "Frequency": "<frequency>",
    "Id": 1,
    "InstallmentTotal": 1,
    "IsInstallment": false,
    "LastFour": "<last-four>",
    "LastModifiedOn": "2026-01-31T12:00:00Z"
  },
  "Msg": [
    "<msg>"
  ],
  "ResponseCode": 200,
  "displayMessage": "<display-message>",
  "verbiage": "<verbiage>"
}

Get all active Billings based on their common merchant id

POST /api/RecurringBilling/GetAll

Request body

Schema: RecurringBillingGetRequest

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.
BillingId integer (int32) Optional Billings Identifier.
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.
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/RecurringBilling/GetAll' \
  --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 Get Response RecurringBillingGetAllResponse
Example response
{
  "Billings": [
    {
      "AddedOn": "2026-01-31T12:00:00Z",
      "Amount": 10.0,
      "AmountCollectedSoFar": 10.0,
      "CardType": "<card-type>",
      "City": "<city>",
      "CustomerId": 1,
      "Description": "<description>",
      "Email": "developer@example.com",
      "EndDate": "2026-01-31",
      "FirstName": "<first-name>",
      "Frequency": "<frequency>",
      "Id": 1,
      "InstallmentTotal": 1,
      "IsInstallment": false,
      "LastFour": "<last-four>",
      "LastModifiedOn": "2026-01-31T12:00:00Z"
    }
  ],
  "Msg": [
    "<msg>"
  ],
  "ResponseCode": 200,
  "displayMessage": "<display-message>",
  "verbiage": "<verbiage>"
}