---
title: Overview
description: API contract — used when the client controls capture and sends the image directly in the request.
canonical: https://developer.unico.io/dual-api/developers/api-reference/api/
locale: en
generated_by: markdown-export
---

This section documents the **API** contract, used when the client application owns the capture step and sends the image directly to the platform.

## When to use this contract

Use the API contract when:

- Your application **has already captured** the selfie or image (via Unico's native SDK or a proprietary stack — [Capture Standard](/developers/sdks-and-tools/capture-standard)).
- You want **synchronous results** in the process-creation response itself.
- You **do not** want to redirect the user to a hosted journey.
- Your architecture prefers traditional server-to-server calls (request → response with the result).

If you want Unico to host the journey, use [Web & SDK](../web-sdk) instead.

## API Reference

  **Create Process**

Create a verification process by sending the captured image directly. Returns a synchronous result.

  **Get Process**

Retrieve an existing API-contract process by its identifier.

  **Get Reusable Documents**

Check whether a user already has a reusable document on file before starting a new capture flow.

  **Create Document Process**

Capture a new document or reuse a previously captured one linked to a biometric process.

  **Data Verification**

Query registration data, PEP/AML screening and sports relationship for a given CPF.

## Client Integration

  **Native SDKs**

Native libraries for Android, iOS, and Flutter to capture the selfie inside your mobile application.

  **Capture Standard**

Technical requirements your proprietary capture must meet when not using Unico's SDK — resolution, format, lighting, and more.

### Differences from Web & SDK

| Aspect | API | Web & SDK |
|---|---|---|
| **When the process is created** | After capture | Before capture |
| **Image return** | Immediate (after client-side capture) | Via dedicated endpoint |
| **Journey control** | Client | Unico |
| **Capture control** | Client (with or without SDK) | Unico |
| **Identification** | `subject.code` | `person.duiType` + `person.duiValue` |
| **Headers** | `Authorization` + `APIKEY` | `Authorization` only |
| **Result schema** | Flat (`unicoId.result`, `liveness`, etc.) | Nested (`process.authenticationInfo.*Result`) |

### What's next

- [Create Process](./post-processes) — full Onboarding contract.
- [Error codes](../error-codes) — handle 4xx and 5xx responses.