---
title: "Get Upload Presigned URL"
method: POST
path: "/gcc/v1/ffms/external/transaction/{gid}/upload-presigned"
tags: ["MCA"]
---

# Get Upload Presigned URL

`POST /gcc/v1/ffms/external/transaction/{gid}/upload-presigned`

Generates a presigned upload URL for attaching a supporting document (e.g. invoice)
to an FFMS transaction. Upload the file to the returned URL via HTTP PUT.

## Path parameters

- `gid` string, required

## Request body

- DocumentUploadRequest
  - `amount` string, required — Transaction amount.
  - `currency` string, required — ISO 4217 currency code.
  - `invoiceType` string, required — Type of document being uploaded.
  - `paymentType` string, required — Payment type classification.
  - `merchantId` string, required — Merchant identifier. Must match the transaction.
  - `customerFullName` string — Full name of the customer (3–150 characters).
  - `shippingDetails` string — Shipping information (1–120 characters).
  - `invoiceNumber` string — Invoice reference number (1–100 characters).
  - `purposeCode` string — Purpose code for remittance reporting.
  - `fxRate` string — Foreign exchange rate applied.
  - `fileName` string, required — File name including extension (extension max 10 characters).

## Response `200`

Presigned URL generated successfully.

- object
  - `gid` string — Transaction identifier.
  - `status` string
  - `message` string
  - `timestamp` string
  - `reasonCode` string
  - `presignedUrl` string, uri — Temporary URL — upload the file immediately via HTTP PUT.
  - `fileName` string
  - `invoiceType` string
  - `paymentType` string
  - `data` object, nullable
  - `errors` object, nullable

## Other responses

- `400` — Validation error — missing or invalid fields.
- `401` — Authentication failed — invalid API key or digest.
- `403` — The onboardingId does not belong to the authenticated partner.
- `404` — The specified onboardingId does not exist.
- `409` — Document already uploaded for this transaction.
- `500` — Internal Server Error.

---

[API](https://skmtc.net/payglocal/apis/payglocal-api.md) · [All operations](https://skmtc.net/payglocal/apis/payglocal-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payglocal/payglocal-api/revisions/498446abc56d/schema)
