Upload Invoice File

PUT/api/pay/v1/orders/{orderId}/invoice/{invoiceId}/upload

Uploads the actual invoice file (PDF/image) for a previously created invoice record.

Prerequisites:

  • Invoice must be created first via the Capture Invoice API (Step 1).
  • Use the invoiceId from Step 1 response.

Constraints:

  • Maximum file size: 5 MB
  • Allowed file types: PDF (.pdf), JPEG (.jpeg, .jpg), PNG (.png)
  • File upload is one-time. Re-uploading returns 409 Conflict.
Requires Bearer token. Get token →

Path Parameters

NameTypeDescription
orderId
stringrequired

Order ID.

invoiceId
stringrequired

Invoice ID returned from the Capture Invoice API.

Request Body

NameTypeDescription
file
stringrequired

The invoice file to upload. Max 5 MB. Allowed types - PDF, JPEG, PNG.

Response

NameTypeDescription
invoiceId
string

Invoice identifier.

orderId
string

Order ID.

invoiceNumber
string

Invoice number.

invoiceDate
string

Invoice date.

supplierName
string

Supplier name (if provided during creation).

status
string

Updated to INVOICE_UPLOADED on success.

Status Codes

200Invoice file uploaded successfully.
400Validation error.
401
409Invoice file already uploaded.
422Invoice not found.
500
Request
curl --request PUT \
  --url https://pluraluat.v2.pinepg.in/api/pay/v1/orders/%7BorderId%7D/invoice/%7BinvoiceId%7D/upload \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: multipart/form-data'

Run this request

orderId
invoiceId
200 OK
{
  "invoiceId": "inv-260520225359-ab-XyZ123",
  "orderId": "v1-260520225359-aa-LHy288",
  "invoiceNumber": "v1-260520225359-aa-LHy288-IN",
  "invoiceDate": "2026-05-20",
  "supplierName": null,
  "status": "INVOICE_UPLOADED"
}
New chat
Responses are generated using AI and may contain mistakes.
Hi! I'm Pine, your AI developer assistant. Ask me anything about Pine Labs APIs, integrations, or troubleshooting.

Tip: you can create a new chat with ⌘ + E