Skip to main content
POST
/
apps
/
{client_id}
/
providers
/
{provider_id}
/
activation
/
documents
curl -X POST \
  -H "Authorization: Bearer sk_workspace_test_..." \
  -F "files=@/path/to/spid_aggregation_agreement.docx" \
  "https://sandbox.api.hopae.com/connect/v1/apps/abc123/providers/spid-ig/activation/documents"
{
  "documents": [
    {
      "documentId": "0567eeb3-eda7-489a-9ba8-84f0ae3f301e",
      "fileName": "spid_aggregation_agreement.docx",
      "fileSize": 784044,
      "contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "uploadedAt": "2026-04-20T02:20:27.521Z",
      "state": "pending"
    }
  ]
}
Uploads one or more documents against the provider’s upload activation step. Only applies to providers whose step sequence includes an upload step (currently ftn, spid-ig, idin).

Request

Authorization
string
required
Bearer <API_KEY> from Console > Developers > Workspace API Keys.
Content-Type
string
required
multipart/form-data

Path parameters

client_id
string
required
Client identifier of the app.
provider_id
string
required
Provider identifier (e.g., ftn, spid-ig, idin).

Request body

files
file[]
required
One or more files to upload, sent as the files field of a multipart/form-data request. Up to 10 files per request, 10 MB per file.

Response

documents
object[]
Array of document records created by this upload.
The upload step advances once the count of non-rejected uploads reaches the number of required entries in the step’s documents catalog. Rejected uploads are retained in upload.uploaded[] so you can surface the reviewer’s note, but they do not count toward step progression — re-upload a replacement to supersede them, or remove them with Delete Activation Document once they are no longer needed.

Errors

CodeHTTPWhen you see it
VALIDATION_MISSING_PARAMETER400The files part of the multipart body was empty or absent.
VALIDATION_STEP_NOT_APPLICABLE400The provider’s activation sequence does not include an upload step (e.g., a provider whose sequence is enable → activation-form → api-key → activated). details.expectedSteps lists the real sequence.
RESOURCE_CONFLICT409The activation form has not been submitted yet. Call Submit Activation Form first, then retry the upload.
curl -X POST \
  -H "Authorization: Bearer sk_workspace_test_..." \
  -F "files=@/path/to/spid_aggregation_agreement.docx" \
  "https://sandbox.api.hopae.com/connect/v1/apps/abc123/providers/spid-ig/activation/documents"
{
  "documents": [
    {
      "documentId": "0567eeb3-eda7-489a-9ba8-84f0ae3f301e",
      "fileName": "spid_aggregation_agreement.docx",
      "fileSize": 784044,
      "contentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
      "uploadedAt": "2026-04-20T02:20:27.521Z",
      "state": "pending"
    }
  ]
}