This endpoint does not accept file bytes. It returns short-lived
pre-signed S3 upload URLs so you can attach supporting documents to a
beneficiary (when Verto compliance requires them).
How to use (3 steps)
-
Request upload URLs —
POST /uploadDocumentswith a JSON array
of{ fileName, fileType }objects.
AllowedfileNameextensions:jpeg,jpg,pdf,png,svg. -
Upload each file — HTTP
PUTthe file bytes to the matching
items[].linkfrom the response.- Use the file's content type (for example
application/pdf). - Each
linkexpires in 15 minutes. - Do not PUT to
items[].url— that is not the upload target.
- Use the file's content type (for example
-
Attach on create/update — when calling
POST /recipientsor
PUT /recipients/{recipientId}, send:"documentDetails": [ { "key": "<items[].key from step 1>", "name": "<original fileName>" } ]
Most integrations can skip this entire flow and omit documentDetails
unless Verto asks for supporting documents.
Check your base URL
Each Verto service has its own host. Use the base URL shown in the endpoint definition on this page — do not reuse a host from another service.
Sandbox hosts end in
-sandbox.vertofx.com; the matching production host replacessandboxwithbeta. Sending a request to the wrong environment returns403.See URLs (Sandbox vs Production) for the full service-by-service list.
This endpoint returns a short-lived upload URL. It does not accept the file itself.
Flow
- Call this endpoint with a JSON array of
{ fileName, fileType }. PUTeach file to the matchingitems[].linkfrom the response (expires in 15 minutes).- On Create beneficiary or Update beneficiary, send:
"documentDetails": [
{
"key": "<items[].key from step 1>",
"name": "<original fileName>"
}
]Allowed extensions: jpeg, jpg, pdf, png, svg.
Most integrations can skip this flow unless Verto asks for supporting documents.

