Skip to main content

Complete onboarding steps

After you submit all the required documents, attestations, and answers, request the completion of the onboarding process.

To complete the onboarding process, send a POST request to /onboarding/v1/clients/{id}/verifications. This triggers J. P. Morgan to perform the required checks and due diligence processes. In many cases, your client is likely to be onboarded without further input after this point. In some cases, more information can be requested.

Sample request:

Curl
curl --request POST \
  --url https://base-url/onboarding/v1/clients/1000010400/verifications \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: ' \
  --header 'token: ' \
  --data '{}'

If successful, you receive a 202 Accepted response.

Understand client and party onboarding status

You can update outstanding information about a client by sending a PATCH request to /onboarding/v1/clients/{id}.

The status or profileStatus value in the response shows you how far your client or party has been onboarded:

Client status

status represents the progress of your client's onboarding journey. This cannot be complete - APPROVED - until all onboarding stages have been completed for both the client and associated parties.

Possible values:

  • NEW - Onboarding verifications haven't started yet since there isn't enough information available yet.
  • REVIEW_IN_PROGRESS - Onboarding verifications have started and are in progress. During review, you may need to collect additional documents or information - which is shown in the outstanding object in the response to a GET request to /onboarding/v1/clients/{id}.
  • INFORMATION_REQUESTED - Your client or it's related parties must provide additional information or documents to proceed with verification. Once requested information is provided, status becomes REVIEW_IN_PROGRESS.
  • APPROVED - Your client and all associated parties have been through due diligence and onboarding successfully and successfully onboarded.
  • DECLINED - Your client cannot be onboarded based on their response to our due diligence processes.
  • SUSPENDED - Either:
    • During onboarding, your client hasn't provided requested information or documents within the defined period.
    • After onboarding, you placed a request to temporarily make the Client's account inactive.
  • TERMINATED - You have placed a request to permanently terminate your client's Merchant Services accounts.

Profile status

profileStatus represents the status of a party's onboarding. The term profile refers to the party profile kept on each party associated with a client.

Possible values:

  • REVIEW_IN_PROGRESS - Either: Due diligence review is in progress During review, a request has been placed to collect additional documents or information.
  • INFORMATION_REQUESTED - Your client's Beneficial Owner or Controller is requested to provide additional information or documents to proceed with verification.
  • APPROVED - Your client’s related party, such as BENEFICIAL_OWNER or CONTROLLER, has completed onboarding. This does not mean your client has completed all onboarding stages – refer to client.status.

Keep your client up to date with onboarding using webhooks

Use the Webhook to remind your client if they need to complete additional onboarding steps.

To subscribe to client onboarding events, refer to the webhooks guide.

Sample webhook event payload to show that a client verification review completed and that information has been requested from the client:

Json
{
  "eventType": "CLIENT_ONBOARDING",
  "resourceType": "CLIENTS",
  "resourceId": "1000010400",
  "resource": {
    "clientId": "1000010400",
    "status": "INFORMATION_REQUESTED",
    "hasOutstandingInformation": true
  }
}

Manage additional documents requests

After submitting all client details for verification, your client may still be asked to upload documents to confirm the identity of the party being onboarded. For example, they may need to upload a copy of their Driver's License. They are contacted directly by J.P. Morgan to request these items, and are given a way to provide them. You can check which documents are required using the API, but you don't need to send any documents this way.

To see additional documentation required:

  1. Send a GET request to  /onboarding/v1/clients/{id} and check the outstanding object in the response. If an additional document is required, the documentRequestIds field is populated with an ID.
  2. Send a GET request to /onboarding/v1/document-requests/{id} using the documentRequestId provided. The response contains the required document type that must be uploaded.
  3. Your client must provide the additional document directly to J.P. Morgan. They are contacted by email to complete this step.

Check which additional documents are required

You can see the required documents in the response to a GET request to /onboarding/v1/clients or /onboarding/v1/clients/{id}. You do not need to send this document using the API, your client is contacted by J.P. Morgan to request this. However, you can reflect the requirement in your platform using this process, for example to show your client what is outstanding before their onboarding is complete.

Sample with outstanding documentRequestIds: 3000011675

Json
{
  "id": "1000010400",
  "parties": [],
  "partyId": "2000000111",
  "products": [
    "MERCHANT_SERVICES"
  ],
  "outstanding": {
    "attestationDocumentIds": [],
    "documentRequestIds": [
      "3000011675"
    ],
    "partyIds": [],
    "partyRoles": [],
    "questionIds": []
  },
  "questionResponses": [],
  "status": "NEW"
}

Sample GET request to /onboarding/v1/documents/{id} to retrieve document ID: 3000011675:

Curl
curl -X 'GET' \
'https://baseurl.com/onboarding/v1/document-requests/3000011675' \
-H 'accept: application/json'

Sample response to a GET request to /onboarding/v1/documents/{id} to retrieve document ID: 3000011675. This shows your client is being asked for a copy of their driver's license. You can tell your client to expect a request for this document directly from J.P. Morgan.

Json
{
  "id": "3000011675",
  "country": "US",
  "createdAt": "2025-11-18T12:28:11.232Z",
  "requirements": [
    {
      "documentTypes": [
        "DRIVERS_LICENSE"
      ],
      "level": "PRIMARY",
      "minRequired": 1
    }
  ],
  "partyId": "2000000111",
  "status": "ACTIVE",
  "updatedAt": "2025-11-18T12:28:11.232Z",
  "validForDays": 5
}

Show your client their details

To get all information in your client's Merchant Services profile, use a GET request to /onboarding/v1/clients/{id}, using the clientId in the path parameter.

Sample request:

Curl
curl -X 'GET' \
'https://base-url/onboarding/v1/clients/1000010400' \
-H 'accept: application/json'