APG PayAPG Paydocs

Merchants

Create travel uploads

POST/travel-uploads

Record that a file is being uploaded. Answers with the upload, in status Uploading.

Permissions

Required permission
merchantTravelData:create

Requires the `create` action on `merchantTravelData` for the supplied runtime context

Request body

This body is a tagged shape: type is always "TvluplCmdRecord". Send it; more variants can be added, and a caller that switches on it keeps working when they are.

Discriminated by type
type = "TvluplCmdRecord"
merchantIdMchtId

The merchant the file is for. Omit it when the Merchant-Id header names the merchant.

Example mcht_9f2Kd8QpLzXw

fileNamestringrequired

Example Ada Lovelace

uploaderReferencestring

Example your-own-reference

uploaderNamestring

Example Ada Lovelace

curl -X POST https://api.tst.au.apgpay.dev/travel-uploads \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "TvluplCmdRecord",
  "merchantId": "mcht_9f2Kd8QpLzXw",
  "fileName": "Ada Lovelace",
  "uploaderReference": "your-own-reference",
  "uploaderName": "Ada Lovelace"
}'

Responses

The response is a tagged shape: type is always "TvluplCreateRspAttributes". Switch on it; subtypes can be added, and a client that already reads it will not break.

Discriminated by type
type = "TvluplCreateRspAttributes"

The resource that was created.

Example
{
  "type": "TvluplCreateRspAttributes",
  "created": {
    "type": "TvluplViewAttributes",
    "travelUploadId": "tvlupl_9f2Kd8QpLzXw",
    "merchantId": "mcht_9f2Kd8QpLzXw",
    "fileName": "Ada Lovelace",
    "uploaderReference": "your-own-reference",
    "uploaderName": "Ada Lovelace",
    "status": "Uploading",
    "failureMessage": "string",
    "createdAt": "2026-08-19T04:21:07Z",
    "updatedAt": "2026-08-19T04:21:07Z"
  }
}

Error responses