XIP

Institutional documents  /  Onboarding and Screening Systems

Technical description

Onboarding and Screening Systems

A technical description of the layers that make up user registration, identity verification and screening at XIP, with screenshots and a video walkthrough of the process.

Document DES-01
Version 1.0
In force since July 29, 2026
Last revised July 29, 2026
Classification Public

This is a courtesy translation. The Portuguese version is the authoritative text and prevails in the event of any divergence.

One-line summary

XIP onboarding has four layers: the application collects, the API orchestrates and forwards, the contracted provider verifies and performs the screening, and the administrative panel allows monitoring. Eligibility to transact is decided in the API, on every operation, and cannot be bypassed by the client.

Purpose and scope

This document provides a technical description of the systems that carry out the verification record, the identity verification and the screening of XIP users. It serves as reference material for technical due diligence by partners, auditors and authorities.

At the implementation level, it complements the rules established in:

Architecture overview

Layer Component Technology Responsibility in onboarding
1 Mobile application Native Android (Kotlin, Jetpack Compose) Collection of data and images, local validation, compression, presentation of the state of the verification record.
2 API Go, layered architecture (controller → service → repository), PostgreSQL, Redis Authentication, server-side validation, creation of the verification record, forwarding of the images, recording of the result and eligibility decision.
3 Contracted provider Authorized institution, integrated by API Document analysis, liveness check, screening against restrictive and sanctions lists and for politically exposed person status, verification decision, custody of the documents.
4 Administrative panel Web application (React/Next), with roles and permissions Lookup of users and operations for customer support and compliance, under granular access control.

Communication between all layers is encrypted in transit by TLS. Layer 2 is the only point through which verification data passes, and it delegates no control decision to the client.

Layer 1 — Mobile application

The application's verification module is organized as a navigation state machine, with a view model that holds the form and the status of the verification record, and dedicated screens for each step.

Screens of the flow

Step Screen Function
Requirement notice Pending verification notice States that the intended operation requires verification and leads to the flow. Presented in the settings, on the deposit screen and on the withdrawal screen.
1 Personal data Collection of full name, CPF (Brazilian individual taxpayer number), telephone and e-mail, with input masks and real-time validation.
2 Identification document Choice between RG (Brazilian identity card) and CNH (Brazilian driver's license) and capture of the corresponding images, with preview and replacement.
3 Facial image Capture of the selfie with framing guidance, for the liveness check.
4 Review Consolidated check of data and images before final submission.
Submitted / Under review Confirms receipt and states that the analysis is in progress.
Approved States the eligibility and releases access to the operations.
Rejected Presents the reason recorded by the contracted provider and offers resubmission.
Error Reports communication failures in a readable form, without losing the data already entered in the form.

Controls performed in the application

  • Structural validation of the CPF by the modulo 11 algorithm, with rejection of repeated sequences — an invalid CPF is never transmitted;
  • Telephone validation for area code and national format, and e-mail validation for format;
  • Blocking of advance on an incomplete step: each step requires its validations to pass;
  • Consistency of the document set: changing the document type discards incompatible document images, preserving the facial image;
  • Image compression on the device to JPEG, with a size budget distributed across the images and a minimum floor per image to preserve legibility;
  • Masking in diagnostic logs: sensitive identifiers appear truncated in the application's technical logs — the CPF, for example, is logged only by its last digits;
  • Automatic filling of the e-mail from the already confirmed account, reducing discrepancies in the verification record.
On trust in the client

The application's validations exist to give the user immediate feedback and to reduce useless submissions. None of them is treated as a guarantee. All rules are reapplied on the server, which is the sole authority over the acceptance of the data and over eligibility to transact.

Layer 2 — API

The API exposes four verification operations, all authenticated and subject to the platform's security controls:

Operation Endpoint Function
Start verification POST /api/kyc Creates the user's verification record with the contracted provider, from the name, CPF, account e-mail and wallet address. Idempotent.
Submit documents POST /api/kyc/documents Receives the images as multipart/form-data and forwards them to the contracted provider. Nothing is stored.
Update identification PATCH /api/kyc Updates name, e-mail and telephone. Refused after approval. The CPF is not updatable by this route.
Query status GET /api/kyc Returns the state of the verification, the state of the verification record and the rejection reason. Refreshes against the provider when the state is non-terminal.

Relevant behaviors of the service layer

Behavior Implementation Risk mitigated
Idempotency of creation Prior lookup of the existing verification record; where absent, creation occurs under a mutual exclusion lock in the database, with a re-check inside the lock. A double tap in the application or concurrent requests would create duplicate verification records at the provider and would violate the local uniqueness constraint.
Sealing after approval Attempts to update the identification or to resubmit documents on an approved verification record are refused with a specific error. Alteration of verified data without a new analysis.
Conditional refresh of the state The query to the provider only occurs when the state is pending, submitted or under review. Terminal states generate no query. Unnecessary traffic to the provider and improper reopening of final decisions.
Safe degradation A failure in the query to the provider is logged and the known state is returned, unchanged. A momentary unavailability improperly altering the state of the user's verification record.
Audit trail The provider's complete response is retained in structured form at each event of the life cycle. Inability to reconcile, subsequently, what the provider reported.
Eligibility decision Verification of the conjunction "verification approved and verification record active" before any quotation or operation. Operation by an unverified, suspended or blocked user.

Layer 3 — Contracted provider

Identity verification proper and the screening are performed by the contracted provider, an authorized institution subject to the competent regulation and supervision. The integration takes place through an API authenticated by XIP's own credentials, transmitted in headers and kept in protected configuration, outside the source code.

The contracted provider is responsible, as established by contract, for:

  • the analysis of the identification document images, as to authenticity, legibility and integrity;
  • the liveness check and the comparison between the facial image and the photograph on the document;
  • the validation of the CPF and the checking of the identification data against official databases;
  • the screening against restrictive and sanctions lists — United Nations sanctions, applicable international sanctions and national restriction lists;
  • the classification as a politically exposed person (PEP), including representatives, family members and close associates;
  • the verification decision, with the reason recorded in the event of rejection;
  • the custody of the identification documents for the legally required periods;
  • the monitoring of settled operations and the analysis of alerts;
  • the reporting of suspicious operations to the competent authorities.

XIP receives from the provider the result of these checks, not their inputs: neither the analyzed images nor the detail of the queries against the lists come back for storage at XIP.

Layer 4 — Administrative panel

The administrative panel is used by authorized XIP personnel for customer support and compliance. Its control characteristics:

  • its own authentication, distinct from that of end users, with password reset through a dedicated flow;
  • granular roles and permissions: access is assigned by function, applying the principle of least privilege, and is checked on the server on every request;
  • lookup of users and of operations for customer support purposes, without the ability to alter the result of an identity verification;
  • absence of access to identification documents: as the images are not stored by XIP, there is no screen, export or query that displays them to internal operators.
Design consequence

No XIP employee — at any access level — can view a user's document image or facial image. The risk of improper internal access to this data is eliminated at the source, not mitigated by permission controls.

End-to-end flow

Account creation

The user creates the account with e-mail, username and password, and confirms the e-mail. The non-custodial wallet is generated on the device, with keys that never leave it. There is no identity verification at this step.

Application · API

Verification requirement

On attempting to deposit or withdraw, the user encounters the pending verification notice and is led to the flow.

Application

Collection and local validation

Progression through the four steps, with validation at each advance and image compression on the device.

Application

Creation of the verification record

The API validates the data, creates the verification record at the contracted provider under a concurrency lock and persists the local record with the external identifier returned.

API · contracted provider

Forwarding of the images

The images reach the API, remain only in memory for the duration of the request and are reassembled and transmitted to the contracted provider. No storage occurs.

API

Analysis and screening

The contracted provider analyzes the documents, performs the liveness check and the screening against restrictive and sanctions lists and for politically exposed person status, and decides.

Contracted provider

Recording of the result

The API records the state of the verification, the state of the verification record, the reason in the event of rejection, the date of the analysis and the raw response as an audit trail.

API

Eligibility or rejection

Approved and active, the verification record then permits operations. In any other state, the API refuses every quotation and every operation, without exception.

API

Continuous monitoring

The contracted provider monitors the settled operations; the API records the events received, verified by cryptographic signature, maintaining the complete trail.

Contracted provider · API

Screening: what is checked and where

Check Performed by Timing Effect at XIP
Authenticity and legibility of the document Contracted provider In the analysis, after submission Rejection with the reason recorded and displayed to the user.
Liveness check and facial comparison Contracted provider In the analysis Rejection with the reason recorded.
Validation of the CPF against an official database Contracted provider In the analysis Rejection with the reason recorded.
Structure of the CPF (modulo 11) XIP At collection, before any submission Advance in step 1 is blocked.
United Nations sanctions lists Contracted provider Before approval and in reassessments Verification record not approved or blocked; immediate suspension on the platform.
Applicable international sanctions and national restriction lists Contracted provider Before approval and in reassessments Verification record not approved or blocked.
Classification as a politically exposed person Contracted provider Before approval and in reassessments High risk classification, with enhanced due diligence and approval at a higher level.
Monitoring of operations and generation of alerts Contracted provider Continuous, after eligibility Suspension or blocking of the verification record, with immediate effect on new operations.
Eligibility check on every operation XIP On every quotation and every operation Refusal of the operation before any external effect.

Security controls of the pipeline

Control Application
Authentication by signed token All verification operations require a valid user session; an invalid credential invalidates the session on the client.
Two-step authentication Available through an authenticator application, with single-use recovery codes.
Layered rate limiting Global cap per origin for the entire API, cap per authenticated account and specific caps on the credential and operation endpoints.
Request filters Detection of header anomalies, of SQL injection attempts and of malicious content, applied to the entire API surface.
Encryption in transit TLS between application, API and contracted provider.
Verification of notification signatures HMAC-SHA256 over the raw body of the messages received from the provider; unsigned messages are rejected, with no bypass mode.
Concurrency locks Mutual exclusion in the database on the operations of verification record creation and of operation creation.
Integrity constraints in the database Uniqueness of the verification record per user and per provider, uniqueness of the external identifier, mandatory foreign key to the account, prohibition of deletion of financial records.
Minimization in technical logs Sensitive identifiers masked in the application logs, on the client and on the server.
Credentials outside the code Integration credentials kept in protected environment configuration, never committed to version control.
Environment segregation Distinct development, staging and production environments, with separate credentials and databases.
Automated tests Suite executed on every change, covering the verification flow, the idempotency of creation, the sealing after approval and the refusal of operations for verification records that are not enabled.

Screens of the onboarding process

The screenshots below document the screens actually presented to the user during the verification flow. The data shown is from a demonstration environment.

Pending verification notice
Pending verification notice. Presented when the user attempts to deposit or withdraw without an enabled verification record, with direct access to the flow.
Collection of personal data
Collection of personal data. Full name, CPF, telephone and e-mail, with input masks and real-time validation.
Document choice and capture
Document choice and capture. Selection between RG and CNH, with capture of the corresponding images and preview.
Capture of the facial image
Capture of the facial image. Liveness check, with framing and lighting guidance.
Final review
Final review. Consolidated check of data and images before final submission.
Submission confirmation
Submission confirmation. States that the documents were received and that the analysis is in progress.
Verification approved
Verification approved. Verification record enabled; operations in the national currency become available.
Verification rejected
Verification rejected. Displays the reason recorded by the contracted provider and offers resubmission of the documents.

Video demonstration

The recordings below demonstrate the actual end-to-end process, in a demonstration environment, allowing the behavior of the system to be verified without requiring access to the platform.

Full onboarding. Account creation, e-mail confirmation, generation of the wallet on the device and the complete progression through the verification flow up to the decision.
Verification flow in detail. The four collection steps, the validations applied at each advance, the capture of the document and of the facial image, and the review screen.
Transaction block. Deposit and withdrawal attempts by a user without an enabled verification record, evidencing the refusal of the operation and the redirection to the verification flow.

Additional recordings and guided demonstrations in a controlled environment may be requested at compliance@xip.cash.

Environments and availability

Item Status
Application platform Android. Distribution through the official application channel.
Language of the verification flow Brazilian Portuguese.
Type of user accepted Natural person, resident in Brazil, aged 18 or over. Legal entity registration is not currently accepted.
Accepted documents RG (front and back) or CNH, always accompanied by a facial image.
Environments Segregated development, staging and production, with independent credentials and databases.
Technical documentation of the API OpenAPI specification maintained in the project repository, available to partners upon request.

Version history

Version Date Changes
1.0 July 29, 2026 Initial publication. Screenshots and videos pending inclusion.