> For the complete documentation index, see [llms.txt](https://devcenter.unico.io/you/Ol1H6eGO4sQvPYB1Nmyl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://devcenter.unico.io/you/Ol1H6eGO4sQvPYB1Nmyl/you-api/api-reference.md).

# API Reference

### Getting started <a href="#getting-started" id="getting-started"></a>

Your API requests are authenticated using an access token. Any request that does not include a valid access token will return an error.

You can learn more about generating an access token [**here**](/you/Ol1H6eGO4sQvPYB1Nmyl/authentication/obtaining-credentials.md).

{% hint style="info" %}
**URL Base**:

* UAT: `https://api.you.uat.unico.app`;
* Production: `https://api.you.unico.app`.
  {% endhint %}

## Create Process

> Endpoint to create a new You verification process.

```json
{"openapi":"3.0.0","info":{"title":"CreateProcess","version":"1.0.0"},"servers":[{"url":"https://api.you.uat.unico.app","description":"UAT (testing)"},{"url":"https://api.you.unico.app","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-unico-accesskey","description":"API key provided by the Unico team.\nStore as `YOU_ACCESS_KEY` in your secrets manager.\nNever expose it to the browser or commit it to source control.\n"}},"schemas":{"PersonDataField":{"type":"object","description":"A value the client already holds for a person data field. Carries the value only —\nthe field's validation status is assigned by the platform and must not be sent.\n","required":["value"],"properties":{"value":{"type":"string","description":"Field value."}}},"PersonDataGovernmentId":{"type":"object","description":"Government identification number of the person, with the document type it belongs to.","required":["type","value"],"properties":{"type":{"type":"string","enum":["BR_CPF","MX_CURP","AR_DNI","US_SSN"],"description":"Type of the government identification number:\n- `BR_CPF`: Brazilian CPF\n- `MX_CURP`: Mexican CURP\n- `AR_DNI`: Argentine DNI\n- `US_SSN`: United States SSN\n"},"value":{"type":"string","description":"Government identification number value."}}},"PersonDataAddress":{"type":"object","description":"Residential address the client already holds for the person. Carries the values only —\nthe validation status is assigned by the platform and must not be sent.\n","properties":{"street":{"type":"string","description":"Street name."},"number":{"type":"string","description":"Address number."},"complement":{"type":"string","description":"Address complement."},"neighborhood":{"type":"string","description":"Neighborhood name."},"city":{"type":"string","description":"City name."},"state":{"type":"string","description":"State abbreviation."},"zipCode":{"type":"string","description":"Zip code (numbers only)."},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Defaults to `BR` when omitted."}}}}},"paths":{"/api/public/v1/process":{"post":{"summary":"Create Process","description":"Endpoint to create a new You verification process.","requestBody":{"description":"Process creation payload.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["scopes"],"properties":{"scopes":{"type":"array","description":"List of data scopes to be collected from the user.\n\n**Important**: `SCOPE_PAYMENT` can only be combined with `SCOPE_GOVERNMENT_ID`; any other combination is rejected.\nWhen using `SCOPE_PAYMENT`, the `person` and `scopeConfig.payment.amount` fields become required.\n\n**`SCOPE_HUMAN_TOKEN`** behaves differently depending on what accompanies it:\n- Alone, or together with `SCOPE_SELFIE`, it runs the Human Tokenization journey —\n  a biometric capture that returns an anonymous identifier and completes the\n  process immediately, with no data-confirmation screen.\n- Combined with any other scope, the process runs the standard onboarding flow and\n  returns `humanToken` alongside the remaining data.\n","items":{"type":"string","enum":["SCOPE_NAME","SCOPE_GOVERNMENT_ID","SCOPE_PHONE","SCOPE_EMAIL","SCOPE_ADDRESS","SCOPE_BIRTH_DATE","SCOPE_MOTHER_NAME","SCOPE_SEX","SCOPE_NATIONALITY","SCOPE_PAYMENT","SCOPE_SELFIE","SCOPE_HUMAN_TOKEN","SCOPE_ID_DOCUMENT","SCOPE_RESTRICTIONS"],"description":"Scope identifier:\n- SCOPE_NAME: user full name\n- SCOPE_GOVERNMENT_ID: government document (CPF, RG, etc.)\n- SCOPE_PHONE: phone number. OTP verification can be required via scopeConfig.phone.requireOtp.\n- SCOPE_EMAIL: email address. OTP verification can be required via scopeConfig.email.requireOtp.\n- SCOPE_ADDRESS: residential address\n- SCOPE_BIRTH_DATE: date of birth\n- SCOPE_MOTHER_NAME: mother's full name\n- SCOPE_SEX: sex (eg: M or F)\n- SCOPE_NATIONALITY: nationality (ISO 3166-1 alpha-3 country code)\n- SCOPE_PAYMENT: payment data (can only be combined with SCOPE_GOVERNMENT_ID)\n- SCOPE_SELFIE: selfie capture\n- SCOPE_HUMAN_TOKEN: stable anonymous identifier derived from the user's biometrics (the same person always gets the same value).\n- SCOPE_ID_DOCUMENT: identification document capture (e.g., CNH, RG, CIN, passport). Automatically includes SCOPE_NAME.\n- SCOPE_RESTRICTIONS: restriction checks (government-id status, PEP, AML/sanctions, sports exposure). Configure which checks run via scopeConfig.restrictions.\n"}},"branchId":{"type":"string","format":"uuid","description":"The ID of the branch where the process will be created. Optional; when omitted, the branch is resolved from the access key used in the request."},"redirectUrl":{"type":"string","description":"URL to redirect the user after the process is completed."},"appCallback":{"type":"string","description":"Deep link or URI scheme to return the user to the app after the process is completed (used in native app experiences)."},"person":{"type":"object","description":"Person information. Required when `SCOPE_PAYMENT` is used.\n","required":["identity","name"],"properties":{"identity":{"type":"object","description":"Person identity document.","required":["key","value"],"properties":{"key":{"type":"string","description":"Identity document type (e.g., \"IDENTITY_KEY_CPF\")."},"value":{"type":"string","description":"Identity document value."}}},"name":{"type":"string","description":"Person full name."}}},"personData":{"type":"object","description":"Data you already hold about the person.\n\nAccepts `name`, `governmentId`, `phone`, `email`, `address`, `birthDate`,\n`motherName` and `sex`.\n\n**How the data is used**: the values are treated as suggestions. They are shown\nto the user during the flow so they can be confirmed or corrected, sparing them\nfrom typing what you already know, and they take precedence over the data the\nplatform retrieves from its own sources. Sending a value here never makes it\ncome back from GetProcess as `validated` — only the user confirming it at the\nconsent screen does.\n\n**Send only fields whose scope is listed in `scopes`**: a field sent without its\ncorresponding scope is rejected.\n","properties":{"name":{"allOf":[{"$ref":"#/components/schemas/PersonDataField"},{"description":"Person full name."}]},"governmentId":{"allOf":[{"$ref":"#/components/schemas/PersonDataGovernmentId"},{}]},"phone":{"allOf":[{"$ref":"#/components/schemas/PersonDataField"},{"description":"Phone number including country and area code."}]},"email":{"allOf":[{"$ref":"#/components/schemas/PersonDataField"},{"description":"Email address."}]},"address":{"$ref":"#/components/schemas/PersonDataAddress"},"birthDate":{"allOf":[{"$ref":"#/components/schemas/PersonDataField"},{"description":"Date of birth in YYYY-MM-DD format."}]},"motherName":{"allOf":[{"$ref":"#/components/schemas/PersonDataField"},{"description":"Mother's full name."}]},"sex":{"allOf":[{"$ref":"#/components/schemas/PersonDataField"},{"description":"Sex: M (male), F (female) or I (other)."}]}}},"scopeConfig":{"type":"object","description":"Additional configuration for specific scopes.","properties":{"restrictions":{"type":"array","description":"Restriction checks to run when `SCOPE_RESTRICTIONS` is present.\nIf omitted or empty, only `basic` runs — list every check you need explicitly to run more than the default.\n","items":{"type":"string","enum":["basic","pep","aml","sports"],"description":"Restriction check:\n- basic: government-id (CPF) validations — registration status, status date, deceased flag, minor-age flag\n- pep: politically exposed person (direct and related records)\n- aml: anti-money-laundering / sanctions-list matches (direct and related records)\n- sports: sports exposure (athlete, coach, club director, referee, betting-company owner, etc.)\n"}},"phone":{"type":"object","description":"Configuration for the SCOPE_PHONE scope. Requires SCOPE_PHONE to be present in `scopes`.\n","properties":{"requireOtp":{"type":"boolean","description":"When true, the user is asked to verify the phone via a one-time password (OTP) sent by SMS. Optional for the user — the process completes either way, with the phone `validated` if the code was confirmed and `not_validated` otherwise."},"channel":{"type":"string","enum":["sms"],"description":"OTP delivery channel for the phone. Only `sms` is available, and it is the default when omitted.\n"}}},"email":{"type":"object","description":"Configuration for the SCOPE_EMAIL scope. Requires SCOPE_EMAIL to be present in `scopes`.\n","properties":{"requireOtp":{"type":"boolean","description":"When true, the user is asked to verify the email via a one-time password (OTP) sent by email. Optional for the user — the process completes either way, with the email `validated` if the code was confirmed and `not_validated` otherwise."}}},"payment":{"type":"object","description":"Configuration for the SCOPE_PAYMENT scope.","required":["amount"],"properties":{"amount":{"type":"object","description":"Payment amount (required for SCOPE_PAYMENT).","required":["currency","value"],"properties":{"currency":{"type":"string","description":"Currency code (e.g., \"BRL\")."},"value":{"type":"integer","format":"int64","description":"Amount in cents."}}},"pixConfiguration":{"type":"object","description":"Custom configuration for PIX payments.","properties":{"priorityParticipants":{"type":"array","description":"Used to prioritize bank selection, it is possible (configurable) for the API to return an error if all banks are unavailable.","items":{"type":"string","description":"Bank participant slug. The accepted values are listed in\n[PIX Participants](https://devcenter.unico.io/you/Ol1H6eGO4sQvPYB1Nmyl/additional-resources/pix-participants).\n"}},"accountKey":{"type":"string","description":"Recipient account key for PIX transfer. \n\n**Note**: `qrCode` and `accountKey` are mutually exclusive — only one should be provided at a time.\n"},"qrCode":{"type":"string","description":"EMV QR code string for PIX payments. When provided, the payment amount is encoded in the QR code itself and the `amount` field is ignored.\n\n**Note**: `qrCode` and `accountKey` are mutually exclusive — only one should be provided at a time.\n"}}},"cardConfiguration":{"type":"object","description":"Custom configuration for card payments. The currency of the payment is `amount.currency`.","properties":{"installments":{"type":"array","description":"Available installment options.","items":{"type":"object","properties":{"quotes":{"type":"integer","description":"Number of installments."},"amount":{"type":"integer","format":"int64","description":"Amount per installment in cents."},"totalAmount":{"type":"integer","format":"int64","description":"Total amount with interest in cents."},"hasInterest":{"type":"boolean","description":"Whether this installment option includes interest."}}}}}}}}}},"tags":{"type":"array","description":"Reserved test tags. They enable test flows and take effect **exclusively in the UAT environment** (they are ignored in production). Only the two tags below are accepted:\n- `test-govid:<govId>`: skips the biometric identity verification and returns a mocked person identified by the provided govId, letting you exercise the full onboarding flow without passing the facial biometrics (IDFace). Useful when the end user cannot be recognized by IDFace. Not compatible with `SCOPE_ID_DOCUMENT` or `SCOPE_RESTRICTIONS`.\n- `test-not-identified`: forces a \"not identified\" authentication result, to exercise the flow where the person cannot be identified.\n","items":{"type":"string","pattern":"^(test-govid:.+|test-not-identified)$"}},"referenceProcessId":{"type":"string","format":"uuid","description":"Optional. The id of an earlier You process that identified the same person. When present on a payment process, the person may be identified by silent authentication — skipping the selfie — instead of a biometric capture.\n"}}}}}},"responses":{"200":{"description":"Process successfully created.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Process unique identifier."},"token":{"type":"string","description":"Signed token used to initialize the SDK."},"link":{"type":"string","description":"URL link to the You verification flow for this process."}}}}}},"400":{"description":"When some parameter is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{}}}}}},"401":{"description":"Missing or invalid access key.","content":{"application/json":{"schema":{"type":"string","description":"Error description."}}}},"500":{"description":"Unexpected error (Internal error or parameter issue).","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{}}}}}}}}}}}
```

### Errors

{% tabs %}
{% tab title="400 Bad Request" %}

| Code         | Message                | Description                                                     |
| ------------ | ---------------------- | --------------------------------------------------------------- |
| 3            | scopes is required     | When the `scopes` attribute was not provided.                   |
| 3            | scope "%s" invalid     | When the `scopes` attribute was filled with an invalid value.   |
| 3            | branch id "%s" invalid | When the `branchId` attribute was filled with an invalid value. |
| {% endtab %} |                        |                                                                 |

{% tab title="401 Unauthorized" %}

| Message                                           | Description                                               |
| ------------------------------------------------- | --------------------------------------------------------- |
| Jwt header is an invalid JSON                     | When the access token used contains incorrect characters. |
| Jwt is expired                                    | When the access token used has expired.                   |
| failed to authorize request: no branch in request | When the branchID is invalid                              |
| {% endtab %}                                      |                                                           |

{% tab title="429 Too Many Requests" %}
No detailed error code will be provided for this situation, only the HTTP status code.
{% endtab %}

{% tab title="500 Internal Server Error" %}

| Code          | Message        | Description                      |
| ------------- | -------------- | -------------------------------- |
| 13            | internal error | When there is an internal error. |
| {% endtab %}  |                |                                  |
| {% endtabs %} |                |                                  |

## Get Process

> Endpoint to retrieve process details and collected data by process ID.

```json
{"openapi":"3.0.0","info":{"title":"GetProcess","version":"1.0.0"},"servers":[{"url":"https://api.you.uat.unico.app","description":"UAT (testing)"},{"url":"https://api.you.unico.app","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-unico-accesskey","description":"API key provided by the Unico team.\nStore as `YOU_ACCESS_KEY` in your secrets manager.\nNever expose it to the browser or commit it to source control.\n"}},"schemas":{"IdentityVerification":{"type":"object","description":"Result of identifying the person, the first step of the process. It tells you *who the person\nis and whether we could prove it*, which is a separate question from the validation status of\neach field inside `data`.\n\nPresent only when the process `status` is `completed` — that is the only point at which the\nidentification has a verdict. A process that is still running, expired or was canceled has no\nresult to report and omits this block entirely.\n\nA confirmed identity (`validated`) returns the requested data. An `inconclusive` identification\nmay also return data, when the person supplied enough information for us to retrieve it without\nthe identity itself being proven — so do not read the presence of `data` as a confirmed\nidentity, always check this status. `identity-mismatch` and `not-live` never\nreturn data.\n\nIt is an object rather than a plain string so that further identification signals can be added\nlater without breaking your integration.\n","properties":{"status":{"type":"string","enum":["validated","inconclusive","identity-mismatch","not-live"],"description":"How the identification ended:\n\n- `validated`: the person was identified and the identity is confirmed. The only outcome\n  where the data in `data` is backed by a proven identity.\n- `inconclusive`: we could neither confirm nor deny the identity with enough confidence.\n  Unlike `identity-mismatch`, this is an absence of evidence rather than a denial — a new\n  attempt, or your own review flow, may still resolve the person. `data` may carry the\n  requested fields, but they are not backed by a confirmed identity, so weigh them against\n  your own risk rules before trusting them. A minor whose data cannot be retrieved due to\n  some kind of restriction is sent to a screen where they declare their data manually.\n  Once they finish, the process returns the declared data with the `inconclusive`\n  status.\n- `identity-mismatch`: the person captured does not correspond to the identity being\n  claimed. This is an active denial, not a lack of information, and a new attempt by the\n  same person is expected to fail again.\n- `not-live`: the capture did not come from a real person present at the moment it was\n  taken (for example a photo of a screen, or of a printed picture), so the identity itself\n  was never evaluated. Asking for a new capture is usually the right next step.\n"}}},"Field":{"type":"object","description":"A data field with a single value and validation status.","properties":{"value":{"type":"string","description":"Field value."},"status":{"type":"string","enum":["validated","not_validated","empty"],"description":"Data validation status:\n- validated: Data verified with high confidence\n- not_validated: Data available but with low confidence\n- empty: No data available\n"}}},"GovernmentIdField":{"allOf":[{"$ref":"#/components/schemas/Field"},{"type":"object","description":"The person's government identification number, with the type of document the\nnumber belongs to.\n","properties":{"type":{"type":"string","enum":["BR_CPF","MX_CURP","AR_DNI","US_SSN"],"description":"Type of the government identification number:\n- `BR_CPF`: Brazilian CPF\n- `MX_CURP`: Mexican CURP\n- `AR_DNI`: Argentine DNI\n- `US_SSN`: United States SSN\n"}}}]},"Address":{"type":"object","description":"Residential address with validation status.","properties":{"street":{"type":"string","description":"Street name."},"number":{"type":"string","description":"Address number."},"complement":{"type":"string","description":"Address complement."},"neighborhood":{"type":"string","description":"Neighborhood name."},"city":{"type":"string","description":"City name."},"state":{"type":"string","description":"State abbreviation."},"zipCode":{"type":"string","description":"Zip code (CEP)."},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Defaults to \"BR\" when absent."},"status":{"type":"string","enum":["validated","not_validated","empty"],"description":"Data validation status:\n- validated: Data verified with high confidence\n- not_validated: Data available but with low confidence\n- empty: No data available\n"}}},"Document":{"type":"object","description":"Identification document captured during the process. Present only when `SCOPE_ID_DOCUMENT` was used.","properties":{"id":{"type":"string","format":"uuid","description":"Document unique identifier."},"type":{"type":"string","enum":["br-cnh","br-cin","br-rg","br-passaporte","unknown"],"description":"Document type:\n- br-cnh: Brazilian National Driver's License\n- br-cin: Brazilian National Identity Card (replaced the RG as the national standard)\n- br-rg: Brazilian National Identity Card (still valid during transition period)\n- br-passaporte: Brazilian passport (issued by the Federal Police)\n- unknown: a document was captured but could not be classified\n\nAbsent when no type was resolved at all.\n"},"contents":{"type":"array","description":"Captured document images.","items":{"$ref":"#/components/schemas/DocumentContent"}},"status":{"type":"string","enum":["validated","not_validated","empty"],"description":"Data validation status:\n- validated: Data verified with high confidence\n- not_validated: Data available but with low confidence\n- empty: No data available\n"},"signals":{"type":"object","description":"Verification signals computed for the captured document.","properties":{"faceMatch":{"type":"boolean","description":"Whether the document photo matches the captured selfie."},"govidMatch":{"type":"boolean","description":"Whether the document data matches the official government records."}}}}},"DocumentContent":{"type":"object","description":"A single captured document image.","properties":{"side":{"type":"string","enum":["front","back","both"],"description":"Side of the document captured in this image:\n- front: front side of the document\n- back: back side of the document\n- both: both sides captured in a single image\n\nAbsent when the file was not assigned a side.\n"},"fileUrl":{"type":"string","description":"URL of the document image file. The file's MIME type is not provided in this\nresponse; obtain it from the `Content-Type` response header when fetching this URL.\n"}}},"Restrictions":{"type":"object","description":"Restriction validations. Present only when `SCOPE_RESTRICTIONS` was used.\nEach sub-block is present only when its check ran (per `scopeConfig.restrictions`).\nThese are point-in-time validations and are not persisted to the person record.\n","properties":{"basic":{"type":"object","description":"Government-id (CPF) status validations.","properties":{"governmentIdStatus":{"type":"string","description":"Government-id (CPF) registration status at Receita Federal.\nKnown values:\n- `regular`: government-id is regular\n- `pending-regularization`: pending regularization\n- `suspended`: registration suspended\n- `canceled`: registration canceled\n- `void`: registration void\n- `deceased-holder`: holder is deceased\n- `incomplete-data`: incomplete registration data\n- `birth-date-mismatch`: birth date does not match the government-id\n- `not-found`: government-id not found at Receita Federal\n- `invalid-document`: government-id is invalid\n\nNot a closed set: the underlying source may introduce new values at\nany time. A value that is not yet in the list above is returned\nexactly as the source reported it, so treat any unrecognized value\nas a restriction that could not be interpreted rather than as\nabsence of restriction.\n"},"governmentIdStatusDate":{"type":"string","description":"Date the government-id status was last updated (RFC3339)."},"decease":{"type":"boolean","description":"Whether the government-id is registered as deceased."},"under18":{"type":"boolean","description":"Whether the government-id is registered as a minor."}}},"pep":{"type":"object","description":"Politically exposed person (PEP) validation.","properties":{"isCurrentlyPep":{"type":"boolean","description":"Whether the person is currently a politically exposed person."},"records":{"type":"array","description":"PEP records directly associated with the person.","items":{"$ref":"#/components/schemas/RestrictionsPEPRecord"}},"related":{"type":"array","description":"PEP records associated with related persons.","items":{"$ref":"#/components/schemas/RestrictionsPEPRelated"}}}},"aml":{"type":"object","description":"Anti-money-laundering (AML) / sanctions-list validation.","properties":{"isSanctioned":{"type":"boolean","description":"Whether the person appears on a sanctions/AML list."},"records":{"type":"array","description":"AML records directly associated with the person.","items":{"$ref":"#/components/schemas/RestrictionsAMLRecord"}},"relatedRecords":{"type":"array","description":"AML records associated with related persons.","items":{"$ref":"#/components/schemas/RestrictionsAMLRecord"}}}},"sports":{"type":"object","description":"Sports-related exposure validation.","properties":{"hasSportsRelationship":{"type":"boolean","description":"Whether the person has any sports-related relationship."},"isCurrentlyAthlete":{"type":"boolean","description":"Whether the person is currently a professional athlete."},"isCurrentlySportsCoach":{"type":"boolean","description":"Whether the person is currently a sports coach."},"isCurrentlySportsClubDirector":{"type":"boolean","description":"Whether the person is currently a sports club director."},"isCurrentlyReferee":{"type":"boolean","description":"Whether the person is currently a sports referee."},"isCurrentlyRelatedToFinanceMinistry":{"type":"boolean","description":"Whether the person is currently related to a sports finance ministry role."},"isCurrentlyBettingCompanyOwner":{"type":"boolean","description":"Whether the person is currently an owner of a betting company."},"sportsRelationshipMotive":{"type":"string","description":"Reason for the sports relationship classification."},"sportExposures":{"type":"array","description":"Sports exposure details.","items":{"$ref":"#/components/schemas/RestrictionsSportsExposure"}}}}}},"RestrictionsPEPRecord":{"type":"object","description":"A PEP record directly associated with the person.","properties":{"level":{"type":"string","description":"PEP exposure level."},"jobTitle":{"type":"string","description":"Job title associated with the PEP record."},"motive":{"type":"string","description":"Reason the record was classified as PEP."}}},"RestrictionsPEPRelated":{"type":"object","description":"A PEP record associated with a related person.","properties":{"governmentId":{"type":"string","description":"Government-id of the related PEP person."},"level":{"type":"string","description":"PEP exposure level of the related person."},"jobTitle":{"type":"string","description":"Job title associated with the related PEP record."}}},"RestrictionsAMLRecord":{"type":"object","description":"An AML record associated with the person or a related person.","properties":{"type":{"type":"string","description":"AML record type."},"source":{"type":"string","description":"Source list that issued the record. Known values:\n`interpol`, `fbi`, `ofac`, `uk`, `eu`, `unsc`, `CEAF`, `CNEP`, `MTE`,\n`United Nations Security Council`, `Conselho Nacional de Justiça`,\n`Tribunal de Contas da União`, `Tribunal de Contas do Estado de São Paulo`,\n`Bank Hindered Suppliers`, `Ibama`, `Banco Central do Brasil`,\n`Comissao de Valores Mobiliarios`, `seape-df`, `ca-sanctions`, `DDTC`.\n\nNot a closed set: the underlying source may introduce new values at\nany time. A value that is not yet in the list above is returned\nexactly as the source reported it, so treat any unrecognized value\nas a restriction that could not be interpreted rather than as\nabsence of restriction.\n"},"standardizedType":{"type":"string","description":"Standardized classification of the record type, normalized across all\nsource lists. Known values:\n- `arrest-warrants`: arrest warrants\n- `financial-crimes`: money laundering / trafficking\n- `terrorism`: terrorist activities\n- `financial-infractions`: financial-market infractions\n- `environmental-infractions`: environmental infractions\n- `corruption`: administrative misconduct / corruption\n- `slavery-crimes`: slave labor\n\nNot a closed set: the underlying source may introduce new values at\nany time. A value that is not yet in the list above is returned\nexactly as the source reported it, so treat any unrecognized value\nas a restriction that could not be interpreted rather than as\nabsence of restriction.\n"},"endDate":{"type":"string","description":"Date the record ends/expires, when applicable (RFC3339)."}}},"RestrictionsSportsExposure":{"type":"object","description":"A single sports exposure detail.","properties":{"sportName":{"type":"string","description":"Name of the sport."},"region":{"type":"string","description":"Region associated with the exposure."},"totalRelatedEntities":{"type":"integer","format":"int32","description":"Total number of related entities found."},"relationshipLevel":{"type":"string","description":"Relationship level/degree between the person and the sports entities\nfound for this exposure. The indirect degrees are numbered so they can\nbe ordered. Known values:\n- `direct`: direct relationship with the sports entity\n- `indirect-1`: indirect, first degree\n- `indirect-2`: indirect, second degree\n- `indirect-3`: indirect, third degree\n- `indirect-4`: indirect, fourth degree\n- `business-partner`: business partner of a related entity\n\nNot a closed set: the underlying source may introduce new values at\nany time. A value that is not yet in the list above is returned\nexactly as the source reported it, so treat any unrecognized value\nas a restriction that could not be interpreted rather than as\nabsence of restriction.\n"},"endDate":{"type":"string","description":"Date the exposure ends, when applicable (RFC3339)."}}},"Amount":{"type":"object","description":"A monetary amount.","properties":{"currency":{"type":"string","description":"Currency code (ISO 4217) — the one sent in `scopeConfig.payment.amount.currency`.","enum":["BRL","MXN","USD","EUR"]},"value":{"type":"string","description":"Amount in cents, serialized as a string (e.g., \"15000\" is 150.00)."}}},"Transaction":{"type":"object","description":"Bank transaction party details.","properties":{"name":{"type":"string","description":"Account holder name."},"identifier":{"type":"string","description":"Account holder document (CPF/CNPJ)."},"number":{"type":"string","description":"Bank account number."},"accountType":{"type":"string","description":"Bank account type (e.g., CACC for checking, SVGS for savings)."},"ispb":{"type":"string","description":"ISPB code of the bank."},"issuer":{"type":"string","description":"Bank branch (agência)."},"bankName":{"type":"string","description":"Full bank name."},"bankCompe":{"type":"string","description":"COMPE code (3-digit bank code)."}}}}},"paths":{"/api/public/v1/process/{id}":{"get":{"summary":"Get Process","description":"Endpoint to retrieve process details and collected data by process ID.","parameters":[{"name":"id","in":"path","required":true,"description":"Process unique identifier.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Process successfully retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Process unique identifier."},"status":{"type":"string","enum":["pending","processing","completed","expired","canceled","failed"],"description":"Current process status:\n- pending: process created, awaiting user interaction\n- processing: user interaction in progress\n- completed: process successfully completed\n- expired: process exceeded its validity period\n- canceled: process was canceled\n- failed: the linked payment failed — no payment credential is issued\n"},"identityVerification":{"allOf":[{"$ref":"#/components/schemas/IdentityVerification"},{"description":"Result of identifying the person. Present only when `status` is `completed`.\n"}]},"data":{"type":"object","description":"Collected person data. Only fields whose scopes were requested in CreateProcess\nand successfully verified will be present.\n","properties":{"name":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"User full name."}]},"governmentId":{"allOf":[{"$ref":"#/components/schemas/GovernmentIdField"},{"description":"Government identification number of the person, with the type of\ndocument the number belongs to.\n"}]},"phone":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Phone number including country and area code."}]},"email":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Email address."}]},"address":{"$ref":"#/components/schemas/Address"},"birthDate":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Date of birth in YYYY-MM-DD format."}]},"motherName":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Mother's full name."}]},"sex":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Sex: M (male), F (female) or I (other)."}]},"nationality":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Nationality as an ISO 3166-1 alpha-3 country code."}]},"selfie":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Base64-encoded selfie image captured during the process. Present only\nwhen `SCOPE_SELFIE` was used.\n"}]},"humanToken":{"allOf":[{"$ref":"#/components/schemas/Field"},{"description":"Stable anonymous identifier derived from the user's biometrics — the same\nperson always receives the same value, regardless of device or session.\nPresent only when `SCOPE_HUMAN_TOKEN` was used.\n"}]},"idDocument":{"allOf":[{"$ref":"#/components/schemas/Document"},{"description":"Identification document captured during the process. Present only when `SCOPE_ID_DOCUMENT` was used.\n"}]},"restrictions":{"allOf":[{"$ref":"#/components/schemas/Restrictions"},{"description":"Restriction validations. Present only when `SCOPE_RESTRICTIONS` was used.\n"}]},"payment":{"type":"object","description":"Payment data collected during the process. Present only when `SCOPE_PAYMENT` was used.\n","properties":{"status":{"type":"string","description":"Payment status.","enum":["pending","processing","completed","failed","expired","canceled"]},"amount":{"$ref":"#/components/schemas/Amount"},"proposal":{"type":"object","description":"The payment proposal containing the executed payments. Omitted when no payment was started.","properties":{"payments":{"type":"array","description":"List of payment entries in the proposal, one per payment method used.","items":{"type":"object","properties":{"method":{"type":"string","description":"Payment method.","enum":["pix","card"]},"status":{"type":"string","description":"Payment status.","enum":["pending","processing","completed","failed","canceled"]},"instrument":{"type":"object","description":"Payment instrument details. `payer` and `receiver` are set for `pix`;\n`bin` and `last4` are set for `card`.\n","properties":{"payer":{"allOf":[{"$ref":"#/components/schemas/Transaction"},{"description":"Payer account details (`pix` only)."}]},"receiver":{"allOf":[{"$ref":"#/components/schemas/Transaction"},{"description":"Receiver account details (`pix` only)."}]},"bin":{"type":"string","description":"Card BIN — the first 6 digits, which identify the issuer and the brand (`card` only)."},"last4":{"type":"string","description":"Last 4 digits of the card the user chose (`card` only)."}}},"details":{"type":"object","description":"Card-specific payment details (`card` only).","properties":{"installments":{"type":"object","description":"Installment plan the user chose.","properties":{"quotes":{"type":"integer","format":"int32","description":"Number of installments, among the options sent in `cardConfiguration.installments`."},"amount":{"allOf":[{"$ref":"#/components/schemas/Amount"},{"description":"Total payment amount — the same as the payment `amount`.\nIt is not the per-installment amount, unlike\n`cardConfiguration.installments[].amount` in the create request.\n"}]}}},"ownershipStatus":{"type":"string","description":"Outcome of the check that the card belongs to the person who authenticated.\nRecorded when the payment credential is issued; absent before that, or when\nno outcome was recorded.\n- approved: ownership was confirmed\n- inconclusive: the check reached no verdict — apply your own risk policy before charging\n","enum":["approved","inconclusive"]}}},"amount":{"allOf":[{"$ref":"#/components/schemas/Amount"},{"description":"Amount of this payment."}]}}}}}}}}}}}}}}},"400":{"description":"When some parameter is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{"type":"array","items":{}}}}}}},"401":{"description":"Missing or invalid access key.","content":{"application/json":{"schema":{"type":"string","description":"Error description."}}}},"404":{"description":"Process not found.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{"type":"array","items":{}}}}}}},"500":{"description":"Unexpected error (Internal error or parameter issue).","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{"type":"array","items":{}}}}}}}}}}}}
```

## Generate Card Payment Credential

> Endpoint to generate the card payment credential (network-token cryptogram or encrypted card data) for card payment intents associated with a You process.

```json
{"openapi":"3.0.0","info":{"title":"GenerateCardCredential","version":"1.0.0"},"servers":[{"url":"https://api.you.uat.unico.app","description":"UAT (testing)"},{"url":"https://api.you.unico.app","description":"Production"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-unico-accesskey","description":"API key provided by the Unico team.\nStore as `YOU_ACCESS_KEY` in your secrets manager.\nNever expose it to the browser or commit it to source control.\n"}}},"paths":{"/api/public/v1/process/card-info":{"post":{"summary":"Generate Card Payment Credential","description":"Endpoint to generate the card payment credential (network-token cryptogram or encrypted card data) for card payment intents associated with a You process.","requestBody":{"description":"Card payment credential generation payload.","required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","description":"Process id — the `id` returned by Create Process. It is not an invoice or payment id."}}}}}},"responses":{"200":{"description":"Card payment credentials successfully generated.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Identifier of the process the card payment credentials were generated for. It is the same process id sent in the request."},"intents":{"type":"array","description":"Card payment credential results, one per card payment intent.","items":{"type":"object","properties":{"intentId":{"type":"integer","format":"int64","description":"Card payment intent identifier."},"amount":{"type":"object","description":"Total amount for the intent.","properties":{"value":{"type":"integer","format":"int64","description":"Amount in cents."},"currency":{"type":"string","description":"Currency code."}}},"installments":{"type":"object","description":"Installment details. Present only when the intent has more than one installment.","properties":{"quotes":{"type":"integer","description":"Number of installments."},"amount":{"type":"object","description":"Total amount for the installment plan.","properties":{"value":{"type":"integer","format":"int64","description":"Amount in cents."},"currency":{"type":"string","description":"Currency code."}}}}},"credentialFormat":{"type":"string","description":"Selected credential variant; mirrors which credential object is present: \"network_token\" or \"card_data\"."},"ownershipStatus":{"type":"string","enum":["approved","inconclusive"],"description":"Indicates whether the user is the cardholder. Consider it when charging the card.\n\n- `approved`: the card belongs to the user.\n- `inconclusive`: ownership could not be confirmed. Consider your risk rules\n  when charging.\n\nAbsent when no ownership result is available for this card.\n"},"networkToken":{"type":"object","description":"Network-token credential. Present when credentialFormat is \"network_token\".","properties":{"bin":{"type":"string","description":"Card BIN."},"last4":{"type":"string","description":"Last 4 digits of the card."},"brand":{"type":"string","description":"Card brand."},"token":{"type":"string","description":"Network (provisioned) token for the card."},"cryptogram":{"type":"string","description":"TAVV cryptogram for the transaction."},"eci":{"type":"string","description":"Electronic Commerce Indicator."},"expirationDate":{"type":"string","description":"Token expiry in \"MM/YYYY\" format."}}},"encryptedCardData":{"type":"object","description":"Encrypted card data credential. Present when credentialFormat is \"card_data\".","properties":{"bin":{"type":"string","description":"Card BIN."},"last4":{"type":"string","description":"Last 4 digits of the card."},"brand":{"type":"string","description":"Card brand."},"data":{"type":"string","description":"Opaque encrypted card payload (JWE). Never logged or persisted."}}}}}}}}}}},"400":{"description":"When some parameter is wrong.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{"type":"array","items":{}}}}}}},"401":{"description":"Missing or invalid access key.","content":{"application/json":{"schema":{"type":"string","description":"Error description."}}}},"404":{"description":"Process not found.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{"type":"array","items":{}}}}}}},"500":{"description":"Unexpected error (Internal error or parameter issue).","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","description":"Error code."},"message":{"type":"string","description":"Error description."},"details":{"type":"array","items":{}}}}}}}}}}}}
```
