Account Management: https://secure.bluepay.com

Default Currency: USD

Developer Documentation:
https://developer.cardconnect.com/bluepay-gateway#api-documentation (bp10emu)

šŸ“˜

Notice

This gateway does not support 3-D Secure parameters from an external 3-D Secure service. Thus, you will not be able to use this gateway to process transactions authenticated via TokenEx's 3-D Secure service.

Supported Parameters:
* denotes a required field
type column indicates max length

Field NameTypebp10emu MappingNotes
gatewaystringN/ABluePay
testModebooleanMODETrue = TEST, False = LIVE
merchantId*string(12)MERCHANTBluePay Account ID
privateKey*stringUsed in TPS HashBluePay Secret Key
duplicateOverridebooleanDUPLICATEOVERRIDESet to true to turn off duplicate scrubbing for a transaction. Set to false or leave blank to process with duplicate scrubbing
responseVersionstringRESPONSEVERSION1-8+, All higher versions include lower versions. Defaults to 1 if left blank
descriptionstringCOMMENTBrief summary of the transaction
amountnumericAMOUNTTransaction amount in cents. Example: $10.00 should be sent as 1000
orderIdstring(128)ORDER_IDAn identifier for the payment from the merchant's system
docTypestringDOC_TYPEACH documentation type of agreement with payer: PPD, CCD, WEB, TEL. Defaults to WEB
customerIpAddressstringCUSTOMER_IPThe IP address of the customer's computer. When the customer does not post their payment directly to the BluePay Gateway, setting this value is helpful to take full advantage of BluePay's fraud prevention systems.
orderInfo.PurchaseOrderNumberstringLV2_ITEM_CUST_POPurchase Order Number
orderInfo.InvoiceNumberstring(10)INVOICE_IDAn identifier for the Invoice in Merchant's system
orderInfo.CustomerIdstring(30)LV2_ITEM_CUSTOMER_NUMBERUnique identifier for customer within Merchant's system
creditCard.NumberstringCC_NUMCard number or TokenEx Token - Tokenex will replace the Token with the Detokenized number
creditCard.ExpMonthnumericCC_EXPIRESExpMonth and ExpYear (last two digits of passed four digits) are concatenated within Payment Services' BluePay Integration and passed into CC_EXPIRES. Example: 01 2025 becomes 0125
creditCard.ExpYearnumericCC_EXPIRESExpMonth and ExpYear (last two digits of passed four digits) are concatenated within Payment Services' BluePay Integration and passed into CC_EXPIRES. Example: 01 2025 becomes 0125
creditCard.CvvstringCVCCVV2Card verification value
tax.Amountnumeric(6)AMOUNT_TAXTax amount in cents. Example: $10.00 should be sent as 1000
check.AccountNumberstringACH_ACCOUNTACH account number or TokenEx Token - Tokenex will replace the Token with the Detokenized number
check.RoutingNumberstringACH_ROUTINGContains the nine-digit bank routing ("ABA") number for the customer's bank account.
check.AccountTypestringACH_ACCOUNT_TYPEValid input Values
1 or Checking
2 or Savings
3 or GeneralLedger
bp10emu mapping
Checking - C
Savings - S
GeneralLedger - G
billingAddress.PhonestringPHONEPhone number for contact at billing address
billingAddress.EmailstringEMAILEmail address for contact at billing address
billingAddress.FullNamestringNAMEName associated with customerā€™s billing address. If left empty, field will default to billingAddress.FirstName + billingAddress.Lastname.
billingAddress.FirstNamestringNAMEName associated with customerā€™s billing address. FirstName and Lastname are space-separated and sent in NAME if FullName is empty.
billingAddress.LastNamestringNAMEName associated with customerā€™s billing address. FirstName and Lastname are space-separated and sent in NAME if FullName is empty.
billingAddress.CompanystringCOMPANY_NAMEName of company at billing address
billingAddress.Address1stringADDR1First line of customerā€™s billing address
billingAddress.Address2stringADDR2Second line of customerā€™s billing address
billingAddress.CitystringCITYCity of customerā€™s billing address
billingAddress.StatestringSTATEState of customerā€™s billing address
billingAddress.ZipstringZIPCODEZip code of customerā€™s billing address
billingAddress.CountrystringCOUNTRYAlpha-3 ISO country code
rebill.ExternalRebillstringF_REBILLINGRebilling flag. Only used for non-BluePay generated rebillings to identify the transaction as a rebilling. Set value to "1" for rebill transaction.
rebill.BluePayRebillstringREBILLING"1" for yes, "0" for no. Rebilling will be managed by BluePay and can be configured using the other rebilling fields below.
rebill.StartDatestringREB_FIRST_DATEThe date of the first rebilling. Two valid formats as follows:
"YYYY-MM-DD HH:MM:SS" Hours, minutes, and seconds are optional.
"XX UNITS" marked from the time of the transaction. Examples: 10 DAYS, 1 MONTH, 1 YEAR
rebill.FrequencystringREB_EXPRThe period of time in-between rebillings. "XX UNITS" marked from the time of the transaction. Examples: 10 DAYS, 1 MONTH, 1 YEAR
rebill.CyclesstringREB_CYCLESNumber of times to rebill. Leaving blank or not sending will cause the rebillings to continue until canceled.
rebill.AmountintREB_AMOUNTAmount to rebill. Defaults to amount of transaction for rebillings. $10.00 should be sent as 1000
rebill.IsCreditOrSalestringREB_IS_CREDITField to indicate whether the rebill transaction is a SALE or CREDIT.
The valid values are:
"1" for CREDIT
"0" For SALE (default).

Example Payloads:

{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay Secret Key>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "orderId": "ABC00001",
    "orderInfo": {
        "purchaseOrderNumber": "ABC00001",
        "invoiceNumber": "ABC00001",
        "customerId": "ABC00001"
    },
    "tax": {
        "amount": 100
    },
    "creditCard": {
        "number": "4111111111111111",
        "expMonth": 6,
        "expYear": 2024,
        "cvv": "123"
    },
    "billingAddress": {
        "phone": "555-555-5555",
        "email": "[email protected]",
        "name": "John Doe",
        "company": "Test Co.",
        "address1": "123 Someplace Lane",
        "address2": "Suite #40A",
        "city": "Edmond",
        "state": "OK",
        "zip": "74100",
        "country": "USA"
    },
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay Secret Key>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "rebill": {
        "externalRebill":"1"
    },
    "orderId": "ABC00001",
    "orderInfo": {
        "purchaseOrderNumber": "ABC00001",
        "invoiceNumber": "ABC00001",
        "customerId": "ABC00001"
    },
    "tax": {
        "amount": 100
    },
    "creditCard": {
        "number": "4111111111111111",
        "expMonth": 6,
        "expYear": 2024,
        "cvv": "123"
    },
    "billingAddress": {
        "phone": "555-555-5555",
        "email": "[email protected]",
        "name": "John Doe",
        "company": "Test Co.",
        "address1": "123 Someplace Lane",
        "address2": "Suite #40A",
        "city": "Edmond",
        "state": "OK",
        "zip": "74100",
        "country": "USA"
    },
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay Secret Key>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "rebill": {
        "bluePayRebill": "1",
        "startDate": "7 DAYS",
        "frequency": "1 MONTH",
        "cycles": "2",
        "amount": 900
    },
    "orderId": "ABC00001",
    "orderInfo": {
        "purchaseOrderNumber": "ABC00001",
        "invoiceNumber": "ABC00001",
        "customerId": "ABC00001"
    },
    "tax": {
        "amount": 100
    },
    "creditCard": {
        "number": "4111111111111111",
        "expMonth": 6,
        "expYear": 2024,
        "cvv": "123"
    },
    "billingAddress": {
        "phone": "555-555-5555",
        "email": "[email protected]",
        "name": "John Doe",
        "company": "Test Co.",
        "address1": "123 Someplace Lane",
        "address2": "Suite #40A",
        "city": "Edmond",
        "state": "OK",
        "zip": "74100",
        "country": "USA"
    },
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay SecretKey>",
    "tokenExTransactionCode": "<TokenExTransactionCode from a previous Authorize call>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "orderId": "ABC00001",
    "orderInfo": {
        "purchaseOrderNumber": "ABC00001",
        "invoiceNumber": "ABC00001",
        "customerId": "ABC00001"
    },
    "tax": {
        "amount": 100
    },
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay SecretKey>",
    "tokenExTransactionCode": "<TokenExTransactionCode from a previous Capture or Purchase call>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "orderId": "ABC00001",
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay SecretKey>",
    "tokenExTransactionCode": "<TokenExTransactionCode from a previous Capture or Purchase call>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "orderId": "ABC00001",
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay SecretKey>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "orderId": "ABC00001",
    "orderInfo": {
        "invoiceNumber": "ABC00001"
    },
    "check": {
        "accountNumber": "91243783",
        "routingNumber": "800483636",
        "accountType": "Checking"
    },
    "billingAddress": {
        "phone": "555-555-5555",
        "email": "[email protected]",
        "name": "John Doe",
        "company": "Test Co.",
        "address1": "123 Someplace Lane",
        "address2": "Suite #40A",
        "city": "Edmond",
        "state": "OK",
        "zip": "74100",
        "country": "USA"
    },
    "docType": "WEB",
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay SecretKey>",
    "tokenExTransactionCode": "<TokenExTransactionCode from a previous Purchase call>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "amount": 900,
    "orderId": "ABC00001",
    "orderInfo": {
        "invoiceNumber": "ABC00001"
    },
    "customerIpAddress": "130.37.201.117"
}
{
    "gateway": "BluePay",
    "testMode": true,
    "merchantId": "<Your BluePay AccountId>",
    "privateKey": "<Your BluePay SecretKey>",
    "tokenExTransactionCode": "<TokenExTransactionCode from a previous Purchase call>",
    "duplicateOverride": true,
    "responseVersion": "5",
    "description": "Wide-ruled notebook paper",
    "orderId": "ABC00001",
    "orderInfo": {
        "invoiceNumber": "ABC00001"
    },
    "customerIpAddress": "130.37.201.117"
}

Gateway Response Fields:

Field NameTypebp10emu MappingNotes
approvalCodestringAUTH_CODEA six-character pseudo-ID from the processing network.
approvedbooleanResultIf the Result field in the GatewayResponse.RawResponse is APPROVED, this field will be true.
providerTransactionCodestringRRNOTransaction ID of the newly run transaction.

šŸ‘

Parsing the bp10emu Raw Response

The rawResponse field for BluePay's bp10emu contains a URL-Encoded string of key-values separated by &. These fields are in unpredictable orders and values should be read via regex. A suggested regex for finding the values of certain fields: (?<=([?]|[&])FIELD_NAME=)([^&]+)
Demo: https://regexr.com/6nhet