Skip to main content
POST
Upload a payment document

Authorizations

Authorization
string
header
required

API token authentication using format <api token id>:<api client secret>

Body

multipart/form-data
file
file
required

The document file, from 1 to 8,000,000 bytes. Grid accepts PDF, JPEG, and PNG files and detects the format from the file contents, not the file name. An empty file, a larger file, and any other format return 400 INVALID_INPUT.

documentType
enum<string>
required

What the file is. To fill a requirement, use one of the types it accepts, as listed in Supporting Documents.

Available options:
PURCHASE_ORDER,
LOGISTICS_BILL,
CUSTOMS_DECLARATION,
INVOICE,
CONTRACT,
DELIVERY_SLIP,
BILL_OF_LADING,
FLIGHT_TICKET,
TRAVEL_DOCUMENT,
HOTEL_BOOKING_CONFIRMATION
Example:

"INVOICE"

customerId
string

ID of the sending customer whose payment this document supports. The document can only be used on this customer's quotes. Omit it when the platform itself is the sender, as on a quote with no customerId. The document can then only be used on the platform's own quotes.

Example:

"Customer:019542f5-b3e7-1d02-0000-000000000001"

Response

Payment document uploaded successfully

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

Example:

"PaymentDocument:019542f5-b3e7-1d02-0000-000000000001"

documentType
enum<string>
required

What a supporting document is. These are kinds of evidence, not file formats: INVOICE means the file is an invoice.

Supporting Documents lists the types each requirement accepts. When you upload a file with POST /payment-documents, documentType declares which type the file is.

Available options:
PURCHASE_ORDER,
LOGISTICS_BILL,
CUSTOMS_DECLARATION,
INVOICE,
CONTRACT,
DELIVERY_SLIP,
BILL_OF_LADING,
FLIGHT_TICKET,
TRAVEL_DOCUMENT,
HOTEL_BOOKING_CONFIRMATION
Example:

"INVOICE"

fileName
string
required

File name of the uploaded file

Example:

"invoice-2025-0142.pdf"

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.

Required range: x >= 1
Example:

482133

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.

Example:

"application/pdf"

status
enum<string>
required

Where the payment document is in its lifecycle.

Available options:
UPLOADED,
ATTACHED,
EXPIRED
Example:

"UPLOADED"

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.

Example:

"2025-10-04T12:00:00Z"

createdAt
string<date-time>
required

When this document was uploaded

Example:

"2025-10-03T12:00:00Z"

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.

Example:

"Customer:019542f5-b3e7-1d02-0000-000000000001"

quoteId
string

ID of the quote whose payment this document is attached to. Present only when status is ATTACHED.

Example:

"Quote:019542f5-b3e7-1d02-0000-000000000006"