{
  "title": "Legacy boarding to intelligent boarding field mapping",
  "source": "https://docs.payabli.com/guides/pay-ops-developer-boarding-legacy-migrate",
  "description": "Maps fields sent to the legacy POST /Boarding/app endpoint to intelligent boarding fields. Fields new in intelligent boarding aren't listed.",
  "records": {
    "businesses": {
      "instructions": "Send these fields to POST /v2/businesses, or in the business object when you create a paypoint.",
      "mappings": [
        {
          "legacyFields": [
            "legalname"
          ],
          "fields": [
            "legalName"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "btype"
          ],
          "fields": [
            "legalStructure"
          ],
          "notes": "The values differ. See Legal structure values."
        },
        {
          "legacyFields": [
            "bsummary"
          ],
          "fields": [
            "description"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ein"
          ],
          "fields": [
            "taxReference"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "startdate"
          ],
          "fields": [
            "establishedDate"
          ],
          "notes": "Use ISO 8601 format."
        },
        {
          "legacyFields": [
            "mcc"
          ],
          "fields": [
            "merchantCatCode"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "website"
          ],
          "fields": [
            "website"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "annualRevenue"
          ],
          "fields": [
            "annualRevenue"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "license"
          ],
          "fields": [
            "license"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "licstate"
          ],
          "fields": [
            "licenseState"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "phonenumber"
          ],
          "fields": [
            "phone"
          ],
          "notes": "Send it as an item in the array."
        },
        {
          "legacyFields": [
            "bEmail"
          ],
          "fields": [
            "emails"
          ],
          "notes": "Send it as an item in the array."
        },
        {
          "legacyFields": [
            "foreignOwned"
          ],
          "fields": [
            "isForeignOwned"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "seasonal"
          ],
          "fields": [
            "operatingSeasons"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "baddress",
            "baddress1",
            "bcity",
            "bstate",
            "bzip",
            "bcountry"
          ],
          "fields": [
            "addressDetails"
          ],
          "notes": "One address with type set to legal. The fields are addressLine1, addressLine2, cityLocality, stateProvince, postalCode, and country."
        },
        {
          "legacyFields": [
            "maddress",
            "maddress1",
            "mcity",
            "mstate",
            "mzip",
            "mcountry"
          ],
          "fields": [
            "addressDetails"
          ],
          "notes": "One address with type set to mailing, with the same fields."
        },
        {
          "legacyFields": [
            "binperson"
          ],
          "fields": [
            "processingMetrics.inboundPresentPercent"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "binweb"
          ],
          "fields": [
            "processingMetrics.inboundOnlinePercent"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "binphone"
          ],
          "fields": [
            "processingMetrics.inboundMotoPercent"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "avgmonthly"
          ],
          "fields": [
            "processingMetrics.monthlyReceivablesVolume"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ticketamt"
          ],
          "fields": [
            "processingMetrics.averageReceivableSize"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "highticketamt"
          ],
          "fields": [
            "processingMetrics.largestReceivableSize"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "payoutAverageMonthlyVolume"
          ],
          "fields": [
            "payoutMetrics.monthlyPayablesVolume"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "payoutAverageTicketAmount",
            "payoutAverageTicketLimit"
          ],
          "fields": [
            "payoutMetrics.averagePayablesSize"
          ],
          "notes": "Legacy boarding used either name, depending on the application type."
        },
        {
          "legacyFields": [
            "payoutHighTicketAmount"
          ],
          "fields": [
            "payoutMetrics.largestPayablesSize"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "whenRefunded"
          ],
          "fields": [
            "processingMetrics.refundPolicy"
          ],
          "notes": "refundPolicy takes free text."
        },
        {
          "legacyFields": [
            "whenDelivered",
            "whenProvided"
          ],
          "fields": [
            "processingMetrics.advancedDelivery",
            "processingMetrics.advancedDeliveryDays"
          ],
          "notes": "Read the two together. See Delivery days. If the result is more than 0 days, set advancedDelivery to true."
        },
        {
          "legacyFields": [
            "RepCode",
            "RepName",
            "RepOffice"
          ],
          "fields": [
            "customData"
          ],
          "notes": "Send each one as a key in the object."
        },
        {
          "legacyFields": [
            "additionalData"
          ],
          "fields": [
            "customData"
          ],
          "notes": "Legacy boarding accepted it on Pay In applications."
        }
      ]
    },
    "paypoints": {
      "instructions": "Send these fields to POST /v2/paypoints. Create one paypoint for each legacy paypoint you're migrating. When several paypoints belong to the same business, create the business once and send its businessReference with each paypoint.",
      "mappings": [
        {
          "legacyFields": [
            "dbaname"
          ],
          "fields": [
            "doingBusinessAs"
          ],
          "notes": "Required."
        },
        {
          "legacyFields": [
            "externalPaypointId"
          ],
          "fields": [
            "externalId"
          ],
          "notes": null
        }
      ]
    },
    "people.owners": {
      "instructions": "For each item in the legacy ownership array, create a person with businessRelationship.personType set to Owner:",
      "mappings": [
        {
          "legacyFields": [
            "ownername"
          ],
          "fields": [
            "firstName",
            "lastName"
          ],
          "notes": "Split the name. middleName is optional."
        },
        {
          "legacyFields": [
            "ownertitle"
          ],
          "fields": [
            "businessRelationship.title"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ownerpercent"
          ],
          "fields": [
            "businessRelationship.ownershipPercentage"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "owneremail"
          ],
          "fields": [
            "primaryEmail"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ownerphone1"
          ],
          "fields": [
            "primaryPhoneNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ownerphone2"
          ],
          "fields": [
            "secondaryPhoneNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ownerdob"
          ],
          "fields": [
            "dateOfBirth"
          ],
          "notes": "Use ISO 8601 format."
        },
        {
          "legacyFields": [
            "ownerssn"
          ],
          "fields": [
            "ssn"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "ownerdriver"
          ],
          "fields": [
            "driversLicenseNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "odriverstate"
          ],
          "fields": [
            "driversLicenseState"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "oaddress",
            "ocity",
            "ostate",
            "ozip",
            "ocountry"
          ],
          "fields": [
            "addresses"
          ],
          "notes": "One address with type set to residential."
        },
        {
          "legacyFields": [
            "additionalData"
          ],
          "fields": [
            "customData"
          ],
          "notes": null
        }
      ]
    },
    "people.contacts": {
      "instructions": "For each item in the legacy contacts array, create a person with businessRelationship.personType set to Employee:",
      "mappings": [
        {
          "legacyFields": [
            "contactName"
          ],
          "fields": [
            "firstName",
            "lastName"
          ],
          "notes": "Split the name."
        },
        {
          "legacyFields": [
            "contactTitle"
          ],
          "fields": [
            "businessRelationship.title"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "contactEmail"
          ],
          "fields": [
            "primaryEmail"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "contactPhone"
          ],
          "fields": [
            "primaryPhoneNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "additionalData"
          ],
          "fields": [
            "customData"
          ],
          "notes": null
        }
      ]
    },
    "people.signer": {
      "instructions": "The legacy signer object becomes an owner with businessRelationship.isSigner set to true. If the signer is already in ownership, set isSigner on that person instead of creating a new one. The signature details move to the signer object on submit, which also needs the signature and its signatureType:",
      "mappings": [
        {
          "legacyFields": [
            "signer.name"
          ],
          "fields": [
            "firstName",
            "lastName"
          ],
          "notes": "Split the name."
        },
        {
          "legacyFields": [
            "signer.dob"
          ],
          "fields": [
            "dateOfBirth"
          ],
          "notes": "Use ISO 8601 format."
        },
        {
          "legacyFields": [
            "signer.ssn"
          ],
          "fields": [
            "ssn"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "signer.email"
          ],
          "fields": [
            "primaryEmail"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "signer.phone"
          ],
          "fields": [
            "primaryPhoneNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "signer.address",
            "signer.address1",
            "signer.city",
            "signer.state",
            "signer.zip",
            "signer.country"
          ],
          "fields": [
            "addresses"
          ],
          "notes": "One address with type set to residential."
        },
        {
          "legacyFields": [
            "signer.acceptance"
          ],
          "fields": [
            "signer.acceptance"
          ],
          "fieldNote": "signer.acceptance on submit",
          "notes": null
        },
        {
          "legacyFields": [
            "signer.pciAttestation"
          ],
          "fields": [
            "signer.pciAttestation"
          ],
          "fieldNote": "signer.pciAttestation on submit",
          "notes": null
        },
        {
          "legacyFields": [
            "signer.signedDocumentReference"
          ],
          "fields": [
            "signer.signedDocumentReference"
          ],
          "fieldNote": "signer.signedDocumentReference on submit",
          "notes": null
        },
        {
          "legacyFields": [
            "signer.additionalData"
          ],
          "fields": [
            "signer.additionalData"
          ],
          "fieldNote": "signer.additionalData on submit",
          "notes": null
        }
      ]
    },
    "paymentMethods": {
      "instructions": "Send one item in the data array for each item in the legacy bankData array to POST /v2/payment-methods. Each item also needs type set to bank_account, plus ownerType set to business and accountOwner set to the businessReference. Set isDefault to true on the account that should be the default. If you later send another account with isDefault set to true, that account becomes the default instead.",
      "mappings": [
        {
          "legacyFields": [
            "routingAccount"
          ],
          "fields": [
            "routingNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "accountNumber"
          ],
          "fields": [
            "accountNumber"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "typeAccount"
          ],
          "fields": [
            "accountType"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "bankName"
          ],
          "fields": [
            "financialInstitution"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "nickname"
          ],
          "fields": [
            "nickname"
          ],
          "notes": null
        },
        {
          "legacyFields": [
            "bankAccountFunction"
          ],
          "fields": [
            "usage"
          ],
          "notes": "See the next table."
        },
        {
          "legacyFields": [
            "bankAccountHolderType"
          ],
          "fields": [
            "ownerType"
          ],
          "notes": "Set ownerType to business and accountOwner to the businessReference."
        },
        {
          "legacyFields": [
            "default"
          ],
          "fields": [
            "isDefault"
          ],
          "notes": null
        }
      ]
    },
    "applications": {
      "instructions": "Send these fields to POST /v2/requests.",
      "mappings": [
        {
          "legacyFields": [
            "templateId"
          ],
          "fields": [],
          "fieldNote": "None",
          "notes": "Legacy templates don't carry over. Still send a requestTemplate on every application, because Payabli assigns the underwriting policy from it. You choose the template for each merchant. See Manage boarding templates with the API."
        },
        {
          "legacyFields": [
            "services.card"
          ],
          "fields": [
            "services.moneyIn"
          ],
          "notes": "Include Card. The new application has no per-brand fields."
        },
        {
          "legacyFields": [
            "services.ach"
          ],
          "fields": [
            "services.moneyIn"
          ],
          "notes": "Include Ach. The new application has no SEC code fields."
        },
        {
          "legacyFields": [
            "services.odp.allowAch",
            "allowChecks",
            "allowVCard"
          ],
          "fields": [
            "services.moneyOut"
          ],
          "notes": "Include Ach, Check, or VCard for each payout type."
        },
        {
          "legacyFields": [
            "orgId"
          ],
          "fields": [],
          "fieldNote": "None",
          "notes": "Payabli takes the organization from your API token."
        },
        {
          "legacyFields": [
            "onCreate"
          ],
          "fields": [],
          "fieldNote": "None",
          "notes": "Submit with POST /v2/requests/{requestsReference}/submit."
        }
      ]
    }
  },
  "valueMaps": {
    "legalStructure": {
      "instructions": "Convert each legacy btype value to a legalStructure value:",
      "values": [
        {
          "legacy": "Sole Proprietorship, Sole Proprietor",
          "intelligentBoarding": "sole-proprietorship"
        },
        {
          "legacy": "Limited Liability Company",
          "intelligentBoarding": "llc"
        },
        {
          "legacy": "Corporation, Private Corp, Public Corporation, Public Corp",
          "intelligentBoarding": "corporation"
        },
        {
          "legacy": "S Corporation",
          "intelligentBoarding": "s-corp"
        },
        {
          "legacy": "Partnership",
          "intelligentBoarding": "partnership"
        },
        {
          "legacy": "Non-Profit Corporation, Non-Profit Association, Non-Profit Org",
          "intelligentBoarding": "non-profit"
        },
        {
          "legacy": "Government Entity, Government",
          "intelligentBoarding": "government"
        },
        {
          "legacy": "Tax Exempt",
          "intelligentBoarding": "non-profit or government, whichever describes the business"
        },
        {
          "legacy": "Trust, Unincorporated Association",
          "intelligentBoarding": "None"
        }
      ]
    },
    "deliveryDays": {
      "instructions": "Legacy boarding split delivery timing across two range fields, whenDelivered and whenProvided. Read them together, and set advancedDeliveryDays to a number of days in the matching range:",
      "values": [
        {
          "whenDelivered": "0-7 Days",
          "whenProvided": "30 Days or Less",
          "advancedDeliveryDays": "0 to 7"
        },
        {
          "whenDelivered": "8-14 Days",
          "whenProvided": "30 Days or Less",
          "advancedDeliveryDays": "8 to 14"
        },
        {
          "whenDelivered": "15-30 Days",
          "whenProvided": "30 Days or Less",
          "advancedDeliveryDays": "15 to 30"
        },
        {
          "whenDelivered": "Over 30 Days",
          "whenProvided": "31 to 60 Days",
          "advancedDeliveryDays": "31 to 60"
        },
        {
          "whenDelivered": "Over 30 Days",
          "whenProvided": "60+ Days",
          "advancedDeliveryDays": "More than 60"
        }
      ]
    },
    "bankAccountFunctionToUsage": {
      "instructions": "The legacy numeric bankAccountFunction becomes a list of usage values. A legacy withdrawal account, which Payabli debits for fees, becomes a billing account:",
      "values": [
        {
          "legacy": "0: Deposits",
          "intelligentBoarding": "deposits"
        },
        {
          "legacy": "1: Withdrawals",
          "intelligentBoarding": "billing"
        },
        {
          "legacy": "2: Deposits and withdrawals",
          "intelligentBoarding": "deposits, billing"
        },
        {
          "legacy": "3: Remittances",
          "intelligentBoarding": "payOutFunding"
        },
        {
          "legacy": "4: Remittances and deposits",
          "intelligentBoarding": "deposits, payOutFunding"
        },
        {
          "legacy": "5: Remittances and withdrawals",
          "intelligentBoarding": "billing, payOutFunding"
        },
        {
          "legacy": "6: Remittances, withdrawals, and deposits",
          "intelligentBoarding": "deposits, billing, payOutFunding"
        }
      ]
    }
  },
  "noMatch": [
    {
      "legacyFields": [
        "taxfillname",
        "faxnumber",
        "payoutCreditLimit",
        "processingRegion",
        "creditLimit"
      ],
      "notes": null
    },
    {
      "legacyFields": [
        "whenCharged"
      ],
      "notes": null
    },
    {
      "legacyFields": [
        "bankData.bankAccountHolderName",
        "bankData.country"
      ],
      "notes": null
    },
    {
      "legacyFields": [
        "signer.attestationDate",
        "signer.signDate"
      ],
      "notes": null
    },
    {
      "legacyFields": [
        "recipientEmail",
        "recipientEmailNotification",
        "resumable"
      ],
      "notes": "Intelligent boarding doesn't send boarding application emails."
    },
    {
      "legacyFields": [
        "services.odp.processor",
        "services.odp.processing_region",
        "services.odp.issuerNetworkSettingsId"
      ],
      "notes": "Payabli configures these in your organization's settings."
    },
    {
      "legacyFields": [
        "attachments"
      ],
      "notes": "Upload documents separately, after you create the application, with POST /v2/requests/{requestsReference}/documents. See https://docs.payabli.com/guides/pay-ops-developer-applications-manage#upload-documents."
    }
  ]
}
