Upload Document
Upload a supporting file and get back a ref to send under its checklist code. Multipart file + type.
Overview
Uploads one supporting file for a payment’s verification and answers with aref. You then send that ref under the document’s checklist code when you submit verification details:
ref is what binds a file to a checklist item, and it does that later, on the submit.
ref under a code. That separation is what lets a payer send a passport on Monday and a letter of admission on Thursday without you tracking a half-built request.The request
multipart/form-data, two parts:
Document types
type must be one of these. They are the codes the checklists ask for, so the value you upload under is the same value you submit under:
The file
Validated on upload, so a bad file fails here rather than at submit time.The response
201, with the ref:
documents[].ref on the verification submit.The stored file is scoped to your merchant account, not to the payment in the path — so a ref stays valid across a retried attempt or a recurring installment, and a ref that is not yours reads as unknown rather than as someone else’s file.type you sent.Replacing a document
Uploads are immutable. To replace one, upload the file again — you get a newref — and submit that ref under the same code. The newer row supersedes the older without discarding it.
Waiving instead of uploading
Some documents may be discharged with a reason instead of a file. Those carry"waivable": true in the requirements; for them you skip this endpoint entirely and send a waiver_reason on the submit:
400. See Submit Verification Details.
POST /pg/lrs/documents/ predates this route and still works as an alias over the same implementation. New integrations should use the payment-scoped path.Related
Get Verification Requirements
Submit Verification Details
ref is bound to a checklist code.Authorizations
Client Application ID - Your unique application identifier used to authenticate API requests. You can find your Client ID in the Developer Settings section of the merchant dashboard.
Client Secret Key - Your secret key used alongside the Client ID for secure authentication. Keep this confidential and never expose it in client-side code. Available in the Developer Settings section of the merchant dashboard.
Merchant Identifier - The unique ID for the merchant account. This is required for PSP (Payment Service Provider) merchants who manage multiple merchant accounts. You can find merchant IDs in the Merchant Management section of the dashboard.
API Version - Specifies which version of the API to use (e.g., '1.X.X', '2.X.X', or '3.X.X'). This header allows you to control which API version your integration uses. Default version information is available in the Developer Settings.
Path Parameters
UID of the payment the document is for.
Body
The document file. Allowed extensions: pdf, png, jpg, jpeg, docx, xlsx, csv. Maximum 10 MB. Password-protected PDFs are rejected.
Document type — one of the codes the checklists ask for, so the value you upload under is the value you submit under. Read the ones this payment actually needs from Get Verification Requirements rather than mapping this list into your code: it is the complete set any checklist can ask for, and it grows as the regulatory matrix is revised.
offer_letter, passport, student_id_or_visa, student_id, fee_invoice, passenger_list, traveller_passports, traveller_visas, ticket, invoice, relationship_declaration "offer_letter"