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