DEVELOPER

Merchant Boarding API Specification

Version 1.50.2

production
sandbox

Application

Manage merchant enrollment applications

Get Authentication Token

post /oauth/token

The Authentication endpoint is used to retrieve the token needed to call the application endpoints. A token is granted when a user calls the Authentication endpoint and submits a matching Client ID and Client Secret pair. For more information about authentication, please refer to the Merchant Boarding API Integration Guide.

Request Schema
grant_type required
Type
string
Example
client_credentials

Loading...

scope required
Type
string
Example
all

Loading...

client_id required
Type
string
Example
example_sandbox

Loading...

client_secret required
Type
string

Loading...

Example Request
{
  "grant_type": "client_credentials",
  "scope": "all",
  "client_id": "example_sandbox",
  "client_secret": "example"
}
Example Response
201 Returns Authentication Token Data

Create New Application

post /enroll/application

Create a new enrollment application by using a plan ID. For information about obtaining a plan ID, please refer to the Merchant Boarding API Integration Guide. Fields required to create and save a new application are identified by the Required attribute in this endpoint. Fields required to submit an application to Underwriting are identified by the Required attribute in the One-Click Create And Submit endpoint.

Request Schema
agent required
Type
integer
Example
11111

Loading...

applicationName required
Type
string
Range
1 to 255 characters
Example
Joe's Pizza Shop application for location #123 in Troy

Loading...

externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
123abc

Loading...

plan required
Type
object

Loading...

shipping
Type
object

Loading...

principals
Type
array

Loading...

business
Type
object

Loading...

bankAccount
Type
object

Loading...

epxHierarchy
Type
object

Loading...

Example Request
{
  "agent": 12345,
  "applicationName": "Joe's spaceage Stereo - Vermont",
  "externalKey": "0aa000a-000a-00a0-00a0-00000aa00a0",
  "plan": {
    "planId": 12345
  }
}
Example Response
201 Returns the created application.
400 Bad request
415 Unsupported media type response - Invalid content type
422 Invalid input

One-Click Create and Submit

post /enroll/one-click-submit-application

This endpoint is used to create a new processing application, validate, and submit it to Underwriting using a single endpoint.

Request Schema
agent required
Type
integer
Example
11111

Loading...

applicationName required
Type
string
Range
1 to 255 characters
Example
Joe's Pizza Shop application for location #123 in Troy

Loading...

externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
123abc

Loading...

plan required
Type
object

Loading...

shipping
Type
object

Loading...

principals required
Type
array

Loading...

business required
Type
object

Loading...

bankAccount required
Type
object

Loading...

Example Request
{
  "agent": 12345,
  "applicationName": "Joe's spaceage Stereo - Vermont",
  "externalKey": "0aa000a-000a-00a0-00a0-00000aa00a0",
  "plan": {
    "planId": 12345,
    "equipmentCostToMerchant": 325.49,
    "accountSetupFee": 10.99,
    "discountFrequency": "Daily",
    "equipment": [
      {
        "equipmentId": 621,
        "quantity": 1
      },
      {
        "equipmentId": 809,
        "quantity": 3
      },
      {
        "equipmentId": 1054,
        "quantity": 2
      }
    ]
  },
  "shipping": {
    "shippingDestination": "DBA",
    "deliveryMethod": "Ground"
  },
  "principals": [
    {
      "firstName": "Joseph",
      "lastName": "Jackson",
      "socialSecurityNumber": "123456789",
      "driverLicenseNumber": "ABC1234567890",
      "driverLicenseIssuedState": "MI",
      "dateOfBirth": "1955-12-25",
      "phoneNumber": "1234567890",
      "email": "user@example.com",
      "street": "123 Selah Way",
      "street2": "Suite 123",
      "zipCode": "12345",
      "city": "South Burlington",
      "state": "VT",
      "equityOwnershipPercentage": 50,
      "title": "ceo",
      "isPersonalGuarantor": true
    },
    {
      "firstName": "Jeremy",
      "lastName": "Coelman",
      "socialSecurityNumber": "123456789",
      "dateOfBirth": "1977-12-25",
      "phoneNumber": "1234567890",
      "email": "user@example.com",
      "street": "3601 Finwood Drive",
      "zipCode": "12345",
      "city": "Red Bank",
      "state": "NJ",
      "equityOwnershipPercentage": 50,
      "title": "manager",
      "isPersonalGuarantor": false
    }
  ],
  "business": {
    "corporateName": "Joe's Spaceage Stereo",
    "dbaName": "Jo Jackson Spaceage Stereo",
    "businessType": "C",
    "industryType": "restaurant",
    "federalTaxIdNumber": "123567654",
    "federalTaxIdType": "EIN",
    "mcc": "0742",
    "phone": "1234567890",
    "fax": "8876543222",
    "email": "user@example.com",
    "websites": [
      {
        "url": "https://spaceagestereos.biz",
        "websiteCustomerServiceEmail": "customer-service-email@example.com",
        "websiteCustomerServicePhoneNumber": "1234567890"
      }
    ],
    "averageTicketAmount": 5000,
    "averageMonthlyVolume": 1250000,
    "highTicketAmount": 125000,
    "merchandiseServicesSold": "Audio components and services",
    "yearsInBusiness": 10,
    "monthsInBusiness": 10,
    "percentOfBusinessTransactions": {
      "cardSwiped": 65,
      "keyedCardPresentNotImprinted": 20,
      "mailOrPhoneOrder": 0,
      "internet": 15
    },
    "ebt": {
      "ebtFood": true,
      "ebtCash": false,
      "ebtAccountNumber": "test-account-12345"
    },
    "businessContact": {
      "firstName": "Roy",
      "lastName": "Martin",
      "socialSecurityNumber": "123456789",
      "dateOfBirth": "1947-11-05",
      "street": "828 Late Avenue",
      "street2": "",
      "zipCode": "12345",
      "city": "South Burington",
      "state": "VT",
      "phoneNumber": "1234567890",
      "email": "user@example.com"
    },
    "statementDeliveryMethod": "electronic",
    "businessAddress": {
      "dba": {
        "street": "1072 Clinton St",
        "city": "South Burlington",
        "state": "VT",
        "zipCode": "12345"
      },
      "corporate": {
        "street": "1447 Sun Valley Rd",
        "city": "South Burlington",
        "state": "VT",
        "zipCode": "12345"
      },
      "shipTo": {
        "street": "4735 Saint James Drive",
        "city": "South Burlington",
        "state": "VT",
        "zipCode": "12345"
      }
    }
  },
  "bankAccount": {
    "abaRouting": "000000001",
    "accountType": "checking",
    "demandDepositAccount": "9999999999999"
  }
}
Example Response
200 Returns created application and underwriting status.
400 Bad request
415 Unsupported media type response - Invalid content type.
422 Invalid input.

Get Application by External Key

get /enroll/application/key/{externalKey}

This endpoint is used to retrieve an existing application by referencing the external key associated with the application.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Returns an existing application
404 Application not found

Update Application

patch /enroll/application/key/{externalKey}

Update an existing application using the PATCH method.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Request Schema
agent
Type
integer
Example
11111

Loading...

applicationName
Type
string
Range
1 to 255 characters
Example
Joe's Pizza Shop application for location #123 in Troy

Loading...

externalKey
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
123abc

Loading...

plan
Type
object

Loading...

shipping
Type
object

Loading...

principals
Type
array

Loading...

business
Type
object

Loading...

bankAccount
Type
object

Loading...

epxHierarchy
Type
object

Loading...

Example Request
{
  "applicationName": "Joe's spaceage Stereo - Redmond",
  "plan": {
    "equipment": [
      {
        "equipmentId": 621,
        "quantity": 1
      },
      {
        "equipmentId": 791,
        "quantity": 0
      },
      {
        "equipmentId": 809,
        "quantity": 3
      },
      {
        "equipmentId": 994,
        "quantity": 0
      },
      {
        "equipmentId": 1054,
        "quantity": 2
      }
    ],
    "equipmentCostToMerchant": 15,
    "accountSetupFee": 0.99
  },
  "principals": [
    {
      "street": "790 Selah Drive",
      "street2": "Suite 125",
      "city": "South Burlington",
      "state": "VT",
      "zipCode": "12345",
      "firstName": "Joseph Jr.",
      "lastName": "Jameson",
      "socialSecurityNumber": "123456789",
      "driverLicenseNumber": "ABC1234567891",
      "driverLicenseIssuedState": "GA",
      "dateOfBirth": "1955-12-25",
      "phoneNumber": "1234567890",
      "email": "user@example.com",
      "equityOwnershipPercentage": 40,
      "title": "owner",
      "isPersonalGuarantor": true
    },
    {
      "street": "3601 Finwood Drive",
      "street2": null,
      "city": "Red Bank",
      "state": "NJ",
      "zipCode": "12345",
      "firstName": "Jeremy",
      "lastName": "Coelman",
      "socialSecurityNumber": "123456789",
      "driverLicenseNumber": "ABC1234567891",
      "driverLicenseIssuedState": "GA",
      "dateOfBirth": "1977-12-25",
      "phoneNumber": "1234567890",
      "email": "user@example.com",
      "equityOwnershipPercentage": 50,
      "title": "manager",
      "isPersonalGuarantor": false
    }
  ]
}
Example Response
200 Returns updated application
404 Application not found response.
415 Unsupported media type response - Invalid content type
422 Validation error within request body

Get Application by MID

get /enroll/application/mid/{merchantId}

This endpoint is used to retrieve an existing application by referencing the Merchant ID (MID).

Parameters
merchantId required
Type
string
Pattern
^\d*$
Minimum Length
1
Example
00000000001

Loading...

Example Response
200 Returns existing application
404 Application not found.

Get Application Pricing

get /enroll/application/pricing/key/{externalKey}

Get application pricing details by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Return pricing details for enrollment application.
404 Application not found error response.
500 Internal server error response.

Update Application Pricing

patch /enroll/application/pricing/key/{externalKey}

The Update Application Pricing endpoint uses the PATCH method to give Partners the ability to edit pricing fields directly on applications. Please refer to the 'Pricing Field Conditions' section of the Merchant Boarding API Integration Guide for the field mapping conditions required to successfully update specific pricing field values. Once an application has been created, this endpoint can be leveraged to set customized values for applicable pricing fields without creating a new template. Any changes made using this endpoint will only affect the application specified by the external key and will not change the template.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Request Schema
accountSetupFee
Type
number
Range
0 to 999999.9999
Example
15.5

Loading...

additionalFees
Type
object

Loading...

amexInterchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

amexQualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

debitInterchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

debitQualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

ebtInterchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

ebtQualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

qualifiedCheckCardRate
Type
number
Range
0 to 99
Example
0.25

Loading...

qualifiedCheckCardTransactionFee
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

interchangeTransactionPassthroughCreditFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

interchangeTransactionPassthroughCheckcardFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

equipmentCostToMerchant
Type
number
Default
0
Range
0 to 999999.99
Example
25

Loading...

pciFeeBillingFrequency
Type
string
Default
ANNUAL
Enum
MONTHLYANNUALmonthlyannualMonthlyAnnual
Example
ANNUAL

Loading...

edgeFlatFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

edgePercentFee
Type
number
Range
0 to 99
Example
0.25

Loading...

enableAchDiscountFee
Type
boolean
Example
true

Loading...

enableDebitInterchangeBilling
Type
boolean
Example
true

Loading...

enableInterchangeTransactionPassthroughFee
Type
boolean
Example
true

Loading...

enableNetworkAccessBrandFees
Type
boolean
Example
true

Loading...

enablePassthroughAssessment
Type
boolean
Example
false

Loading...

hasRealTimeAccountUpdaterEnabled
Type
boolean
Example
false

Loading...

interchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

midQualifiedBump
Type
number
Range
0 to 99
Example
0.25

Loading...

nonQualifiedBump
Type
number
Range
0 to 99
Example
0.25

Loading...

nonQualifiedTransactionFeeBump
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

qualifiedAmexTransactionFee
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

qualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

qualifiedTransactionFee
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

rewardRate
Type
string
Enum
MQQ203040506070809095
Example
Q

Loading...

waiveTerminationFee
Type
boolean
Example
false

Loading...

Example Request
{
  "accountSetupFee": 10.12,
  "additionalFees": {
    "achTransactionFee": 0,
    "achDiscountFee": 0,
    "achMinimumPerItemFee": 0,
    "achBatchHeaderFee": 30,
    "achMonthlyBasicServiceFee": 1,
    "achNotificationOfChangeFee": 1,
    "achPerItemFee": 1,
    "achRejectFee": 1,
    "achReturnFee": 1,
    "achUnauthorizedReturnFee": 22,
    "batchHeader": 0,
    "chargeBackFee": 15,
    "debitGatewayFee": 0,
    "debitTransactionFee": 0,
    "ebtTransactionFee": 0,
    "gatewayTransactionFee": 0,
    "internetGatewayMonthlyFee": 0,
    "internetTransactionFee": 0,
    "mcclaimsFee": 0,
    "merchantClubFee": 14.95,
    "monthlyBasicServiceFee": 5,
    "monthlyDiscountFee": 0,
    "monthlyHostingFee": 0,
    "monthlyMinimumDiscountFee": 25,
    "monthlyMinimumFee": 0,
    "monthlyRegulatoryFee": 0,
    "monthlySoftwareFeePerDevice": 11.99,
    "pciComplianceMonthlyFee": 19,
    "pciNonComplianceMonthlyFee": 59,
    "processorAuthorizationFee": 0,
    "retrievalFee": 15,
    "returnItemSupportFee": 0,
    "settledTransactionFee": 0,
    "technologyFee": 0,
    "travelAndEntertainmentDraftCaptureTransactionFee": 0,
    "wirelessMonthlyFee": 0,
    "wirelessTransactionFee": 0,
    "visaRealTimeAccountUpdaterPassthruFee": 0.22
  },
  "amexInterchangeDuesAssessmentsBasisPoint": null,
  "amexQualifiedRate": 0.12,
  "debitInterchangeDuesAssessmentsBasisPoint": null,
  "debitQualifiedRate": null,
  "ebtInterchangeDuesAssessmentsBasisPoint": null,
  "ebtQualifiedRate": null,
  "edgeFlatFee": 0,
  "edgePercentFee": 0,
  "enableAchDiscountFee": false,
  "enableDebitInterchangeBilling": false,
  "enableInterchangeTransactionPassthroughFee": false,
  "enableNetworkAccessBrandFees": true,
  "enablePassthroughAssessment": false,
  "equipmentCostToMerchant": 20.5,
  "hasRealTimeAccountUpdaterEnabled": true,
  "interchangeDuesAssessmentsBasisPoint": null,
  "interchangeTransactionPassthroughCheckcardFee": 2.45,
  "interchangeTransactionPassthroughCreditFee": 1.45,
  "midQualifiedBump": 0.17,
  "nonQualifiedBump": 0.67,
  "nonQualifiedTransactionFeeBump": 0.15,
  "pciFeeBillingFrequency": "ANNUAL",
  "qualifiedAmexTransactionFee": null,
  "qualifiedCheckCardRate": null,
  "qualifiedCheckCardTransactionFee": 1.5,
  "qualifiedRate": 0.69,
  "qualifiedTransactionFee": 0.99,
  "rewardRate": "MQ",
  "waiveTerminationFee": false
}
Example Response
200 Return updated pricing details for enrollment application.
400 Bad request with validation errors
404 Application not found error
415 Unsupported media type response - Invalid content type.
422 Schema validation error within request body response.

Update Advanced Application Pricing

patch /application/advanced-pricing-model/key/{externalKey}

Update advanced application pricing settings using the Patch method.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
2dc4436c-474d-46c3-83e8-50312fc27b01

Loading...

Request Schema
pricingModel
Type
string
Enum
tieredinterchangePlusqualifyingIncentiveflatRateedgeProgrampayAsYouGo
Example
tiered

Loading...

surchargeTable
Type
string
Pattern
^[A-Z0-9]+$
Range
1 to 2 characters
Example
N

Loading...

industryType
Type
string
Enum
internetmotorestaurantretail
Example
restaurant

Loading...

isEdgePricing
Type
boolean
Example
false

Loading...

isFlatRatePricing
Type
boolean
Example
false

Loading...

isPayAsYouGo
Type
boolean
Example
false

Loading...

accountSetupFee
Type
number
Range
0 to 999999.9999
Example
15.5

Loading...

amexInterchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

amexQualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

annualFee
Type
number
Range
0 to 999999.9999
Example
75

Loading...

debitInterchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

debitQualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

ebtInterchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

ebtQualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

ebtTransactionFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

edgeEnabled
Type
boolean
Example
false

Loading...

edgeFlatFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

edgePercentFee
Type
number
Range
0 to 99
Example
0.25

Loading...

enableAchDiscountFee
Type
boolean
Example
true

Loading...

enableDebitInterchangeBilling
Type
boolean
Example
true

Loading...

enableInterchangeTransactionPassthroughFee
Type
boolean
Example
true

Loading...

enableNetworkAccessBrandFees
Type
boolean
Example
true

Loading...

enablePassthroughAssessment
Type
boolean
Example
false

Loading...

equipmentCostToMerchant
Type
number
Default
0
Range
0 to 999999.99
Example
25

Loading...

hasRealTimeAccountUpdaterEnabled
Type
boolean
Example
false

Loading...

interchangeDuesAssessmentsBasisPoint
Type
number
Range
0 to 1000
Example
25

Loading...

interchangeTransactionPassthroughCheckcardFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

interchangeTransactionPassthroughCreditFee
Type
number
Range
0 to 999999.9999
Example
1.25

Loading...

midQualifiedBump
Type
number
Range
0 to 99
Example
0.25

Loading...

midQualifiedBasisPointBump
Type
number
Range
0 to 99
Example
0.25

Loading...

nonQualifiedBump
Type
number
Range
0 to 99
Example
0.25

Loading...

nonQualifiedBasisPointBump
Type
number
Range
0 to 99
Example
0.25

Loading...

nonQualifiedTransactionFeeBump
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

pciFeeBillingFrequency
Type
string
Default
ANNUAL
Enum
MONTHLYANNUALmonthlyannualMonthlyAnnual
Example
ANNUAL

Loading...

qualifiedAmexTransactionFee
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

qualifiedCheckCardRate
Type
number
Range
0 to 99
Example
0.25

Loading...

qualifiedCheckCardTransactionFee
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

qualifiedRate
Type
number
Range
0 to 99
Example
0.25

Loading...

qualifiedTransactionFee
Type
number
Range
0 to 999999.99
Example
1.25

Loading...

rewardRate
Type
string
Enum
MQQ203040506070809095
Example
Q

Loading...

waiveTerminationFee
Type
boolean
Example
false

Loading...

additionalFees
Type
object

Loading...

Example Request
{
  "enableInterchangeTransactionPassthroughFee": true,
  "enableNetworkAccessBrandFees": true,
  "enablePassthroughAssessment": true,
  "industryType": "retail",
  "interchangeDuesAssessmentsBasisPoint": null,
  "interchangeTransactionPassthroughCheckcardFee": 0.22,
  "interchangeTransactionPassthroughCreditFee": 0.1,
  "isEdgePricing": false,
  "isFlatRatePricing": false,
  "isPayAsYouGo": false,
  "midQualifiedBump": 1.49,
  "nonQualifiedBump": 2.14,
  "nonQualifiedTransactionFeeBump": 0.1,
  "pricingModel": "tiered",
  "qualifiedCheckCardRate": null,
  "qualifiedCheckCardTransactionFee": null,
  "qualifiedTransactionFee": 0,
  "rewardRate": "MQ",
  "surchargeTable": "N",
  "hasRealTimeAccountUpdaterEnabled": true,
  "additionalFees": {
    "achBatchHeaderFee": 0,
    "achDiscountFee": 0,
    "achMinimumPerItemFee": 0,
    "achMonthlyBasicServiceFee": 0,
    "achNotificationOfChangeFee": 0,
    "achPerItemFee": 0,
    "achRejectFee": 0,
    "achReturnFee": 0,
    "achTransactionFee": 0,
    "achUnauthorizedReturnFee": 0,
    "addressVerificationServiceFee": 0.05,
    "batchHeader": 0.35,
    "chargeBackFee": 25,
    "cybersourceAccountUpdateTransactionFee": 0.1,
    "cybersourceFraudManagementEssentialsFee": 0.1,
    "cybersourceGatewayTransactionFee": 0.1,
    "cybersourceInvoicingMonthlyFee": 0.1,
    "cybersourcePayerAuthenticationTransactionFee": 0.1,
    "cybersourceRecurringBillingTmsTransactionFee": 0.1,
    "cybersourceTmsTokenAggregateFee": 0.1,
    "debitGatewayFee": 7.95,
    "debitSettledTransactionFee": 0,
    "debitTransactionFee": 0.35,
    "ebtSettledTransactionFee": 0,
    "ebtTransactionFee": 0.2,
    "gatewayTransactionFee": 0,
    "internetGatewayMonthlyFee": 20,
    "internetTransactionFee": 0.1,
    "mcclaimsFee": 0,
    "merchantClubFee": 29.95,
    "monthlyBasicServiceFee": 10,
    "monthlyDiscountFee": 0,
    "monthlyHostingFee": 0,
    "monthlyMinimumDiscountFee": 25,
    "monthlyMinimumFee": 0,
    "monthlyRegulatoryFee": 0,
    "monthlySoftwareFeePerDevice": 0,
    "pciComplianceMonthlyFee": 19,
    "pciNonComplianceMonthlyFee": 59,
    "processorAuthorizationFee": 0,
    "retrievalFee": 15,
    "returnItemSupportFee": 30,
    "settledTransactionFee": 0,
    "statementMailingFee": 1,
    "technologyFee": 0,
    "touchToneTransactionFee": 0.5,
    "travelAndEntertainmentDraftCaptureTransactionFee": 0.25,
    "voiceAuthorizationFee": 1,
    "wirelessActivationFee": 35,
    "wirelessMonthlyFee": 29.95,
    "wirelessTransactionFee": 0.1,
    "visaRealTimeAccountUpdaterPassthruFee": 0.12
  }
}
Example Response
200 Return updated pricing details for enrollment application.
400 Bad request with validation errors response.
404 Application not found error response.
415 Unsupported media type response - Invalid content type.
422 Schema validation error within request body response.

Validate Application Ready for Underwriting

get /enroll/application/validate/{externalKey}

This endpoint is used to validate that the data entered in the application meets the parameter requirements before submitting the application to underwriting.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Successful validation
404 Unable to locate application by external key
422 Validation error within request body response

Submit Application to Underwriting

put /enroll/application/submit/{externalKey}

This endpoint is used to submit a completed application. When the user submits an application, its data is validated before the submission process completes. If any data is invalid, the application will not be submitted. The response data object will include a description of the parameter requirements where the error occurred. It is recommended that you use the Application Validation endpoint before submitting to ensure all data will be accepted.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Successful application submission.
404 Unable to locate application by external key.
422 Validation error within request body response.

Send Application to Merchant

put /enroll/application/merchant/send/key/{externalKey}

This endpoint is used to send an application to a merchant for completion. The application is sent by external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Application successfully sent to merchant for completion
400 Invalid request
404 Unable to locate application by external key
422 Invalid input

Validate Application Ready for Merchant

get /enroll/application/merchant/validate/key/{externalKey}

Validate that an application is ready to be sent to the merchant by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
123123123-123-123123-123123-123

Loading...

Example Response
200 Successful response showing application exists and is ready for merchant
404 Application not found response.
422 Error response.
500 Internal server error response

Get Underwriting Bank Details

get /enroll/application/underwriting/key/{externalKey}

Get information about the Underwriting bank related to an existing application.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Return underwriting related details for enrollment application.
403 Invalid agent client affiliation response.
404 Application not found error response.
500 Internal server error response.

Update Underwriting Bank

patch /enroll/application/underwriting/key/{externalKey}

Update Underwriting bank for an existing application. If an invalid bank is provided during the update operation, a default valid Underwriting bank is automatically assigned based on the eligibility criteria.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Request Schema
underwritingBank required
Type
string
Example
TBB

Loading...

Example Request
{
  "underwritingBank": "BMO"
}
Example Response
200 Return updated underwriting related details for enrollment application.
400 Bad request response.
403 Invalid agent client affiliation response.
404 Application not found error response.
415 Unsupported media type response - Invalid content type.
422 Schema validation error within request body response.

Get Additional Information by Application

get /enroll/application/additional-info/key/{externalKey}

Get additional information associated with an application by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Example Response
200 Return additional information for enrollment application.
403 Forbidden response.
404 Application not found error response.
500 Internal Server Error response.

Update Additional Information by Application

patch /enroll/application/additional-info/key/{externalKey}

Update additional information associated with an application by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Request Schema
agentData
Type
object

Loading...

acceptedPaymentTypes
Type
object

Loading...

highRiskBusinessData
Type
object

Loading...

achProcessing
Type
object

Loading...

isAchProcessingEnabled
Type
boolean
Example
false

Loading...

processor
Type
string
Example
EPX

Loading...

Example Request
{
  "agentData": {
    "agentGroupId": 1
  },
  "acceptedPaymentTypes": {
    "americanExpress": {
      "accountNumber": "123-test-2344",
      "amexAnnualVolumeThresholdExceeded": false,
      "amexMonthlyVolume": 11111
    }
  },
  "highRiskBusinessData": {
    "businessTypeFlags": {
      "isCbd": false,
      "isCannabis": true,
      "isKratom": true,
      "isSexuallyExplicitProducts": true
    },
    "highRiskPercentOfBusinessTransactions": {
      "cbd": 10
    }
  },
  "achProcessing": {
    "achCompanyName": "Business Corp.",
    "achEntryDescription": "Back Office Conversion Entry",
    "achPercentOfBusinessTransactions": {
      "retail": 100,
      "internet": 0,
      "moto": 0,
      "other": 0
    },
    "achPercentOfCustomerProfile": {
      "consumer": 100,
      "business": 0,
      "government": 0
    },
    "achProcessingVolumeBreakdown": {
      "credit": {
        "highAmount": 101,
        "averageAmount": 100,
        "averageBatchVolume": 1000,
        "averageMonthlyCount": 1
      },
      "debit": {
        "highAmount": 101,
        "averageAmount": 100,
        "averageBatchVolume": 100,
        "averageMonthlyCount": 10
      }
    },
    "achTransactionFrequency": {
      "oneTime": 100,
      "recurring": 0
    },
    "standardEntryCodes": [
      "BOC"
    ],
    "naicsCode": "311224"
  }
}
Example Response
200 Return updated additional information for enrollment application.
400 Bad request response.
403 Forbidden response.
404 Application not found error response.
415 Unsupported media type response - Invalid content type.
422 Unprocessable entity error response.
500 Internal Server Error response.

Update Agent Information by Application

patch /application/agent-assign/key/{externalKey}

Update agent related information by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
0aa000a-000a-00a0-00a0-00000aa00a0

Loading...

Request Schema
agent required
Type
integer
Example
11111

Loading...

Example Request
{
  "agent": 11111
}
Example Response
200 Return updated enrollment application.
403 Forbidden response.
404 Application not found error response.
415 Invalid content type.
422 Validation errors.
500 Internal Server Error response.

Get Equipment Details

get /application/equipment/key/{externalKey}

Retrieve application equipment details by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
00000000-00000000-0000000000-00000000-000000000000

Loading...

Example Response
200 Successfully retrieved application equipment details.
401 Unauthorized API Response.
404 Application not found.
500 Internal server error.

Update Equipment Details

put /application/equipment/key/{externalKey}

Update application equipment details by application external key.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
00000000-00000000-0000000000-00000000-000000000000

Loading...

Request Schema
equipmentGroup required
Type
array

Loading...

semiIntegratedSettingParameters required
Type
object

Loading...

Example Request
{
  "equipmentGroup": [
    {
      "equipmentGroupId": 1,
      "quantity": 1,
      "semiIntegrationEnabled": false,
      "terminal": {
        "equipmentId": 1296,
        "equipmentName": "DESK3500",
        "freePlacement": "merchant",
        "gatewayAccountId": null,
        "orderType": "deploy",
        "serialNumber": null,
        "terminalSettingParameters": {
          "autoCloseTime": "21:00",
          "batchCloseType": "auto",
          "customReceiptFooter": null,
          "downloadComments": null,
          "giftCardProvider": "Valutec",
          "includeServerId": false,
          "isDebitEnabled": true,
          "isEbtEnabled": false,
          "isEdgeProgramEnabled": false,
          "isTipLineOnReceiptEnabled": false,
          "isTipPromptOnTerminalEnabled": false,
          "otherSoftwareDetails": null,
          "reportOptions": "totals",
          "softwareType": "retail",
          "terminalAccessKey": null
        },
        "epxSettings": {
          "terminalId": "999123",
          "dbaId": "1234567829",
          "isAvsOnlyTerminal": true
        }
      },
      "pinpad": null,
      "printer": null,
      "checkReader": null,
      "other": []
    }
  ],
  "semiIntegratedSettingParameters": {
    "semiIntegratedSoftwareGatewayId": null,
    "semiIntegratedSoftwareId": null
  }
}
Example Response
200 Successfully updated application equipment details.
400 Validation error.
401 Unauthorized API Response.
404 Application not found.
500 Internal server error.

Get CNP Questionnaire

get /enroll/application/card-not-present-questionnaire/key/{externalKey}

Get the BIN routing card-not-present questionnaire for Merrick bank by an application's external key. For more usage information, see the CNP Questionnaire section of the Merchant Boarding API Integration Guide.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
2dc4436c-474d-46c3-83e8-50312fc27b01

Loading...

Example Response
200 Return card-not-present questionnaire for enrollment application.
401 Unauthorized response - Need authorized permission to access the resource.
403 Forbidden response.
404 Application not found error response.
500 Internal Server Error response.

Update CNP Questionnaire

patch /enroll/application/card-not-present-questionnaire/key/{externalKey}

Update the BIN routing card-not-present questionnaire for Merrick bank by an application's external key. For more usage information, see the CNP Questionnaire section of the Merchant Boarding API Integration Guide.

Parameters
externalKey required
Type
string
Pattern
^(?!.*/).*$
Range
1 to 50 characters
Example
2dc4436c-474d-46c3-83e8-50312fc27b01

Loading...

Request Schema
businessProfile
Type
object

Loading...

locationAndInventory
Type
object

Loading...

marketingAndSales
Type
object

Loading...

fulfillment
Type
object

Loading...

salesOperations
Type
object

Loading...

productRegulatoryAndClinicalInfo
Type
object

Loading...

customerService
Type
object

Loading...

Example Request
{
  "businessProfile": {
    "businessModelTypes": "product",
    "businessDescription": "Sample description of business.",
    "salesDistributionPercentage": {
      "business": 50,
      "public": 50
    }
  },
  "locationAndInventory": {
    "hasRetailLocation": true,
    "isInventoryStoredAtRetailLocation": true,
    "hasInventoryOwnership": true,
    "inventoryStorageLocations": [
      {
        "name": "Product Location - 1",
        "address": {
          "street": "250 Stephenson Hwy",
          "street2": "Suite 123",
          "city": "Troy",
          "state": "MI",
          "zipCode": "48083"
        }
      }
    ]
  },
  "marketingAndSales": {
    "marketingChannels": [
      "internet",
      "other"
    ],
    "salesChannels": {
      "isCallCenterSalesEnabled": true,
      "isTelephoneOrderSalesEnabled": true
    }
  },
  "fulfillment": {
    "fulfillmentTypes": [
      "in-house",
      "outsourced"
    ],
    "outsourcedProviders": [
      {
        "providerName": "Fulfillment outsourced company name 1.",
        "serviceRole": "Fulfillment outsourced company description 1."
      }
    ],
    "isDropshippingEnabled": true
  },
  "salesOperations": {
    "serviceAvailabilityRegions": [
      "local",
      "national",
      "international"
    ],
    "customerChargeTiming": "at the time of Order",
    "deliveryTimeframes": "1-7 days",
    "recurringBilling": {
      "isEnabled": true,
      "frequency": "daily"
    },
    "freeTrialEnabled": true,
    "refundPolicy": "30 day return policy"
  },
  "productRegulatoryAndClinicalInfo": {
    "sellsSupplements": true,
    "isFdaRegulated": true,
    "isGmpCertifiedManufacturer": true,
    "clinicalResearch": {
      "isClinicalEvidenceAvailable": true,
      "clinicalResearchSource": "this is the source of business clinical research"
    }
  },
  "customerService": {
    "sourcingType": [
      "in-house"
    ],
    "facilityVisited": true,
    "serviceProvider": {
      "name": "sample customer service",
      "phone": "1234567890",
      "address": {
        "street": "250 Stephenson Hwy",
        "street2": "Suite 100",
        "city": "Troy",
        "state": "MI",
        "zipCode": "48083"
      }
    }
  }
}
Example Response
200 Return updated card-not-present questionnaire for enrollment application.
400 Bad request response.
401 Unauthorized response - Need authorized permission to access the resource.
403 Forbidden response.
404 Application not found error response.
415 Unsupported media type response - Invalid content type.
422 Unprocessable entity error response.
500 Internal Server Error response.
©2026 North is a registered DBA of NorthAB, LLC. All rights reserved. North is a registered ISO of BMO Bank N.A., Chicago, IL, Citizens Bank N.A., Providence, RI, The Bancorp Bank, Philadelphia, PA, FFB Bank, Fresno, CA, and PNC Bank, N.A. Pittsburgh, PA. North is a registered ISO/MSP of Merrick Bank, South Jordan, UT.