If you’ve already collected data from your prospective merchants, you can save them time on their boarding application by sending them a prefilled application to finish.

Before you begin, you need the ID for the boarding template you want to use. If you are testing in the sandbox, or only have one template, the ID 0 targets the root template. If your organization uses more than one templates, and you don’t know the templateId, use the /Query/templates endpoint to get a list of templates.

Create the application

Use the Create boarding application endpoint to create and prefill the application.

In the example, the request creates a boarding application prefilled with the merchant data that you already have. The example also includes some application settings to note:

  • The resumable field is false, which means the applicant can’t save the application and return to it. They must finish and submit in one session. If you want the applicant to be able to save and return to the application, set this field to true.
  • The recipientEmailNotification field is false, which means that Payabli won’t automatically email the applicant a boarding link. Setting this field to true automatically sends a boarding link to the applicant.
All fields must include a value, or the application will error. Use empty strings for fields you want to leave blank. See ApplicationData Object Model for a complete field reference.
Example application
curl --request POST \
     --url https://api-sandbox.payabli.com/api/Boarding/app \
     --header "accept: application/json" \
     --header "content-type: application/*+json" \
     --header "requestToken: <API TOKEN>" \
     --data @- <<EOF
{
  "orgId": 126,
  "dbaname": "Moonbeam, Inc.",
  "legalname": "Moonbeam, Inc.",
  "website": "",
  "ein": "",
  "taxfillname": "",
  "license": "",
  "licstate": "",
  "startdate": "",
  "phonenumber": "",
  "faxnumber": "",
  "baddress": "",
  "baddress1": "",
  "bcity": "",
  "btype": "",
  "bstate": "",
  "bzip": "",
  "bcountry": "",
  "maddress": "",
  "maddress1": "",
  "mcity": "",
  "mstate": "",
  "mzip": "",
  "mcountry": "",
  "mcc": "",
  "bsummary": "",
  "whenCharged": "",
  "whenProvided": "",
  "whenDelivered": "",
  "whenRefunded": "",
  "binperson": 0,
  "binphone": 0,
  "binweb": 0,
  "templateId": 0,
  "avgmonthly": 0,
  "ticketamt": 0,
  "highticketamt": 0,
  "recipientEmail": "applicant@example.com",
  "recipientEmailNotification": false,
  "resumable": false,
  "contacts": [
    {
      "contactName": "",
      "contactEmail": "",
      "contactTitle": "",
      "contactPhone": ""
    }
  ],
  "ownership": [
    {
      "ownername": "",
      "ownertitle": "",
      "ownerpercent": 100,
      "ownerssn": "",
      "ownerdob": "",
      "ownerphone1": "",
      "ownerphone2": "",
      "owneremail": "",
      "ownerdriver": "",
      "odriverstate": "",
      "oaddress": "",
      "ostate": "",
      "ocountry": "US",
      "ocity": "",
      "ozip": ""
    }
  ],
  "depositAccount": {
    "bankName": "",
    "routingAccount": "",
    "accountNumber": "",
    "typeAccount": ""
  },
  "withdrawalAccount": {
    "bankName": "",
    "routingAccount": "",
    "accountNumber": "",
    "typeAccount": ""
  },
  "services": {
    "card": {
      "acceptVisa": true,
      "acceptMastercard": true,
      "acceptDiscover": true,
      "acceptAmex": true
    },
    "ach": {
      "acceptWeb": true,
      "acceptPPD": true,
      "acceptCCD": true
    }
  },
  "signer": {
    "name": "",
    "ssn": "",
    "dob": "",
    "phone": "",
    "email": "",
    "address": "",
    "state": "",
    "country": "US",
    "city": "",
    "zip": ""
  }
}

The appId is returned in the response as responseData. In this example, the application ID is 796. You need this value before you can send the prefilled application to the prospective merchant.

{
  "isSuccess": true,
  "responseText": "Success",
  "responseCode": 1,
  "responseData": 796,
  "pageidentifier": null
}

Send the prefilled application

You have two options for giving the prospective merchant access to the application: you can create and email a boarding link to them, or you can create a boarding link that bypasses login and give it directly to the merchant.

Option 1: Email the application

After you’ve created an application that includes whatever data you already have for the prospective merchant, you can email it to them for completion. Use the /Boarding/applink endpoint. You need the appId and the merchant contact’s email address. Make sure to append sendEmail=true to the endpoint URL.

This example sends the application with appId 796 to merchantemailaddress@example.com

Special characters in the email address must be URL-encoded. For example, “merchant+company@example.com” becomes merchant%2Bcompany%40example.com.

Send application
curl --request PUT \
     --url https://api-sandbox.payabli.com/api/Boarding/applink/796/merchantemailaddress%40example.com?sendEmail=true \
     --header "accept: application/json" \
     --header "requestToken: <API TOKEN>"

If the request was successful, the API response includes a link to the boarding application.

{
  "isSuccess": true,
  "responseText": "Success",
  "responseCode": 1,
  "responseData": {
    "appLink": "https://boarding-sandbox.payabli.com/boarding/externalapp/load/31C",
    "referenceId": "V2AdAMS3GQnU"
  },
  "pageidentifier": null
}

Your prospective merchant receives an email with a link to the boarding application. From there, they can complete and submit it, and the process follows the normal boarding process.

Option 2: Create a URL

Alternatively, you can give your prospective merchants a URL that launches the prefilled application without the merchant having to log in.

First, create the boarding link. Use the /Boarding/applink endpoint. You need the appId and the merchant contact’s email address.

This example creates a boarding link with appId 796 for merchantemailaddress@example.com

Send application
curl --request PUT \
     --url https://api-sandbox.payabli.com/api/Boarding/applink/796/merchantemailaddress%40example.com\
     --header "accept: application/json" \
     --header "requestToken: <API TOKEN>"

If the request was successful, the API response includes a link to the boarding application.

{
  "isSuccess": true,
  "responseText": "Success",
  "responseCode": 1,
  "responseData": {
    "appLink": "https://boarding-sandbox.payabli.com/boarding/externalapp/load/31C",
    "referenceId": "V2AdAMS3GQnU"
  },
  "pageidentifier": null
}

Finally, using the values in the response, add the application’s referenceId and the prospective merchant’s email as parameters to the end of the boarding link. Here’s the same example as the previous section, in the URL format:

https://boarding-sandbox.payabli.com/boarding/externalapp/load/31C?email=merchantemailaddress%40example.com&referenceId=V2AdAMS3GQnU

You can pass this URL to the merchant however you wish.