---
title: "Get a payment document"
method: GET
path: "/payment-documents/{paymentDocumentId}"
tags: ["Cross-Currency Transfers"]
---

# Get a payment document

`GET /payment-documents/{paymentDocumentId}`

## Request

- Base URL: `https://api.lightspark.com/grid/2025-10-13`
- URL: `https://api.lightspark.com/grid/2025-10-13/payment-documents/{paymentDocumentId}`
- Auth: HTTP basic

Retrieve a payment document by ID. Use it to check whether the document can still be used on a quote, or which quote it is attached to.

## Path parameters

- `paymentDocumentId` string, required

## Response `200`

Successful operation

- PaymentDocument: A supporting document uploaded for a payout that requires one. Pass its `id` in `documentIds` on `POST /quotes`.
  - `id` string, required: Unique identifier for this payment document
  - `customerId` string: ID of the sending customer whose payment this document supports. The document can only be used on this customer's quotes. Absent when the platform itself is the sender.
  - `documentType` 'PURCHASE_ORDER' | 'LOGISTICS_BILL' | 'CUSTOMS_DECLARATION' | 'INVOICE' | 'CONTRACT' | 'DELIVERY_SLIP' | 'BILL_OF_LADING' | 'FLIGHT_TICKET' | 'TRAVEL_DOCUMENT' | 'HOTEL_BOOKING_CONFIRMATION', required: What a supporting document is. These are kinds of evidence, not file formats: `INVOICE` means the file is an invoice. [Supporting Documents](https://docs.lightspark.com/payouts-and-b2b/payment-flow/send-payment#supporting-documents) lists the types each requirement accepts. When you upload a file with `POST /payment-documents`, `documentType` declares which type the file is.
  - `fileName` string, required: File name of the uploaded file
  - `sizeBytes` integer, required: Size of the uploaded file in bytes. It never exceeds the largest file `POST /payment-documents` accepts, which is 8,000,000 bytes today.
  - `contentType` string, required: File format as a MIME type, as Grid detected it from the file contents. Today one of `application/pdf`, `image/jpeg`, or `image/png`. Treat it as an open value, because Grid may accept more formats later.
  - `status` 'UPLOADED' | 'ATTACHED' | 'EXPIRED', required: Where the payment document is in its lifecycle. | Status | Terminal | Meaning | |--------|----------|---------| | `UPLOADED` | No | Ready to use. Pass the `id` in `documentIds` on `POST /quotes` before `expiresAt`. | | `ATTACHED` | Yes | Attached to the payment behind the quote in `quoteId`. Grid has deleted the file. | | `EXPIRED` | Yes | Not attached to a quote before `expiresAt`. The document can no longer be used. |
  - `expiresAt` string, date-time, required: When the document stops being usable if it has not been attached to a quote. This is 24 hours after `createdAt`.
  - `quoteId` string: ID of the quote whose payment this document is attached to. Present only when `status` is `ATTACHED`.
  - `createdAt` string, date-time, required: When this document was uploaded

## Other responses

- `401`: Unauthorized
- `404`: Payment document not found. Returned with `PAYMENT_DOCUMENT_NOT_FOUND` when the ID does not match a payment document on your platform.
- `500`: Internal service error

## Changes

> 115 revisions in range; 2 not diffed.

- **2026-10-02** `dfe5a02f2fee`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/lightsparkdev/apis/grid-api/changes/payment-documents/:paymentDocumentId/get.md)

---

[API](https://skmtc.dev/lightsparkdev/apis/grid-api.md) - [All operations](https://skmtc.dev/lightsparkdev/apis/grid-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lightsparkdev/apis/grid-api/revisions/7a1db46ec552?raw)
