> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# Send prefilled boarding applications

> Learn how to send prefilled boarding applications to prospective merchants

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](/developers/api-reference/templates/get-list-of-boarding-templates-for-organization) endpoint to get a list of templates.

## Create the application

Use the [Create boarding application](/developers/api-reference/boarding/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.

```curl Example application maxLines=15
curl -X POST https://api-sandbox.payabli.com/api/Boarding/app \
     -H "accept: application/json" \
     -H "content-type: application/*+json" \
     -H "requestToken: <API TOKEN>" \
     -d @- <<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": ""
    }
  ],
  "bankData": [
      {
        "nickname": " ",
        "bankName": " ",
        "routingAccount": " ",
        "accountNumber": " ",
        "typeAccount": "Checking",
        "bankAccountHolderName": " ",
        "bankAccountHolderType": " ",
        "bankAccountFunction": 1
      },
      {
        "nickname": " ",
        "bankName": " ",
        "routingAccount": " ",
        "accountNumber": " ",
        "typeAccount": "Checking",
        "bankAccountHolderName": " ",
        "bankAccountHolderType": " ",
        "bankAccountFunction": 0
      }
    ],
  "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.

```json
{
  "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](/developers/api-reference/boarding/get-link-or-email-a-link-for-a-boarding-application) 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](mailto:merchant+company@example.com)" becomes `merchant%2Bcompany%40example.com`.

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

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

```json
{
  "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](/guides/pay-ops-boarding-overview#boarding-process-overview-for-partners).

### 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](/developers/api-reference/boarding/get-link-or-email-a-link-for-a-boarding-application) 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`

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

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

```json
{
  "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.

## Related resources

See these related resources to help you get the most out of Payabli.

* **[Boarding statuses reference](/guides/pay-ops-boarding-status-reference)** - Learn about statuses and substatuses during the merchant boarding process
* **[Paypoint statuses](/guides/pay-ops-paypoint-status-reference)** - Learn about the different statuses of paypoints

- **[API-driven boarding quickstart](/guides/pay-ops-developer-boarding-quickstart)** - Learn to use example code to set up a custom app for boarding using the Payabli API
- **[Boarding overview](/guides/pay-ops-boarding-overview)** - Learn how merchant boarding works in Payabli