DEVELOPER

Merchant Boarding API Specification

Version 1.42

production
sandbox

Application

Merchant Enrollment Application section.

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.

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.
©2026 North is a registered DBA of NorthAB, LLC. All rights reserved. North is a registered ISO of BMO Harris Bank N.A., Chicago, IL, Citizens Bank N.A., Providence, RI, The Bancorp Bank, Philadelphia, PA, FFB Bank, Fresno, CA, Wells Fargo Bank, N.A., Concord, CA, and PNC Bank, N.A.