Add/update document
POSThttps://api.hubpay.ae/v1/account/documents
Add/update a document by type. If the document already exists, it will be updated with the new file. If the document does not exist, it will be created.
Request
Header Parameters
ID of account for which operation is to be performed
- application/json
Bodyrequired
- TRADE_LICENSE: Valid Trade/Commercial license
- MEMORANDUM_OF_ASSOCIATION_OR_ARTICLES_OF_ASSOCIATION: Memorandum of Association or Articles of Association
- BUSINESS_PROOF_OF_ADDRESS: Valid proof of business address
- POWER_OF_ATTORNEY: Power of attorney or Board resolution
- BANK_STATEMENT: 3 months bank statement
- LATEST_AUDITED_FINANCIAL_STATEMENTS: Latest Audited Financial Statements
- LETTER_OF_AUTHORISATION_WITH_TERMS_AND_CONDITIONS: Letter of Authorisation (with Terms and Conditions)
Document type identifier for the document requirement. See Get document requirements API
Allowed values:
Possible values: [TRADE_LICENSE
, MEMORANDUM_OF_ASSOCIATION_OR_ARTICLES_OF_ASSOCIATION
, BUSINESS_PROOF_OF_ADDRESS
, POWER_OF_ATTORNEY
, BANK_STATEMENT
, LATEST_AUDITED_FINANCIAL_STATEMENTS
, LETTER_OF_AUTHORISATION_WITH_TERMS_AND_CONDITIONS
, INVESTMENT_AGREEMENT
]
One or more document upload IDs associated with this document type. See /account/{id}/document/upload
Responses
- 201
- 400
- 401
- 403
- 404
- 405
- 415
- 429
- 500
Created
- application/json
- Schema
- Example (auto)
Schema
- TRADE_LICENSE: Valid Trade/Commercial license
- MEMORANDUM_OF_ASSOCIATION_OR_ARTICLES_OF_ASSOCIATION: Memorandum of Association or Articles of Association
- BUSINESS_PROOF_OF_ADDRESS: Valid proof of business address
- POWER_OF_ATTORNEY: Power of attorney or Board resolution
- BANK_STATEMENT: 3 months bank statement
- LATEST_AUDITED_FINANCIAL_STATEMENTS: Latest Audited Financial Statements
- LETTER_OF_AUTHORISATION_WITH_TERMS_AND_CONDITIONS: Letter of Authorisation (with Terms and Conditions)
Possible values: [NOT_SUBMITTED
, PENDING_REVIEW
, DECLINED
, APPROVED
, PENDING_VERIFICATION
, VALIDATION_WARNINGS
]
Possible values: [NOT_CERTIFIED
, INVALID_DOCUMENT_TYPE
, QUALITY
, OTHER_SEE_SUPPORT
]
documentUploads object[]required
Document type identifier for the document requirement.
Allowed values:
Possible values: [TRADE_LICENSE
, MEMORANDUM_OF_ASSOCIATION_OR_ARTICLES_OF_ASSOCIATION
, BUSINESS_PROOF_OF_ADDRESS
, POWER_OF_ATTORNEY
, BANK_STATEMENT
, LATEST_AUDITED_FINANCIAL_STATEMENTS
, LETTER_OF_AUTHORISATION_WITH_TERMS_AND_CONDITIONS
, INVESTMENT_AGREEMENT
]
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"description": "string",
"status": "NOT_SUBMITTED",
"required": true,
"expiresAt": "2024-07-29T15:51:28.071Z",
"declinedReason": "NOT_CERTIFIED",
"declinedCustomerDisplayReason": "string",
"lastUpdatedBy": "string",
"lastUpdatedAt": "2024-07-29T15:51:28.071Z",
"documentUploads": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fileName": "string",
"contentType": "string",
"createdAt": "2024-07-29T15:51:28.071Z"
}
],
"documentType": "TRADE_LICENSE"
}
Bad Request
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Unauthorized
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Forbidden
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Not Found
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Method Not Allowed
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Unsupported Media Type
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Too Many Requests
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Internal Server Error
- application/json
- Schema
- Example (auto)
Schema
Stable machine-readable code
Possible values: [validation_failed
, unauthorized
, forbidden
, not_found
, conflict
, internal_error
, operation_unavailable
]
validation_failed
One or more fields are missing or invalid
400
2025-06-10T10:15:31Z
/v1/collections/rates
errors object[]
{
"code": "validation_failed",
"message": "One or more fields are missing or invalid",
"status": 400,
"timestamp": "2025-06-10T10:15:31Z",
"path": "/v1/collections/rates",
"errors": [
{
"field": "sourceCurrency",
"message": "Source currency is required"
}
]
}
Authorization: http
name: Authorizationtype: httpdescription: JWT Bearer token for authenticating API requestsscheme: bearerbearerFormat: JWT
- csharp
- curl
- dart
- go
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- powershell
- python
- r
- ruby
- rust
- shell
- swift
- HTTPCLIENT
- RESTSHARP
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.hubpay.ae/v1/account/documents");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Bearer <token>");
var content = new StringContent("{\n \"documentType\": \"TRADE_LICENSE\",\n \"documentUploadIds\": [\n \"3fa85f64-5717-4562-b3fc-2c963f66afa6\"\n ]\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());