# Personas

Las personas pueden ser clientes, proveedores y transportistas. Tienen los siguientes campos en común:

interface Persona {
  /**
   * El número de identificación, depende del tipo de identificación (`idType`)
   * Si es RUC el `id` debe tener 13 caracteres numéricos, si es Cédula debe ser
   * 10 caracteres numéricos y en cualquier otro caso puede tener cualquier
   * tamaño.
   */
  id: string;
  /**
   * El tipo de identificación de la persona.
   */
  idType: TiposDeIdentificacion;
  name: string;
  /**
   * El tipo de persona.
   */
  subjectType: TiposDePersona;
  phone: string;
  email?: string;
  address: string;
  estado: "activo" | "inactivo";
  _movements: Movement[];
}

Consideraciones:

  • No se pueden crear clientes que tengan un id e idType (tipo de identificador) ya registrado.
  • Si el idType es de tipo RUC (04) el id debe tener un tamaño de 13 dígitos, si es cédula (05) debe ser de 10 dígitos.

# Clientes

Son aquellas personas a las que se les pueden emitir facturas.

# Modelo

interface Cliente {
  cellphone?: string;
  /**
   * El id del vendedor
   */
  vendedor?: ObjectId;
}

# Opciones de cliente

Listado de las opciones disponibles para clientes.

GET https://api-test.upconta.com/v3/administrative/clients/get-options

# Ejemplo de respuesta

{
  "TiposDePersona": [
    {
      "id": "01",
      "description": "Persona natural"
    },
    {
      "id": "02",
      "description": "Sociedad"
    }
  ],
  "TiposDeIdentificacion": [
    {
      "id": "04",
      "description": "RUC"
    },
    {
      "id": "05",
      "description": "Cédula"
    },
    {
      "id": "06",
      "description": "Pasaporte"
    },
    {
      "id": "08",
      "description": "Identificación del exterior"
    },
    {
      "id": "09",
      "description": "Placa"
    }
  ]
}

# Obtener clientes

GET https://api-test.upconta.com/v3/administrative/clients

# Ejemplo de respuesta

{
  "page": 1,
  "total": 32,
  "data": [
    {
      "_id": "6197e7ac3ff4f78000b390bba",
      "id": "11224613953",
      "name": "Luis Mendoza",
      "idType": "05"
    },
    {
      "_id": "6197e4e3f83f14c000b51e223",
      "id": "1723267344",
      "name": "Richard Narvaez",
      "idType": "05"
    },
    {
      "_id": "6197c998833f14c000b51e20c",
      "id": "17268334012",
      "idType": "05",
      "name": "Cliente Alejandro"
    }
  ]
}

# Obtener cliente

GET https://api-test.upconta.com/v3/administrative/clients/:id

# Ejemplo de respuesta

{
  "_id": "6197e7ac3ff4f78000b390bba",
  "id": "11224613953",
  "name": "Luis Mendoza",
  "idType": "05"
}

# Crear cliente

POST https://api-test.upconta.com/v3/administrative/clients

# Ejemplo de petición

{
  "id": "1752478451001",
  "idType": "04",
  "name": "Kevin",
  "subjectType": "01"
}

# Ejemplo de respuesta

{
  "_id": "6621712e0dbc2d448f65317e",
  "id": "1752478451001",
  "idType": "04",
  "name": "Kevin",
  "subjectType": "01",
  "direcciones": [],
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador",
      "date": "2024-04-18T19:14:54.477Z"
    }
  ],
  "__v": 0
}

# Editar cliente

PUT https://api-test.upconta.com/v3/administrative/clients/:id

# Ejemplo de petición

{
  "name": "Kevin F"
}

# Ejemplo de respuesta

{
  "_id": "6621712e0dbc2d448f65317e",
  "id": "1752478451001",
  "idType": "04",
  "name": "Kevin F",
  "subjectType": "01",
  "direcciones": [],
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "date": "2024-04-18T19:14:54.477Z",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador"
    },
    {
      "type": "edit",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Editado por desarrollador",
      "date": "2024-04-18T19:20:00.136Z"
    }
  ],
  "__v": 1
}

# Eliminar cliente

DELETE https://api-test.upconta.com/v3/administrative/clients/:id

# Ejemplo de respuesta

{
  "message": "success"
}

# Transportistas

Los transportistas son aquellas personas a las que se les puede emitir guías de remisión.

# Modelo

interface Transportista {
  /**
   * Matrícula(s) vehicular del transportista es obligatoria ingresar
   */
  licensePlate: string[];
}

# Obtener transportistas

GET https://api-test.upconta.com/v3/administrative/transporters

# Ejemplo de respuesta

{
  "page": 1,
  "total": 4,
  "data": [
    {
      "_id": "661fea5a83e43cba328aaa67",
      "id": "1755855858555",
      "idType": "04",
      "name": "Luis Mendoza"
    }
  ]
}

# Obtener transportista

GET https://api-test.upconta.com/v3/administrative/transporters/:id

# Ejemplo de respuesta

{
  "_id": "662174ee0dbc2d448f653356",
  "id": "1722430764004",
  "idType": "04",
  "name": "Carlos Matinez"
}

# Crear transportista

POST https://api-test.upconta.com/v3/administrative/transporters

# Ejemplo de petición

{
  "id": "1722430764004",
  "idType": "04",
  "name": "Carlos Matinez",
  "subjectType": "01",
  "licensePlate": ["PIR-12z4"]
}

# Ejemplo de respuesta

{
  "licensePlate": ["PIR-12z4"],
  "_id": "662174ee0dbc2d448f653356",
  "id": "1722430764004",
  "idType": "04",
  "name": "Carlos Matinez",
  "direcciones": [],
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador",
      "date": "2024-04-18T19:30:54.323Z"
    }
  ],
  "__v": 0
}

# Editar transportista

PUT https://api-test.upconta.com/v3/administrative/transporters/:id

# Ejemplo de petición

{
  "licensePlate": ["IN-1204"]
}

# Ejemplo de respuesta

{
  "licensePlate": ["IN-1204"],
  "_id": "662174ee0dbc2d448f653356",
  "id": "1722430764004",
  "idType": "04",
  "name": "Carlos Matinez",
  "direcciones": [],
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "date": "2024-04-18T19:30:54.323Z",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador"
    },
    {
      "type": "edit",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Editado por desarrollador",
      "date": "2024-04-18T19:33:14.901Z"
    }
  ],
  "__v": 2
}

# Eliminar transportista

DELETE https://api-test.upconta.com/v3/administrative/transporters/:id

# Ejemplo de Respuesta

{
  "message": "success"
}

# Proveedores

Los proveedores son aquellas personas a las que se le pueden emitir facturas de reembolso.

# Modelo

interface Proveedor {
  // sin mas campos
}

# Obtener proveedores

GET https://api-test.upconta.com/v3/administrative/providers

# Ejemplo de respuesta

{
  "page": 1,
  "total": 33,
  "data": [
    {
      "_id": "65de02914e06887057db8ed5",
      "id": "1713130157001",
      "idType": "04",
      "name": "Maria"
    },
    {
      "_id": "65de02904e06887057db8ec4",
      "id": "0990022423001",
      "idType": "04",
      "name": "Pedro"
    }
  ]
}

# Obtener proveedor

GET https://api-test.upconta.com/v3/administrative/providers/:id

# Ejemplo de respuesta

{
  "_id": "662177060dbc2d448f653375",
  "id": "1234578961001",
  "idType": "04",
  "name": "Carlos"
}

# Crear proveedor

POST https://api-test.upconta.com/v3/administrative/provider

# Ejemplo de petición

{
  "id": "1234578961001",
  "idType": "04",
  "name": "Carlos",
  "subjectType": "01"
}

# Ejemplo de respuesta

{
  "_id": "662177060dbc2d448f653375",
  "id": "1234578961001",
  "idType": "04",
  "name": "Carlos",
  "subjectType": "01",
  "direcciones": [],
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador",
      "date": "2024-04-18T19:39:50.438Z"
    }
  ],
  "__v": 0
}

# Editar proveedor

PUT https://api-test.upconta.com/v3/administrative/providers/:id

# Ejemplo de petición

{
  "name": "Carlos F"
}

# Ejemplo de respuesta

{
  "_id": "662177060dbc2d448f653375",
  "id": "1234578961001",
  "idType": "04",
  "name": "Carlos F",
  "subjectType": "01",
  "direcciones": [],
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "date": "2024-04-18T19:39:50.438Z",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador"
    },
    {
      "type": "edit",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Editado por desarrollador",
      "date": "2024-04-18T19:41:16.782Z"
    }
  ],
  "__v": 1
}

# Eliminar proveedor

DELETE https://api-test.upconta.com/v3/administrative/providers/:id

# Ejemplo de respuesta

{
  "message": "success"
}

# Vendedores

Los vendedores de la empresa. Se relacionan con los clientes y las facturas.

# Modelo

interface Vendedor {
  codigo: string;
  name: string;
  correo?: string;
  telefono?: string;
  estado: "activo" | "inactivo";
  _movements: Movement[];
}

# Obtener vendedor

GET https://api-test.upconta.com/v3/administrative/sellers

# Ejemplo de respuesta

{
  "page": 1,
  "total": 4,
  "data": [
    {
      "_id": "661fed8783e43cba328aaa82",
      "name": "Carlos"
    },
    {
      "_id": "661fed0083e43cba328aaa7b",
      "name": "Marco"
    },
    {
      "_id": "638668b4f0f0c17b39202438",
      "name": "Pedro"
    }
  ]
}

# Obtener vendedor

GET https://api-test.upconta.com/v3/administrative/sellers/:id

# Ejemplo de respuesta

{
  "_id": "661fedfe83e43cba328aaa89",
  "name": "Kevin F"
}

# Crear vendedor

POST https://api-test.upconta.com/v3/administrative/sellers

# Ejemplo de petición

{
  "codigo": "1716370232001",
  "name": "Kevin F",
  "telefono": "099999999"
}

# Ejemplo de respuesta

{
  "codigo": "1716370232001",
  "name": "Kevin F",
  "telefono": "099999999",
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador",
      "date": "2024-04-17T15:42:54.794Z"
    }
  ],
  "_id": "661fedfe83e43cba328aaa89",
  "__v": 0
}

# Editar vendedor

PUT https://api-test.upconta.com/v3/administrative/sellers/:id

# Ejemplo de petición

{
  "name": "Kevin"
}

# Ejemplo de respuesta

{
  "codigo": "1716370232001",
  "name": "Kevin",
  "telefono": "099999999",
  "estado": "activo",
  "_movements": [
    {
      "type": "created",
      "date": "2024-04-17T15:42:54.794Z",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Creado por desarrollador"
    },
    {
      "type": "edit",
      "user": "608adf6a375dfd83381ba163",
      "nota": "Editado por desarrollador",
      "date": "2024-04-17T15:48:36.820Z"
    }
  ],
  "_id": "661fedfe83e43cba328aaa89",
  "__v": 1
}

# Eliminar vendedor

DELETE https://api-test.upconta.com/v3/administrative/sellers/:id

# Ejemplo de Respuesta

{
  "message": "success"
}