Overview
Yala does not accept invoice file bytes on the payout API. You:- Call
POST /documents/upload-url(JSON: filename + content type). PUTthe invoice file to the returneduploadUrl(Amazon S3). Valid for 15 minutes.- Pass the returned
documentUrlonPOST /initiate(supportingDocument) orPATCH /:id/documents.
URLs
Formats and limits
- PDF, JPEG, or PNG (
application/pdf,image/jpeg,image/png) - Max 10 MB per file, max 5 files per payout (initiate + PATCH combined)
Multiple files
Recommendation: If you need to send more than one supporting document, merge them into a single PDF before uploading to S3. Then pass that one
documentUrl when you initiate the payout or call PATCH.At payout creation
POST /initiate accepts one supportingDocument URL. If your payment is backed by several files (for example, an invoice and a contract), combine them into one PDF first, upload it via the upload-url flow, and pass the resulting documentUrl on initiate.
When we request additional documents
If a payout is inADDITIONAL_INFO_REQUIRED status, send further supporting documents with PATCH /:id/documents. Use the same upload-url + S3 PUT flow. If you have multiple files to send, merge them into one PDF before uploading to S3, then include that documentUrl in the PATCH documents array.
Attach at payout creation
1. Get upload URLheaders from the upload-url response on your PUT. Expect HTTP 200 from S3.
3. Create payout
Attach after payout creation
POST /initiatewithoutsupportingDocument. Save payoutid.- Same upload-url + S3 PUT as above.
PATCH /v1/payout-api/payouts/{id}/documentswith{ "documents": ["<documentUrl>"] }.
SUCCESSFUL, FAILED, or REJECTED. See Add Supporting Documents.
Testing with Postman
Import the Postman collection. Run Get Document Upload URL, then Upload File to S3, then Initiate Payout (uses{{documentUrl}}). Details for the S3 PUT request are in the collection description.