Free Movement Account Draft - Legal Entity
The Draft Checking Legal Person flow allows creating an account opening request in two steps:
- POST: Creates a draft (rough) with maximum flexibility - accepts from minimal data to complete data
- PATCH: Submits the draft for processing, validating completeness of all mandatory fields
Important: This flow is being prepared for integration with Monte Bravo. The field division between POST and PATCH will be adjusted after alignment with Monte Bravo on which data will be available at each moment of the process.
Create Legal Entity Account Draft
Request
/v2/account_request/draft_checking_legal_person Description
This endpoint creates a draft for Legal Entity account opening. The POST accepts from minimal data to complete data, offering maximum flexibility.
Flexibility Strategy
- Minimal data: CNPJ + Name + Person type
- Partial data: Add fields as available
- Complete data: Send everything at once (less common)
Example 1: MINIMAL Payload (only required)
Request Body
{
"account_owner": {
"company_document_number": "46073462000130",
"name": "EMPRESA EXEMPLO TECNOLOGIA LTDA",
"person_type": "legal"
}
}
{
"request_control_key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"account_owner": {
"company_document_number": "46073462000130",
"name": "EMPRESA EXEMPLO TECNOLOGIA LTDA",
"person_type": "legal"
}
}
Behavior: If the same request_control_key is used again, returns error 409 (Conflict) instead of creating a new draft.
Example 2: COMPLETE Payload (all data at once)
Request Body
{
"account_owner": {
"company_document_number": "46073462000130",
"name": "EMPRESA EXEMPLO TECNOLOGIA LTDA",
"person_type": "legal",
"email": "empresa@exemplo.com.br",
"phone": {
"country_code": "055",
"area_code": "11",
"number": "999999999"
},
"trading_name": "Empresa Exemplo",
"company_type": "LTDA",
"foundation_date": "2010-01-15",
"cnae_code": "6209-1/00",
"company_statute": "92c93e9e-b249-46b7-8c2e-95d4955a3c39",
"monthly_revenue": 150000.00,
"address": {
"street": "Av. Brigadeiro Faria Lima",
"state": "SP",
"city": "São Paulo",
"neighborhood": "Jardim Paulistano",
"number": "2391",
"postal_code": "01452905",
"complement": "Conjunto 102"
},
"company_representatives": [
{
"name": "João Carlos da Silva",
"email": "joao.silva@exemplo.com.br",
"birth_date": "1985-03-20",
"individual_document_number": "12345678901",
"is_pep": false,
"final_beneficiary": true,
"mother_name": "Maria da Silva",
"nationality": "brasileira",
"person_type": "natural",
"phone": {
"country_code": "055",
"area_code": "11",
"number": "988888888"
},
"address": {
"street": "Rua das Flores",
"state": "SP",
"city": "São Paulo",
"neighborhood": "Jardins",
"number": "123",
"postal_code": "01310100",
"complement": "Apto 45"
},
"representative_relationship": "ceo",
"gender": "male",
"marital_status": "married",
"documents": {
"cnh": {
"ocr_key": "7a73be1a-0b66-4c0a-932a-1d1d02efdc4c"
}
}
}
]
}
}
Response
Response Body
{
"account_request_key": "abc123-def456-...",
"account_request_status": "draft",
"account_info": {
"account_number": "1638634",
"account_digit": "3",
"account_branch": "0001"
}
}
The account_request_key field must be stored and will be used to submit the draft via PATCH.
Request Body Params
| Field | Type | Description | Characters |
|---|---|---|---|
request_control_key | string | UUID to ensure idempotency (36 characters) | 36 |
reserved_account_key | string | UUID of previously reserved account (36 characters) | 36 |
account_owner * | object | Account holder information (Legal Entity) | Object account_owner |
Object account_owner (POST)
| Field | Type | Description | Characters |
|---|---|---|---|
company_document_number * | string | Company CNPJ (14 digits, numbers only) | 14 |
name * | string | Company legal name | 100 |
person_type * | enum | Person type (always "legal") | Enums person_type |
email | string | Company email (valid email format) | 254 |
phone | object | Company phone | Object phone |
trading_name | string | Trade name | 200 |
company_type | enum | Company type | Enums company_type |
foundation_date | string | Foundation date (format: YYYY-MM-DD) | 10 |
cnae_code | string | CNAE activity code | 9 |
company_statute | string | Company statute UUID (UUID format) | 36 |
monthly_revenue | number | Monthly revenue | - |
address | object | Complete company address | Object address |
company_representatives | array | List of legal representatives (minimum 1 item if sent) | Object company_representatives |
Only 3 fields are required in POST:
company_document_numbernameperson_type
All other fields are optional and can be sent according to availability.
If company_representatives is sent in POST, it must have at least 1 item (minItems: 1). Each representative must have all required fields (see PATCH section). The documents field within each representative is optional in POST.
Submit Legal Entity Account Draft
Request
/v2/account_request/{account_request_key}/draft_checking_legal_person Description
This endpoint submits the draft for processing. The PATCH validates completeness - all required fields must be present in the PATCH payload.