Complyance Logo

Connect API v3 overview

Connect API v3 lets an ISV backend onboard UAE companies, automatically connect their Sources to the workspace's designated GETS mapping, and retrieve document counts over REST with JSON.

The onboarding POST documented here supports UAE companies only. The document-count endpoint supports AE, SA, MY, BE, and DE.

Want the complete working flow? Start with the ISV UAE quickstart to generate a key, onboard a company, download the full payload, submit an invoice, and check the terminal result.

Before you start

Before you call Connect API v3, you need a Connect API key, the target environment, and a completed UAE ASP/TIN prerequisite for the company. Start in sandbox. Store your API key server-side and set the environment explicitly on every example request.

You should be comfortable sending HTTP requests and reading JSON. You do not need to know Complyance's internal onboarding, mapping, or participant-provisioning implementation.

Your first successful integration

1. Get a Connect API key

Open API Keys in the ISV portal, select the environment and permissions, and create a key. See Authentication and environments.

Store the key in a server-side secret manager. Never put it in browser code, a client application, source control, or logs.

2. Choose the environment

Onboarding uses the required platformEnvironment field in the JSON body. It supports sandbox, simulation, and production.

Document counts use the X-Environment header. It supports sandbox and production, and defaults to production. Counts do not accept simulation. Set both environment selectors explicitly and start in sandbox.

3. Complete the UAE ASP/TIN prerequisite

Complete the approved ASP/TIN authorization for the company's TIN in the same environment you will call, then wait for the confirmed readiness signal. Complyance manages the associated Peppol participant identifier. Do not create or send that identifier yourself.

The exact responsible party, approved flow and portal, readiness label, and support path are publication dependencies. See UAE onboarding prerequisites before making the POST.

4. Onboard the company

Call POST /v3/connect/companies. A 201 Created response means the required synchronous onboarding work completed. There is no public onboarding status endpoint or polling flow.

The request contains company and source information only. It must not contain companyId, sourceId, branchId, peppolParticipantId, workspaceId, or another system-generated identifier. See Onboard a UAE company.

5. Confirm mapping readiness

Require data.readyForInvoicing: true and data.mappingReadiness.status: "READY". The returned Source has then been assigned to the designated default mapping for that environment.

6. Submit an invoice

Download the complete payload from Payload Manager and use the exact returned sourceName:sourceVersion with Unify V2. Follow the ISV UAE quickstart.

7. Save the response and retrieve counts

Save the returned companyId, sourceId, branchId, and peppolParticipantId as opaque, system-generated identifiers. Use data.companyId—not any of the other identifiers—as the optional company filter for GET /v3/connect/invoices/counts.

If the original onboarding response is not available, retrieve the identifier as data[].id from the Company List API.

8. Troubleshoot errors

Use the Connect API error matrix. Retain meta.requestId from every response and include it when contacting the confirmed support path.

Continuous curl walkthrough

The examples use illustrative company and identifier values, placeholders, and explicit sandbox selection. Replace YOUR_API_KEY; do not paste real secrets into source control or logs.

1. Onboard a company in sandbox

curl --request POST 'https://prod.gets.complyance.io/v3/connect/companies' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "sourceName": "accounting-platform",
    "sourceVersion": "2.1",
    "countryCode": "AE",
    "tin": "1234567890",
    "contactPersonEmail": "onboarding@example.com",
    "contactPersonName": "Amina Hassan",
    "branchName": "Main",
    "platformEnvironment": "sandbox"
  }'

The request contains no Complyance-generated identifier.

2. Copy data.companyId from the 201 response

{
  "success": true,
  "data": {
    "companyId": "66b9f0a1c2d3e4f567890123",
    "sourceId": "01JABCDEF1234567890SOURCE",
    "branchId": "66b9f0b2c2d3e4f567890456",
    "peppolParticipantId": "0235:1234567890",
    "legalName": "Example UAE Entity",
    "legalNameArabic": "شركة الإمارات التجريبية",
    "tin": "1234567890",
    "vatTrn": "123456789000003",
    "sourceName": "accounting-platform",
    "sourceVersion": "2.1",
    "countryCode": "AE",
    "branchName": "Main",
    "contactPersonName": "Amina Hassan",
    "contactPersonEmail": "onboarding@example.com",
    "platformEnvironment": "sandbox",
    "readyForInvoicing": true,
    "mappingReadiness": {
      "status": "READY",
      "templateId": "default-gets-66b9e000c2d3e4f567890000"
    },
    "createdAt": "2026-08-01T12:00:00.000Z",
    "updatedAt": "2026-08-01T12:00:00.000Z"
  },
  "meta": {
    "requestId": "01JABCDEF1234567890REQUEST",
    "timestamp": "2026-08-01T12:00:00.000Z",
    "workspaceId": "66b9e000c2d3e4f567890000"
  }
}

The next call uses data.companyId (66b9f0a1c2d3e4f567890123). It does not use sourceId, branchId, or peppolParticipantId.

3. Retrieve document counts for that company

curl --get 'https://prod.gets.complyance.io/v3/connect/invoices/counts' \
  --header 'X-API-Key: YOUR_API_KEY' \
  --header 'X-Environment: sandbox' \
  --header 'Accept: application/json' \
  --data-urlencode 'countryCode=AE' \
  --data-urlencode 'companyId=66b9f0a1c2d3e4f567890123' \
  --data-urlencode 'from=2026-08-01' \
  --data-urlencode 'to=2026-08-31'

Omitting documentType returns both Sales and Purchase counts.

{
  "success": true,
  "data": {
    "totalCount": 20,
    "salesCount": 14,
    "purchaseCount": 6,
    "companies": [
      {
        "companyId": "66b9f0a1c2d3e4f567890123",
        "totalCount": 20,
        "salesCount": 14,
        "purchaseCount": 6
      }
    ]
  },
  "meta": {
    "requestId": "01K1EXAMPLE000000000000000",
    "timestamp": "2026-08-31T12:00:00.000Z",
    "filters": {
      "countryCode": "AE",
      "environment": "sandbox",
      "companyId": "66b9f0a1c2d3e4f567890123",
      "documentType": null,
      "from": "2026-08-01",
      "to": "2026-08-31"
    }
  }
}

REST and SDK support

Connect API v3 is available over REST with JSON. No released official Connect v3 SDK client has been verified for this guide. Use curl or your preferred server-side HTTP client until Product confirms a released package and pinned version.

Continue reading

Next step: Complete the ISV UAE quickstart.