Get Upload Credentials
Issues temporary credentials for uploading the manifest and customer documents to the batch's private storage prefix (S3-compatible). The credentials work only inside this prefix and are valid for about 12 hours. When they expire, call this method again.
Credentials are issued only while the batch is OPEN or CHANGE_REQUESTED. After a commit, reopen the batch with Request Batch Changes to get new ones.
Endpoint
GET /v2/compliance/batch/{batch_id}/credentials
Link
Request
Path Parameters
batch_id
string
Batch ID returned by Create Batch.
Yes
"01a0af8b-831f-7dbe-8eaf-459f81998958"
Query Parameters
format
string
Omit (or send an empty value) for the standard response. credential_process returns the AWS credential_processdocument instead. Any other value returns 400.
No
"credential_process"
Headers
Authorization
<JWT>
Yes
Accept
application/json
Yes
Response (200 OK)
Returns an UploadCredentialsResponse.
Response Fields
bucket
string
Storage bucket name.
"compliance-batch"
prefix
string
Your batch prefix. Upload all files under it.
"9b3f1e7a-2c44-4d8e-a1b6-7f0c9d2e5a10"
region
string
Storage region.
"eu-central-1"
credentials
object
Temporary credentials.
—
credentials.access_key_id
string
Access key ID.
"ASIA5EXAMPLE7QK4WZ3T"
credentials.secret_access_key
string
Secret access key.
"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
credentials.session_token
string
Session token. Must be sent together with the keys.
"IQoJb3JpZ2luX2VjEJ3..."
credentials.expiration
string (date-time)
When the credentials expire.
"2026-09-28T22:15:30Z"
Example Response:
Response with format=credential_process
The body is not the schema above. It is the flat, PascalCase document that the AWS CLI and SDKs expect from a credential_process:
Client generators built from the OpenAPI file will not know this shape: OpenAPI 2.0 cannot describe two response schemas for one status code. Handle it manually, or let the AWS CLI/SDK consume it directly.
Examples
Request
Upload with the AWS CLI
Automatic refresh with credential_process
Error Responses
Errors are returned as {"code", "message", "details"}, where code is a gRPC status code. Use the HTTP status for error handling.
Invalid Format (400) — format has a value other than empty or credential_process:
Batch Not Editable (409) — the batch is CLOSED or CANCELLED:
Rewrite Failed (500) — credential_process only: the credentials could not be converted to the AWS format:
Incomplete Credentials (502) — credential_process only: the storage service returned incomplete credentials. Retry:
Batch Not Found (404) — the batch does not exist or belongs to another partner:
Authorization fail (401):
Notes
Scope: credentials are limited to your batch prefix. Requests outside it are denied by storage.
Folder structure: any structure inside the prefix is fine. File paths in the manifest are relative to the prefix and must match exactly.
manifest.jsonlocation: the manifest must be at the prefix root.Files: PDF, JPEG or PNG (content is checked, not the extension), up to 50 MB each. Corrupted, password-protected or truncated files are rejected.
report.json: after the commit, a per-row report appears in the prefix. You can download it with credentials issued before the commit, while they are still valid.Keep secrets safe: never log or share the secret key and session token.
Last updated

