ProductsMerchant Boarding API Integration Guide
Environment | Base URL |
---|---|
Sandbox | https://enrollment-api-sandbox.paymentshub.com |
Production | https://enrollment-api.paymentshub.com |
Authentication | https://enrollment-api-auth.paymentshub.com |
API Flow
- An ISO or ISV presents their own merchant application in their web portal to collect some or all merchant information.
- A new application is created and the ISO or ISV relays that to our systems via the Merchant Boarding API.
- The ISO or ISV then triggers the application to be completed and signed by the merchant. This will send an email link to the merchant.
- Once the application is completed and validated, the ISO or ISV triggers the application to be submitted to our Underwriting systems. After an application has been submitted to Underwriting, it cannot be modified.
- The ISO or ISV can poll to check Underwriting status. Once approved, a Merchant ID (MID) will be provisioned which can be used for payment processing.
How To Start
- Sign up for a free North Developer account.
- Contact us to set up an Agent ID and get test credentials. Once test credentials are provisioned, they can be referenced when logged in by selecting the User profile icon in the top right corner of the screen and selecting Credentials. The test credentials consist of a Client ID and Client Secret. The Client ID will be associated with your Agent ID, and using it will provide access to all merchant applications associated with your ID.
- Use the API specification or the Postman Collection to build your app against the test environment. When logged in, you can use the Integration Tracker to view the status of your integration, notes from meetings with Integration Engineers, resources related to your solution, and more by clicking the User profile icon in the top right corner of the screen and selecting Integrations.
- When development is complete, contact us and once we ensure things are working properly, you will receive Production credentials that will be associated with your Agent ID. Your Production credentials will provide access to all merchant applications associated with your Agent ID.
How to Create and Use a Plan ID
Before starting a new application, an application template must be created or the Plan ID of an existing template must be noted. The template defines the Equipment and Pricing options that will be applied to the application. Each template has a unique Template ID, referred to as planId in the API, which the user submits when using the API. Partner Portal’s Enrollment tool may be used to create a new template or to view an existing system template, as described in the following steps.
- During development, login to the Sandbox Partner Portal using the same credentials you use for your Production Partner Portal account. Continue to the next step to create test templates in the Sandbox environment. Please note that after development, once your integration has been certified and you are ready to go live, you will login to your Production Partner Portal account and create templates to be used in Production.
- Click Enrollment > Templates.
- Either browse for an existing template and note the Template ID or select Start New Template.
- Create a name for the template.
- Set all necessary Equipment and Pricing fields. These must be finalized on the template, as Equipment and Pricing information will not be editable from the Merchant Boarding API.
- On the template’s Validation page, navigate to any pages listed as “Not ready for use” and add the required content specified at the top of those pages.
- At the bottom right corner of the Validation page, select Close to save the template.
- When using the API to create a new merchant boarding application, the Template ID will be passed to the API in the the planId field to reference a template. A unique alphanumeric value must also be created each time a new application is started and passed in the API's externalKey field. The key refers to that particular application and allows the user to access it later. For example, when updating or submitting an application, a reference to an existing application should be made based on the external key.
How To Test
Contact us for test credentials that can be used to try out the payment API in a test environment. Once test credentials are provisioned, they can be referenced when logged in by selecting the User profile icon in the top right corner of the screen and selecting Credentials. The test credentials consist of a Client ID and Client Secret. The Client ID is associated with an Agent ID, and using it will provide access to all merchant applications under the associated agent.
How To Authenticate
Authentication is required every time an API request is made. Authentication is granted through the use of a token. A token is granted when a user calls the Authentication endpoint and submits a matching Client ID and Client Secret pair. A Client ID and Client Secret are provided when a user initially requests access to the API.
When calling any endpoint, first call the auth endpoint to obtain a bearer token which is valid for 5 minutes, and use that token in subsequent API calls within the timeframe. The header content should look like the following:
Authorization: Bearer Token
Each token is a signed JWT that expires 5 minutes after its creation. Each time a token is submitted with a call, it is verified to be valid and not expired. If the token expires, the user must retrieve a new token by calling the authentication endpoint and submitting a matching Client ID and Client Secret again. The same token can be used for all endpoints, until it expires. The Client ID is associated with an Agent ID and that API key will be able to access all merchant applications under that agent.
Pricing Field Conditions
This section includes the mapping conditions required to update specific pricing field values. Before updating one of the pricing field values below, please verify that the conditions are met for the update to be successful. If you attempt to update a value but the pricing field conditions are not met, that value will be ignored and the value specified in the application template will be used instead. This will not throw an error. Therefore, when updating pricing using the Update Application Pricing endpoint, interrogate the response object to ensure that your request was valid and applied as expected. This response should be used as the source of truth to confirm that the requested changes were made successfully.There are two ways to change pricing values:
- By updating the values within a template (in the Agent Portal)
- By submitting updated values via the Update Application Pricing endpoint
Field | Condition |
---|---|
Cash Discount Amount edgeFlatFee | Able to update when the Cash Discount program is enabled. The Cash Discount program is enabled when at least one equipment item with type "terminal" has the "isCashDiscountProgramEnabled" flag set to true (in the given template) |
Cash Discount Rate edgePercentFee | Able to update when the Cash Discount program is enabled. The Cash Discount program is enabled when at least one equipment item with type "terminal" has the "isCashDiscountProgramEnabled" flag set to true (in the given template) |
Interchange Transaction Passthrough Checkcard Fee interchangeTransactionPassthroughCheckcardFee | Able to update when: - Flat Rate pricing model is NOT used AND - "enableInterchangeTransactionPassthroughFee" flag is set to true (in the Update Application Pricing request) |
Interchange Transaction Passthrough Credit Fee interchangeTransactionPassthroughCreditFee | Able to update when: - Flat Rate pricing model is NOT used AND - "enableInterchangeTransactionPassthroughFee" flag is set to true (in the Update Application Pricing request) |
Qualified Discount Rate qualifiedRate | Able to update when Tiered and Flat Rate pricing model is used |
AmEx Qualified Discount Rate amexQualifiedRate | Able to update when Tiered and Flat Rate pricing model is used |
Mid Qualified Discount Rate midQualifiedBump | Able to update when: - Tiered and Flat Rate pricing model is used AND - Surcharge table is either N or null |
Non Qualified Discount Rate nonQualifiedBump | Able to update when: - Tiered and Flat Rate pricing model is used AND - Surcharge table is either N or null |
Non Qualified Transaction Fee nonQualifiedTransactionFeeBump | Able to update when: - Tiered and Flat Rate pricing model is used AND - Surcharge table is either N or null |
Interchange Dues Assessments Basis Points interchangeDuesAssessmentsBasisPoint | Able to update when Interchange Plus pricing model is used |
AmEx Interchange Dues Assessments Basis Points amexInterchangeDuesAssessmentsBasisPoint | Able to update when Interchange Plus pricing model is used |
Reward Rate rewardRate | Able to update when Tiered and Flat Rate pricing model is used |
Qualified Checkcard Rate qualifiedCheckCardRate | Able to update when Tiered and Flat Rate pricing model is used |
EBT Qualified Discount Rate ebtQualifiedRate | Able to update when Flat Rate pricing model is used |
EBT Interchange Assessments Dues Basis Points ebtInterchangeDuesAssessmentsBasisPoint | Able to update when Interchange Plus pricing model is used |
Debit Qualified Discount Rate debitQualifiedRate | Able to update when Flat Rate pricing model is used |
Debit Interchange Dues Assessments Basis Points debitInterchangeDuesAssessmentsBasisPoint | Able to update when Interchange Plus pricing model is used |
Requirements for Custom Enrollment Integrations
Partners using a Custom Enrollment integration are required to use our Two-Factor Authentication (2FA) endpoints and provide a digital merchant e-signature certification sheet with every submission that includes:- How the documents were sent to the signer
- The name of the person who sent the documents to the signer
- The IP address of the device where the application is being e-signed
- The device ID being used during the e-signing process
- The date and time of signature
- Verification of completion