Skip to main content
POST
/
gcc
/
v1
/
ffms
/
external
/
transaction
/
{gid}
/
upload-presigned
Get Upload Presigned URL
curl --request POST \
  --url https://gcc.prod.payglocal.in/gcc/v1/ffms/external/transaction/{gid}/upload-presigned \
  --header 'Content-Type: application/json' \
  --header 'x-gl-auth: <api-key>' \
  --data '
{
  "amount": "1000.00",
  "currency": "USD",
  "invoiceType": "INVOICE",
  "paymentType": "CARD",
  "merchantId": "merchant_001",
  "customerFullName": "John Doe",
  "shippingDetails": "Bangalore, India",
  "invoiceNumber": "INV-2026-00321",
  "purposeCode": "P0102",
  "fxRate": "83.12",
  "fileName": "invoice_INV-2026-00321.pdf"
}
'
{
  "gid": "gl_XXXXXXXXXXXXXXXX",
  "status": "201 CREATED",
  "message": "Request completed",
  "timestamp": "05/03/2026 17:35:10",
  "reasonCode": "GL-201-001",
  "data": null,
  "errors": null
}

Documentation Index

Fetch the complete documentation index at: https://payglocal.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

When to Use

Call this when you receive an MCA_FUND_RECEIVED webhook with status DOCUMENT_PENDING. It returns a temporary presignedUrl you then use to upload the supporting document (e.g. invoice) directly via HTTP PUT.

Upload Flow

Step 1 — POST this endpoint → receive presignedUrl
Step 2 — PUT <presignedUrl> with file binary (no auth headers needed)
The presignedUrl is temporary — upload the file immediately. Do not cache or reuse it.

Error Scenarios

ScenarioHTTP Code
Missing or invalid fields400
Invalid or missing API key401
merchantId does not match the transaction403
gid does not exist404
Document already uploaded for this transaction409
Internal server error500

Authorizations

x-gl-auth
string
header
required

Static API Key generated from the PayGlocal Partner Dashboard.

Path Parameters

gid
string
required

Unique FFMS transaction identifier (from the MCA_FUND_RECEIVED webhook).

Body

application/json
amount
string
required

Transaction amount.

Example:

"1000.00"

currency
string
required

ISO 4217 currency code.

Example:

"USD"

invoiceType
string
required

Type of document being uploaded.

Example:

"INVOICE"

paymentType
string
required

Payment type classification.

Example:

"CARD"

merchantId
string
required

Merchant identifier. Must match the transaction.

Example:

"merchant_001"

fileName
string
required

File name including extension (extension max 10 characters).

Example:

"invoice_INV-2026-00321.pdf"

customerFullName
string

Full name of the customer (3–150 characters).

Required string length: 3 - 150
Example:

"John Doe"

shippingDetails
string

Shipping information (1–120 characters).

Maximum string length: 120
Example:

"Bangalore, India"

invoiceNumber
string

Invoice reference number (1–100 characters).

Maximum string length: 100
Example:

"INV-2026-00321"

purposeCode
string

Purpose code for remittance reporting.

Example:

"P0102"

fxRate
string

Foreign exchange rate applied.

Example:

"83.12"

Response

Presigned URL generated successfully.

gid
string

Transaction identifier.

Example:

"gl_XXXXXXXXXXXXXXXX"

status
string
Example:

"201 CREATED"

message
string
Example:

"Request completed"

timestamp
string
Example:

"05/03/2026 17:35:10"

reasonCode
string
Example:

"GL-201-001"

presignedUrl
string<uri>

Temporary URL — upload the file immediately via HTTP PUT.

fileName
string
Example:

"invoice_INV-2026-00321.pdf"

invoiceType
string
Example:

"INVOICE"

paymentType
string
Example:

"CARD"

data
object
errors
object