# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Documents API ```yaml openapi: 3.0.1 info: title: Documents API version: 1.0.58 description: Generate and download account related documents such as account confirmation letters programmatically using your account identifiers. contact: name: JPMC Technical Services Support servers: - url: https://api.payments.jpmorgan.com/embedded/v1 description: PRODUCTION - MTLS - url: https://api-sandbox.payments.jpmorgan.com/embedded/v1 description: CLIENT TESTING - MTLS - url: https://api-mock.payments.jpmorgan.com/embedded/v1 description: MOCK tags: - name: Documents description: Generate and download documents. paths: /documents: post: summary: Generate a document description: Generate a document for the specified document type and parameters operationId: postDocuments parameters: - $ref: '#/components/parameters/requestIdInHeader' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDocumentRequest' examples: Generate an account confirmation letter (LIMITED_DDA): $ref: '#/components/examples/CreateAccountConfirmationLetterRequest' Generate an account confirmation letter (LIMITED_DDA_PAYMENTS): $ref: '#/components/examples/CreateAccountConfirmationLetterForLimitedDdaPaymentsRequest' tags: - Documents responses: '202': description: Document generation request accepted headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/CreateDocumentResponse' examples: Account confirmation letter request accepted (LIMITED_DDA): $ref: '#/components/examples/CreateAccountConfirmationLetterResponse' Account confirmation letter request accepted (LIMITED_DDA_PAYMENTS): $ref: '#/components/examples/CreateAccountConfirmationLetterForLimitedDdaPaymentsResponse' '400': $ref: '#/components/responses/400V2' '401': $ref: '#/components/responses/401V2' '403': $ref: '#/components/responses/403V2' '404': $ref: '#/components/responses/404V2' '500': $ref: '#/components/responses/500V2' '503': $ref: '#/components/responses/503V2' /documents/{id}: get: summary: Download a document description: Download a document with the specified document ID operationId: getDocumentById parameters: - $ref: '#/components/parameters/requestIdInHeader' - $ref: '#/components/parameters/documentIdInPath' tags: - Documents responses: '200': description: PDF document for the specified document ID headers: request-id: $ref: '#/components/headers/requestId' content: application/pdf: schema: $ref: '#/components/schemas/FileDownloadData' '400': $ref: '#/components/responses/400V2' '401': $ref: '#/components/responses/401V2' '403': $ref: '#/components/responses/403V2' '404': $ref: '#/components/responses/404V2' '500': $ref: '#/components/responses/500V2' '503': $ref: '#/components/responses/503V2' components: parameters: requestIdInHeader: name: request-id in: header description: Unique identifier for the request. This identifier is specific to this particular request. If the same payload is sent in a new request, a new identifier needs to be provided required: false example: efeacff8-fd2c-4f54-a12e-2a8f90d4d325 schema: type: string maxLength: 36 minLength: 1 documentIdInPath: name: id in: path description: Unique document identifier schema: type: string required: true example: 89eb5ab2-d688-43be-9b6d-a21dc87750b1 schemas: DocumentParameters: type: object properties: accountId: type: string description: Unique account identifier example: f5246c6eb2c742a19c9c79327a769708 CreateDocumentRequest: type: object required: - type properties: type: type: string nullable: false description: Document type (only ACCOUNT_CONFIRMATION_LETTER is currently supported) example: ACCOUNT_CONFIRMATION_LETTER parameters: $ref: '#/components/schemas/DocumentParameters' CreateDocumentResponse: type: object required: - id - type properties: id: type: string nullable: false description: Unique document identifier example: 89eb5ab2-d688-43be-9b6d-a21dc87750b1 type: type: string nullable: false description: Document type (only ACCOUNT_CONFIRMATION_LETTER is currently supported) example: ACCOUNT_CONFIRMATION_LETTER parameters: $ref: '#/components/schemas/DocumentParameters' ApiErrorReasonV2: type: object description: Schema representing detailed reasons for an API error, including code, location, and message. required: - message properties: code: type: string example: '11000' description: Short code that identifies the error - publicly cataloged and documented minLength: 0 maxLength: 5 nullable: true location: type: string enum: - BODY - QUERY - PATH - HEADER example: BODY description: Part of the request which is responsible for the reason nullable: true field: type: string description: The location of the property or parameter in error minLength: 0 maxLength: 512 nullable: true message: type: string example: Client with ID 0031234567 does not exist. description: Message describing the reason. This message can typically be displayed to your platform's users, except in cases specified otherwise minLength: 0 maxLength: 2048 ApiErrorV2: type: object description: Schema representing a version 2 API error, including title, HTTP status, and additional context. required: - title properties: title: type: string description: Short humanly-readable title of the error example: BAD_REQUEST minLength: 1 maxLength: 512 httpStatus: type: integer description: HTTP status code minimum: 100 maximum: 599 format: int32 example: 400 traceId: type: string description: Internal assigned traced identifier minLength: 0 maxLength: 512 requestId: type: string description: Client provided request identifier minLength: 0 maxLength: 512 context: type: array items: $ref: '#/components/schemas/ApiErrorReasonV2' description: Provides additional context and detail on the validation errors minItems: 0 maxItems: 100 FileDownloadData: type: string format: byte description: Document binary data examples: CreateAccountConfirmationLetterRequest: summary: Request an account confirmation letter description: Generate an account confirmation letter for a LIMITED_DDA account value: type: ACCOUNT_CONFIRMATION_LETTER parameters: accountId: f5246c6eb2c742a19c9c79327a769708 CreateAccountConfirmationLetterForLimitedDdaPaymentsRequest: summary: Request an account confirmation letter for a LIMITED_DDA_PAYMENTS account description: Generate an account confirmation letter for a LIMITED_DDA_PAYMENTS account value: type: ACCOUNT_CONFIRMATION_LETTER parameters: accountId: a12345b6c7d8e9f0a1b2c3d4e5f67890 CreateAccountConfirmationLetterResponse: summary: Account confirmation letter request accepted description: The document generation request has been accepted. Use the returned document ID to download the document once generation is complete. value: id: ebeebce5-765d-4d9e-a89f-a7f923bbfa3b type: ACCOUNT_CONFIRMATION_LETTER parameters: accountId: f5246c6eb2c742a19c9c79327a769708 CreateAccountConfirmationLetterForLimitedDdaPaymentsResponse: summary: Account confirmation letter request accepted (LIMITED_DDA_PAYMENTS) description: The document generation request has been accepted for a LIMITED_DDA_PAYMENTS account. value: id: b9876543-d3e2-f1a0-b9c8-d7e6f5a43210 type: ACCOUNT_CONFIRMATION_LETTER parameters: accountId: a12345b6c7d8e9f0a1b2c3d4e5f67890 headers: requestId: description: Unique identifier for the request. This identifier is specific to this particular request. If the same payload is sent in a new request, a new identifier needs to be provided schema: type: string example: efeacff8-fd2c-4f54-a12e-2a8f90d4d325 responses: 400V2: description: Bad Request headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/ApiErrorV2' example: title: Bad Request httpStatus: 400 401V2: description: Unauthorized headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/ApiErrorV2' example: title: Unauthorized Request httpStatus: 401 403V2: description: Forbidden headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/ApiErrorV2' example: title: Forbidden httpStatus: 403 404V2: description: Not Found headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/ApiErrorV2' example: title: Not Found httpStatus: 404 500V2: description: Internal Server Error headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/ApiErrorV2' example: title: Internal Server Error httpStatus: 500 503V2: description: Service Unavailable headers: request-id: $ref: '#/components/headers/requestId' content: application/json: schema: $ref: '#/components/schemas/ApiErrorV2' example: title: Service Unavailable httpStatus: 503 x-jpmc-securityDefinitions: MutualTLS: type: x509 description: Mutual TLS authentication using client and server certificates. x-jpmc-security: - MutualTLS ```