Documents API
Manage your documents programmatically. Generate new documents and retrieve documents relevant to your accounts. This allows you to obtain important documentation with ease.
Manage your documents programmatically. Generate new documents and retrieve documents relevant to your accounts. This allows you to obtain important documentation with ease.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/documents-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Digital Onboarding Documents API
version: 1.0.18
description: Streamline your client onboarding process to create, update, and manage clients, parties, documents, and due diligence requirements in a fully digital workflow so you can automate Know Your Customer (KYC), document collection, and compliance tasks directly from your own platform.
contact:
name: JPMC Technical Services Support
servers:
- url: https://api.payments.jpmorgan.com/onboarding/v1
description: PRODUCTION-MTLS
- url: https://api-sandbox.payments.jpmorgan.com/onboarding/v1
description: CLIENT TESTING-MTLS
- url: https://api-mock.payments.jpmorgan.com/onboarding/v1
description: MOCK
security:
- Certs: []
Token: []
- Certs: []
- BearerAuth: []
tags:
- name: Documents
description: Manage document upload and retrieval.
paths:
/documents:
post:
parameters:
- $ref: '#/components/parameters/TokenInHeader'
- $ref: '#/components/parameters/IdempotencyKey'
summary: Upload document
description: This section allows the user to attach the binary file upload and meta-data associated with the document.
operationId: smbdo-uploadDocument
tags:
- Documents
requestBody:
description: 'This section allows the user to attach the binary file upload and meta-data associated with the document.
'
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
documentData:
description: The document metadata.
type: string
example: '{"documentType":"DRIVERS_LICENSE","documentRequestId":"50002"}'
required:
- file
- documentData
responses:
'201':
description: Upload Successful.
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentResponse'
examples:
DocumentsRes:
$ref: '#/components/examples/DocumentsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'409':
$ref: '#/components/responses/409'
'422':
$ref: '#/components/responses/422'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
get:
parameters:
- $ref: '#/components/parameters/TokenInHeader'
- $ref: '#/components/parameters/ClientIdQuery'
- $ref: '#/components/parameters/PartyIdQuery'
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
tags:
- Documents
summary: List document details
description: Retrieves a list of document details.
operationId: smbdo-getAllDocumentDetails
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/ListDocumentsResponse'
examples:
ListDocumentsRes:
$ref: '#/components/examples/ListDocumentsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/documents/{id}:
get:
parameters:
- $ref: '#/components/parameters/TokenInHeader'
- in: path
name: id
description: Unique document identifier.
example: 62d29548-f55a-458e-b9bb-ed32a6a05a1b
schema:
type: string
required: true
tags:
- Documents
summary: Get document details
description: Retrieve details of a document.
operationId: smbdo-getDocumentDetail
responses:
'200':
description: Ok.
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentResponse'
examples:
DocumentsRes:
$ref: '#/components/examples/DocumentsResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
/documents/{id}/file:
get:
parameters:
- $ref: '#/components/parameters/TokenInHeader'
- in: path
name: id
description: Unique Document identifier.
example: 745ed6ce-c9e4-4d89-a1f9-74865e12cfc6
schema:
type: string
required: true
tags:
- Documents
summary: Download a document
description: Download a document using its unique identifier.
operationId: smbdo-downloadDocument
responses:
'200':
description: Ok.
content:
application/pdf:
schema:
type: string
format: byte
image/png:
schema:
type: string
format: byte
image/jpeg:
schema:
type: string
format: byte
image/heic:
schema:
type: string
format: byte
application/csv:
schema:
type: string
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'500':
$ref: '#/components/responses/500'
'503':
$ref: '#/components/responses/503'
components:
responses:
'409':
description: Conflict - Concurrent request detected
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Conflict
httpStatus: 409
context:
- message: Concurrent request detected for clientId [3000005555]. Please try again later.
'503':
description: Service Unavailable - API Processing Error
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Service Unavailable
httpStatus: 503
context:
- message: Service unavailable.
'422':
description: Request could not be processed due to semantic errors. Check error response.
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Unprocessable Entity
httpStatus: 422
context:
- message: Unable to perform Client Verification for clientId [3000005555] due to its Status.
'404':
description: No data found for the criteria specified
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Not Found
httpStatus: 404
context:
- message: Party with ID [2000000555] not found.
'500':
description: Internal Server Error - Generic Error
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Internal Server Error
httpStatus: 500
context:
- message: Something went wrong. Please try again later.
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Invalid Data
httpStatus: 400
context:
- code: '10104'
message: Client with ID [3000005555] does not exist.
location: BODY
field: clientId
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Unauthorized
httpStatus: 401
context:
- message: Provided token does not follow required JWT format. It may also be missing mandatory parts
'403':
description: Forbidden - Unauthorized Access
content:
application/json:
schema:
$ref: '#/components/schemas/schemas-ApiError'
example:
title: Forbidden
httpStatus: 403
context:
- message: Platform is not authorized to access client.
schemas:
ClientId:
description: A client's unique ID
example: '9000000333'
type: string
maxLength: 10
DocumentMetadataSmbdo:
type: object
properties:
key:
$ref: '#/components/schemas/DocumentMetadataKeyEnum'
value:
type: string
example: 73bd1c1d-6635-43ff-a8e5-b252926bdd9e
DocumentMetadataKeyEnum:
type: string
enum:
- DOCUMENT_REQUEST_ID
- PARTY_ID
- FILE_EXTENSION
- COUNTRY
- STATUS
- UPLOAD_TIME
- UPLOADED_FILE_NAME
example: DOCUMENT_REQUEST_ID
schemas-ApiError:
description: An API error.
type: object
required:
- title
- httpStatus
properties:
title:
type: string
description: Short humanly-readable title of the error
example: BAD_REQUEST
httpStatus:
type: integer
description: HTTP status code
example: 422
traceId:
type: string
description: Internal assigned traced identifier
requestId:
type: string
description: Client provided request identifier
context:
type: array
items:
$ref: '#/components/schemas/ApiErrorContext'
description: Provides additional context and detail on the errors
minItems: 0
maxItems: 100
DocumentTypeSmbdo:
type: string
description: Supported document types
enum:
- ANNUAL_FILINGS
- ARTICLES_OF_ASSOCIATION
- ARTICLES_OF_INCORPORATION
- BANK_STATEMENT
- BANKING_LICENSE
- BEARER_SHARES_ATTESTATION
- BENEFICIAL_OWNER_INFORMATION
- BRAND_LOGO
- BULK_MIGRATION
- BUSINESS_LICENSE
- BUSINESS_REGISTRATION_CERT
- CERTIFICATE_OF_GOOD_STANDING
- CERTIFICATE_OF_STATUS
- COMMERCIAL_REGISTRY
- CONSTITUTIONAL_DOCUMENT
- CREDIT_CARD_STATEMENT
- DETAILS_OF_DIRECTORS
- DISCLOSURE_AND_CONSENT
- DRIVERS_LICENSE
- EIN
- EVIDENCE
- FILING_RECEIPT
- GOV_ISSUED_ID_CARD
- GOVERNMENT_REGISTERED_DOCUMENT
- IDENTIFICATION_DOCUMENT
- INCUMBENCY_CERTIFICATE
- INSURANCE_DOCUMENT
- IRS_DOCUMENT_TIN
- JPMC_DISCLOSURE
- LEGAL_DOCUMENTS
- LLC_AGREEMENT
- LOAN_ACCOUNT_STATEMENT
- MAA
- MOA
- OFFERING_MEMO
- OPERATING_AGREEMENT
- OTHER_GOV_REGISTRATION_DOCS
- OWNERSHIP_ATTESTATION
- PARTNERSHIP_AGREEMENT
- PASSPORT
- SEC_FILINGS_10K
- SIGNATURE_CARD
- SSN_CARD
- STANDARD_OPERATING_PROCEDURE
- SUPPORT_CONTACT
- TAX_DOCUMENT
- TERMS_CONDITIONS
- TRUST_AGREEMENT
- TRUST_DEED
- UTILITY_BILL
ApiErrorContext:
description: Context of the API error.
type: object
required:
- message
properties:
code:
type: string
description: Short code that identifies the error - publicly cataloged and documented
example: '11000'
location:
type: string
enum:
- BODY
- QUERY
- PATH
- HEADER
example: BODY
description: Part of the request which is responsible for the reason
field:
type: string
description: The location of the property or parameter in error
message:
type: string
example: The server can not find the requested resource.
description: Message describing the reason.
PageMetaData:
description: Page metadata.
type: object
properties:
page:
type: integer
format: int32
example: 0
description: 'Page number.
'
minimum: 0
maximum: 2147483647
limit:
type: integer
format: int32
example: 25
description: 'Number of records per page.
'
minimum: 1
maximum: 25
total:
type: integer
format: int64
example: 340
description: 'Total number of items.
'
minimum: 0
maximum: 9999999999
ListDocumentsResponse:
type: object
properties:
metadata:
$ref: '#/components/schemas/PageMetaData'
documentDetails:
type: array
items:
$ref: '#/components/schemas/DocumentResponse'
minItems: 0
maxItems: 100
DocumentResponse:
type: object
properties:
id:
type: string
format: uuid
documentType:
$ref: '#/components/schemas/DocumentTypeSmbdo'
metadata:
type: array
items:
$ref: '#/components/schemas/DocumentMetadataSmbdo'
minItems: 0
maxItems: 50
required:
- id
- documentType
- metadata
parameters:
PartyIdQuery:
name: partyId
in: query
description: Unique Party identifier.
required: false
example: '2000000555'
schema:
type: string
maxLength: 10
ClientIdQuery:
name: clientId
in: query
description: Unique Client identifier.
required: false
example: '3000000001'
schema:
$ref: '#/components/schemas/ClientId'
PageNumber:
name: page
in: query
description: Page number.
required: false
schema:
type: integer
format: int32
default: 0
minimum: 0
maximum: 2147483647
IdempotencyKey:
name: Idempotency-Key
in: header
description: 'Client generated unique idempotency key used in recognizing consecutive retries of the same request
**Usage of V4 UUIDs is recommended.**'
required: false
schema:
title: Idempotency Key
description: 'A unique string that enables the API support idempotency by safely retrying requests without accidentally
performing the same operation twice.'
type: string
minLength: 1
maxLength: 36
example: 1b036f9c-8c84-4ce6-b1dd-5979472945a1
TokenInHeader:
name: token
in: header
description: JWT Client token
required: false
schema:
type: string
minLength: 1
maxLength: 8192
PageSize:
name: limit
in: query
description: Number of records per page.
required: false
schema:
type: integer
format: int32
minimum: 1
maximum: 25
default: 25
examples:
ListDocumentsResponse:
summary: List of document details
description: A list of document details
value:
metadata:
page: 0
limit: 25
total: 1
documentDetails:
- id: 62d29548-f55a-458e-b9bb-ed32a6a05a1b
documentType: TERMS_CONDITIONS
metadata:
- key: DOCUMENT_REQUEST_ID
value: '3000001'
DocumentsResponse:
summary: Document details for given document upload
description: Document details for document that was uploaded
value:
id: cd03133b-21e6-4d60-85aa-3eee61939b2e
documentType: PASSPORT
metadata:
- key: STATUS
value: ACTIVE
- key: UPLOADED_FILE_NAME
value: passport.png
- key: FILE_EXTENSION
value: png
- key: DOCUMENT_REQUEST_ID
value: '50000'
- key: UPLOAD_TIME
value: '2024-04-01T21:14:38.474Z'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
x-jpmc-securityDefinitions:
JPMC-OAuth2:
jpmc-claims:
jpmc-roles:
- 111789_SMBDO_PAYFAC_ACCESS: API access role claim
x-jpmc-security:
- JPMC-OAuth2:
jpmc-claims:
jpmc-roles:
- 111789_SMBDO_CLIENT_ACCESS: API access role claim