> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.nufi.mx/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear expediente

Endpoint para registrar expedientes y obtener un enlace para que el usuario pueda continuar su flujo de ingreso de documentación.

## Objetivo

Permitir la creación de un expediente inicial y devolver una URL para que el usuario complete la carga de información y documentos.

## Datos requeridos

* `FlowID` (string): Identificador del flujo que define qué se solicita.
* `Company.CompanyName` (string): Nombre de la compañía/solicitud.

## Datos opcionales frecuentes

* `IncludeFlow` (string\[]): Secciones/documentos a incluir explícitamente.
* `ExcludeFlow` (string\[]): Secciones/documentos a excluir.
* `ExternalID` (string): Identificador externo opcional.
* `ClientId` (string): ID de grupo comercial existente.
* `ClientName` (string): Nombre del cliente o grupo comercial.
* `SendEmail` (boolean): Enviar correo al crear el expediente.
* `ContactEmail` (string): Email del contacto (si `SendEmail=true` se usa para notificación inmediata).
* `SendSms` (boolean): Enviar SMS al crear el expediente.
* `ContactPhone` (string): Teléfono nacional de 10 dígitos.
* `Company.CompanyRFC` (string): RFC de la compañía.
* `Data` (object): Información adicional específica del cliente.

## Ejemplo de request

```json theme={null}
{
  "FlowID": "f-001",
  "ClientId": "0001",
  "ClientName": "Grupo Patito",
  "SendEmail": true,
  "ContactEmail": "contacto@patito.com",
  "SendSms": false,
  "ContactPhone": "5512345678",
  "Company": {
    "CompanyName": "Patito S.A. de C.V.",
    "CompanyRFC": "XXX000000XX0"
  },
  "Data": {}
}
```

## Respuesta 200 (éxito)

```json theme={null}
{
  "Code": 200,
  "Status": "success",
  "Message": "Documento creado exitosamente",
  "Data": {
    "DocumentId": "2c87459f-b197-4f59-b41c-1d6b83e33043",
    "Url": "https://kyb.nufi.mx/guest/bElWc3M5azlnd1REemE4Z0pQMVczWFNBc2lvQUQrcjZjR0ZIdnByNG1wVT0",
    "ExternalId": null,
    "ClientId": "0001",
    "ClientName": "Patito S.A. de C.V.",
    "Company": {
      "CompanyId": "0001-0001",
      "CompanyName": "Patito S.A. de C.V.",
      "CompanyRfc": null
    }
  }
}
```

## Respuesta 400 (error de validación)

```json theme={null}
{
  "Code": 400,
  "Status": "bad_request",
  "Message": "Error de validacion",
  "Data": [
    "Ha superado el número máximo de intentos permitidos en la versión de prueba.",
    "El campo FlowId es obligatorio",
    "El FlowId no es válido.",
    "El ClientId no es válido.",
    "Company es obligatorio.",
    "El campo CompanyName es obligatorio"
  ]
}
```


## OpenAPI

````yaml POST /expedientes/nuevo
openapi: 3.0.0
info:
  title: KYB API
  version: 1.0.0
servers:
  - url: https://nufi.azure-api.net/kyb
    description: Productivo
  - url: https://nufi.azure-api.net/kyb/dev
    description: Sandbox
  - url: https://nufi-kyb-services-staging-azurefunction.azurewebsites.net/api
    description: Staging
security: []
paths:
  /expedientes/nuevo:
    post:
      tags:
        - default
      summary: crear expediente
      operationId: createDocument
      parameters:
        - name: NUFI-API-KEY
          in: header
          required: true
          schema:
            type: string
          example: '{{NUFI_API_KEY}}'
        - name: X-Workspace
          in: header
          required: true
          schema:
            type: string
          example: '{{WORKSPACE_ID}}'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - FlowID
                - Company
              properties:
                FlowID:
                  type: string
                  description: >-
                    Identificador del flujo que determina qué documentos e
                    información se solicitarán al usuario.
                IncludeFlow:
                  type: array
                  items:
                    type: string
                  description: Secciones o documentos a incluir explícitamente en el flujo.
                ExcludeFlow:
                  type: array
                  items:
                    type: string
                  description: Secciones o documentos a excluir del flujo.
                ExternalID:
                  type: string
                  description: Identificador externo opcional.
                ClientId:
                  type: string
                  description: Identificador de un grupo comercial existente.
                ClientName:
                  type: string
                  description: Nombre del cliente o grupo comercial.
                SendEmail:
                  type: boolean
                  description: >-
                    Si es true, se envía notificación por email al crear el
                    expediente.
                ContactEmail:
                  type: string
                  format: email
                  description: Correo del contacto al que se enviarán notificaciones.
                SendSms:
                  type: boolean
                  description: Si es true, se envía SMS al número definido en ContactPhone.
                ContactPhone:
                  type: string
                  description: Teléfono nacional de 10 dígitos para notificaciones SMS.
                Company:
                  type: object
                  required:
                    - CompanyName
                  properties:
                    CompanyName:
                      type: string
                      description: Nombre de la compañía (Nombre de la solicitud).
                    CompanyRFC:
                      type: string
                      description: RFC de la compañía.
                Data:
                  type: object
                  description: Información adicional específica del cliente.
            examples:
              default:
                value:
                  FlowID: f-001
                  ClientId: '0001'
                  ClientName: Grupo Patito
                  SendEmail: true
                  ContactEmail: contacto@patito.com
                  SendSms: false
                  ContactPhone: '5512345678'
                  Company:
                    CompanyName: Patito S.A. de C.V.
                    CompanyRFC: XXX000000XX0
                  Data: {}
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    type: integer
                    example: 200
                  Status:
                    type: string
                    example: success
                  Message:
                    type: string
                    example: Documento creado exitosamente
                  Data:
                    type: object
                    properties:
                      DocumentId:
                        type: string
                        example: 99a86b46-1b2c-4137-b03b-feb46155e6ca
                      Url:
                        type: string
                        example: https://kybnufi.azurewebsites.net/...
                      ExternalId:
                        nullable: true
                        example: '1'
                      ClientId:
                        type: string
                        example: '0001'
                      ClientName:
                        type: string
                        example: Grupo Patito
                      Company:
                        type: object
                        properties:
                          CompanyID:
                            type: string
                            example: 0001-20240001
                          CompanyId:
                            type: string
                            example: 0001-0001
                          CompanyName:
                            type: string
                            example: Patito S.A. de C.V.
                          CompanyRFC:
                            type: string
                            example: XXX000000XX0
                          CompanyRfc:
                            nullable: true
                            example: null
              examples:
                success:
                  value:
                    Code: 200
                    Status: success
                    Message: Documento creado exitosamente
                    Data:
                      DocumentId: 2c87459f-b197-4f59-b41c-1d6b83e33043
                      Url: >-
                        https://kyb.nufi.mx/guest/bElWc3M5azlnd1REemE4Z0pQMVczWFNBc2lvQUQrcjZjR0ZIdnByNG1wVT0
                      ExternalId: null
                      ClientId: '0001'
                      ClientName: Patito S.A. de C.V.
                      Company:
                        CompanyId: 0001-0001
                        CompanyName: Patito S.A. de C.V.
                        CompanyRfc: null
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  Code:
                    type: integer
                    example: 400
                  Status:
                    type: string
                    example: bad_request
                  Message:
                    type: string
                    example: Error de validacion
                  Data:
                    type: array
                    items:
                      type: string
              examples:
                validationError:
                  value:
                    Code: 400
                    Status: bad_request
                    Message: Error de validacion
                    Data:
                      - >-
                        Ha superado el número máximo de intentos permitidos en
                        la versión de prueba.
                      - El campo FlowId es obligatorio
                      - El FlowId no es válido.
                      - El ClientId no es válido.
                      - Company es obligatorio.
                      - El campo CompanyName es obligatorio

````