curl --request POST \
--url https://sg.sandbox.api.reap.global/companies/{id}/applications/submit \
--header 'Authorization: Bearer <token>' \
--header 'Reap-Version: <reap-version>'const options = {
method: 'POST',
headers: {'Reap-Version': '<reap-version>', Authorization: 'Bearer <token>'}
};
fetch('https://sg.sandbox.api.reap.global/companies/{id}/applications/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/companies/{id}/applications/submit"
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "INITIATED",
"sessionUrl": "<string>",
"expiresAt": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"nextAction": {
"type": "DOCUMENT_UPLOAD",
"documents": [
{
"documentType": "CERTIFICATE_OF_INCORPORATION",
"status": "REQUIRED"
}
]
}
}{
"error": {
"code": "CORPORATE_MODE_REQUIRED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "COMPANY_VERIFICATION_METHOD_NOT_ENABLED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "COMPANY_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "COMPANY_APPLICATION_NOT_EDITABLE",
"message": "<string>",
"detail": {}
}
}Submit company application
Submits a complete Universal KYB application for review. Required company documents and every declared beneficial-owner identity document must already be uploaded. On success the company moves to IN_REVIEW and nextAction is null. An incomplete submission returns COMPANY_APPLICATION_INCOMPLETE with missing and invalid so every remaining gap can be fixed in one pass.
curl --request POST \
--url https://sg.sandbox.api.reap.global/companies/{id}/applications/submit \
--header 'Authorization: Bearer <token>' \
--header 'Reap-Version: <reap-version>'const options = {
method: 'POST',
headers: {'Reap-Version': '<reap-version>', Authorization: 'Bearer <token>'}
};
fetch('https://sg.sandbox.api.reap.global/companies/{id}/applications/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sg.sandbox.api.reap.global/companies/{id}/applications/submit"
headers = {
"Reap-Version": "<reap-version>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"companyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "INITIATED",
"sessionUrl": "<string>",
"expiresAt": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"nextAction": {
"type": "DOCUMENT_UPLOAD",
"documents": [
{
"documentType": "CERTIFICATE_OF_INCORPORATION",
"status": "REQUIRED"
}
]
}
}{
"error": {
"code": "CORPORATE_MODE_REQUIRED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "COMPANY_VERIFICATION_METHOD_NOT_ENABLED",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "COMPANY_NOT_FOUND",
"message": "<string>",
"detail": {}
}
}{
"error": {
"code": "COMPANY_APPLICATION_NOT_EDITABLE",
"message": "<string>",
"detail": {}
}
}Authorizations
API key as Bearer token
Headers
API version (YYYY-MM-DD)
2025-02-14 "2025-02-14"
Path Parameters
Unique company identifier
Response
Company application after submit for review
Company application and the next action required
Unique company application identifier
Company this application belongs to
Application lifecycle status
INITIATED, IN_PROGRESS, APPROVED, REJECTED, REVIEW_REQUIRED, WORKFLOW_ERROR, EXPIRED "INITIATED"
URL for the corporate client to complete verification
When the verification session URL expires (ISO 8601)
When the application was created (ISO 8601)
When the application was last updated (ISO 8601)
Action the client must take next, or null if none remains
- DocumentUpload
- Submit
Show child attributes
Show child attributes