invoices
requerido
|
array
|
Lista de facturas a procesar. Cada elemento se procesa de forma independiente con los campos descritos abajo.
|
partner_vat
requerido
|
string
|
Identificación del cliente (res.partner, campo vat). Requerido salvo que se envíe el objeto customer. Si el cliente no existe y la vertical salud está instalada, se intenta crear desde el maestro de pacientes; si no, responde R002.
|
customer
|
object
|
Alternativa a partner_vat: crea el cliente si no existe o actualiza sus datos de contacto (nunca los legales: nombre, identificación, tipo de documento) si ya existe.
|
vat
requerido
|
string
|
Identificación del cliente.
|
name
requerido
|
string
|
Razón social o nombre completo.
|
partner_type
requerido
|
string
|
N = persona natural, J = jurídica.
Valores:
N
J
|
document_type
requerido
|
string
|
Código interno o código DIAN del tipo de documento.
|
address
|
string
|
Dirección (actualiza street si el cliente existe).
|
city
|
string
|
Código DANE de la ciudad (res.country.city, campo code).
|
email
|
string
|
Correo electrónico.
|
phone
|
string
|
Teléfono (se asigna también como móvil al crear).
|
first_name
|
string
|
Primer nombre (solo creación de persona natural). Aplican también other_name, first_lastname y other_lastname.
|
journal_code
requerido
|
string
|
Código del diario de ventas (account.journal, campo code). Solo tipologías sale, sale_add o sale_return; otro tipo responde R003.
|
type
|
string
|
Tipo de documento. Para out_refund (nota crédito) son obligatorios causal y refund_invoice.
Valores:
out_invoice
out_refund
Default: 'out_invoice'
|
date_invoice
|
date
|
Fecha de la factura (YYYY-MM-DD).
Default: fecha actual
|
number
|
string
|
Número manual de factura. Si ya existe responde R005.
|
transaction_id
|
string
|
Identificador de idempotencia. Si ya existe una factura con esta transacción, se devuelve esa factura con el mensaje 'La transaccion X ya existe' sin crear duplicados.
|
customer_oc
|
string
|
Orden de compra del cliente.
Default: 'NA'
|
customer_ref
|
string
|
Referencia externa. Según la política api_invoice_reference_control (unique/available), si ya existe una factura con esta referencia se devuelve la existente en lugar de crear otra.
Default: 'NA'
|
user_vat
|
string
|
Identificación del ejecutivo de ventas (res.users por vat del partner). Si se omite se usa el vendedor del cliente, o el del contrato de la primera línea según la política api_invoice_user_source. El ejecutivo debe tener parametrización analítica (R004).
Default: '00005'
|
create_uid
|
string
|
Identificación del usuario creador (res.users por vat del partner).
|
payment_term
|
string
|
Nombre del plazo de pago (account.payment.term). Default: plazo configurado en el cliente.
|
currency
|
string
|
Código de moneda (res.currency, campo name, ej. USD). Solo para facturas en moneda extranjera.
|
trm
|
number
|
Tasa de cambio para facturas en moneda extranjera.
|
comment
|
string
|
Observaciones de la factura.
|
ref2
|
string
|
Referencia adicional 2.
|
ref3
|
string
|
Referencia adicional 3.
|
company
|
integer
|
Id de compañía destino. Con valor distinto de 1 activa la reclasificación intercompañía de anticipos (requiere cuentas vinculadas 13/28 en políticas, R004 si faltan).
Default: 1
|
ei_payment_method
|
array
|
Métodos de pago DIAN para facturación electrónica. Cada código se valida contra los métodos habilitados de la compañía (R003).
Default: ['30']
|
note_type
|
string
|
Tipo de nota crédito según los tipos habilitados de facturación electrónica. Default '1' cuando se envía refund_invoice.
|
causal
|
string
|
Causal de devolución (invoice.return.causal, por nombre). Obligatorio para out_refund (R001).
|
refund_invoice
|
string
|
Número de la factura a acreditar (account.invoice, campo number). Obligatorio para out_refund (R001).
|
advances
|
array
|
Referencias de asientos de anticipo a cruzar (nombre o ref del account.move). Cada referencia debe existir en la cuenta de anticipos del cliente (R002).
|
advance_amount
|
number
|
Valor del anticipo a cruzar.
|
advance_cross
|
boolean
|
Cruza automáticamente los anticipos contra la factura vía diario de cruce (política api_advance_cross_journal, R004 si falta).
Default: según configuración de la compañía
|
aiu_type
|
string
|
Modalidad AIU. Al enviarlo aplican también tax_aiu_id (código de impuesto), rate_admin, rate_impre y rate_profi (porcentajes de administración, imprevistos y utilidad).
Valores:
subtotal
base_aiu
utility
|
location
|
string
|
Código de ubicación origen (stock.location). Junto con operation_type y la política api_invoice_generate_picking, genera automáticamente la salida de inventario de los productos almacenables sin trazabilidad.
|
operation_type
|
string
|
Código del tipo de operación de inventario (stock.picking.type) para el picking automático.
|
analytic_dist
|
boolean
|
Activa distribución analítica por RIPS (el valor de cada RIPS distribuye el ingreso). También puede forzarse por política de compañía.
|
type_health
|
string
|
Facturación de salud: mono (un paciente, requiere patient_vat) o multi (paciente por RIPS). Con valor distinto de none son obligatorios date_start y date_stop, y cada línea debe traer sus rips.
Valores:
none
mono
multi
Default: 'none'
|
patient_vat
|
string
|
Identificación del paciente (obligatorio si type_health = mono).
|
private
|
boolean
|
Facturación particular: si el paciente no existe se crea automáticamente desde los datos del tercero.
|
health_segment
|
string
|
Código del segmento de salud (health.partner.segment). Obligatorio si la política api_health_segment_required está activa; define la cuenta por cobrar.
|
copay
|
number
|
Valor de control: si es distinto de 0, el total de pagos compartidos recibidos en los RIPS (copagos, cuotas, recuperación, anticipos, voluntarios) debe coincidir con este valor (R003).
|
date_start
|
date
|
Inicio del periodo de atención (obligatorio si type_health ≠ none).
|
date_stop
|
date
|
Fin del periodo de atención (obligatorio si type_health ≠ none).
|
validate_qty
|
boolean
|
Exige que la cantidad de RIPS de cada línea coincida con la cantidad facturada (R003).
Default: true
|
capitation
|
boolean
|
Marca la factura como capitación. capitation_invoice permite asociar la factura de capitación origen (debe ser de capitación, R003).
|
service_order_number
|
string
|
Número de orden de servicio asociada.
|
health_advance_type
|
string
|
Tratamiento del anticipo en salud.
Valores:
recaudo
reporte
|
health_accreditation_type
|
string
|
Tipo de acreditación en salud.
Valores:
pos
snum
|
copayment_advance
|
string
|
Nombre del asiento de copago anticipado a cruzar. Incompatible con copayment_receipts (R003).
|
lines
requerido
|
array
|
Líneas de la factura (R001 si está vacío).
|
product_ref
requerido
|
string
|
Referencia interna del producto (product.product, campo default_code). Requerido salvo que se envíe el objeto product.
|
product
|
object
|
Alternativa a product_ref: si el producto existe (por default_code) se usa; si no, se crea. Campos: name*, default_code*, type_tax* (Gravado/Excluido/Exento — Gravado exige tax_iva), sale_ok, purchase_ok, asset_ok, product_type (product/consu/service), tracking, lst_price, barcode, category, line_analytic, uom (código EI, default 94), manufacturer y health_cups_code (homologación CUPS en salud). Categoría y línea analítica caen a las políticas api_product_* de la compañía (R004 si faltan).
|
quantity
requerido
|
integer
|
Cantidad facturada.
|
price_unit
requerido
|
number
|
Precio unitario antes de impuestos.
|
discount
|
number
|
Porcentaje de descuento de la línea.
|
description
|
string
|
Descripción de la línea. Default: nombre del producto (en salud, antecedido por el código CUPS).
|
uom_code
|
string
|
Código EI de la unidad de medida (uom.uom, campo ei_code; 'U' equivale a '94'). Default: UdM del producto.
|
contract
|
string
|
Número de contrato del cliente. Si no existe, el ERP lo crea con la parametrización comercial de la compañía; si se omite, usa (o crea) el contrato por defecto del cliente.
|
analytic
|
string
|
Código del centro analítico de la línea (account.analytic). Default: analítica del ejecutivo de ventas.
|
model
|
string
|
Modelo de contrato para homologación analítica (res.contract.model, por nombre). Con uen y sucursal resuelve la analítica vía account.analytic.homologation (R004 si no hay homologación).
|
uen
|
string
|
UEN para homologación analítica (res.contract.uen, por nombre).
|
sucursal
|
string
|
Código de sucursal analítica para homologación (account.analytic.sucursal).
|
analytic_location_id
|
string
|
Sede/ubicación analítica usada en la búsqueda de homologación.
|
taxes
|
array
|
Códigos de impuestos de venta (account.tax, campo code) para forzar el mapeo manual de la línea. Si se omite, aplican los impuestos configurados en el producto.
|
rips
|
array
|
Detalle RIPS por unidad facturada (obligatorio si type_health ≠ none; debe haber un RIPS por unidad salvo validate_qty=false).
|
cups
requerido
|
string
|
Código CUPS del servicio (health.cups). Acepta códigos internos homologados vía health.cups.homologation.
|
patient_vat
requerido
|
string
|
Identificación del paciente de la atención. Con private=true el paciente se crea si no existe; de lo contrario R002.
|
type_user
|
string
|
Tipo de usuario RIPS (selection health.rips).
Default: '01'
|
type_payment
|
string
|
Modalidad de pago (01 a 04).
Default: '01'
|
type_plan
|
string
|
Tipo de plan/cobertura (02 a 17).
Default: '01'
|
sucursal
|
string
|
Código analítico de la atención (requerido si analytic_dist).
|
date
|
date
|
Fecha de la atención.
|
amount
|
number
|
Valor del servicio (con analytic_dist=true y amount=0 toma el price_unit).
|
copay
|
number
|
Copago recibido. Aplican también health_fee (cuota moderadora), health_recovery (cuota de recuperación), health_advance (anticipo) y health_voluntary (pago voluntario).
|
health_num_contract
|
string
|
Número de contrato de salud. En modalidad mono puede resolverse automáticamente desde las líneas de pago del contrato.
|
health_num_authorization
|
string
|
Número de autorización. Aplican también health_num_policy, health_noinvoice_contract(+_reason), service_order y cpm_invoice (factura del pago moderador).
|
statements
|
array
|
Recaudos inmediatos contra la factura: por cada elemento se crea y contabiliza un pago. El valor no puede exceder el saldo de la factura (R003).
|
journal_code
requerido
|
string
|
Código del diario de pago, tipo banco o efectivo (R002 si no existe).
|
amount
requerido
|
number
|
Valor del recaudo (> 0).
|
ref_payment
|
string
|
Referencia del pago.
|
taxes
|
array
|
Impuestos globales manuales de la factura (adicionales a los de línea).
|
tax_code
requerido
|
string
|
Código EI del impuesto de venta (account.tax, campo ei_code).
|
tax_base
requerido
|
number
|
Base gravable.
|
tax_amount
requerido
|
number
|
Valor del impuesto.
|
copayment_receipts
|
array
|
Copagos recibidos en la factura (solo salud, cuando la factura incluye el producto de copago). El total debe coincidir con el total de la factura (R003). Incompatible con copayment_advance.
|
payment_journal
requerido
|
string
|
Código del diario de pago (debe tener cuenta débito configurada, R004).
|
payment_ref
requerido
|
string
|
Referencia del recibo.
|
payment_amount
requerido
|
number
|
Valor recibido.
|