{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/facture-ar/json-schema/facture-ar-invoice-request-schema.json",
  "title": "InvoiceRequest",
  "description": "Una factura. Todos los campos son opcionales salvo el importe: enviá impTotal (o amount, deprecado). Si no enviás cuitId ni cuit se usa el CUIT por defecto de la cuenta; lo que no envíes se completa con los valores por defecto del CUIT.",
  "x-generated": "2026-11-07",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/facture-ar-openapi.json#/components/schemas/InvoiceRequest",
  "type": "object",
  "properties": {
    "cuitId": {
      "type": "string",
      "description": "ID del CUIT emisor. Alternativa a cuit"
    },
    "cuit": {
      "type": "string",
      "description": "Número de CUIT emisor, con o sin guiones. Alternativa a cuitId"
    },
    "invoiceType": {
      "type": "integer",
      "description": "Tipo de comprobante (código de ARCA, por ejemplo 1 Factura A, 6 Factura B, 11 Factura C). Por defecto, el del CUIT; si no tiene, 11 para monotributistas y 6 para responsables inscriptos"
    },
    "ptoVta": {
      "type": "integer",
      "description": "Punto de venta. Por defecto, el del CUIT (o 1)"
    },
    "concepto": {
      "type": "integer",
      "enum": [
        1,
        2,
        3
      ],
      "description": "Concepto: 1 productos, 2 servicios, 3 productos y servicios. Por defecto, el del CUIT (o 2 para monotributistas y 1 para el resto)"
    },
    "docTipo": {
      "type": "integer",
      "default": 99,
      "description": "Tipo de documento del receptor (código de ARCA: 80 CUIT, 86 CUIL, 96 DNI, 99 consumidor final)"
    },
    "docNro": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Número de documento del receptor (0 para consumidor final)"
    },
    "condicionIVAReceptorId": {
      "type": "integer",
      "enum": [
        1,
        4,
        5,
        6,
        7,
        8,
        9,
        10,
        13,
        15,
        16
      ],
      "description": "Condición frente al IVA del receptor (obligatoria para ARCA desde el 1/12/2026). Si no se envía: 5 (Consumidor Final) para receptores sin identificar o con DNI; para CUIT/CUIL se toma del padrón de ARCA, y si no se puede determinar la API responde 400. Debe corresponder a la clase del comprobante (A/M: 1, 6, 13, 16; B: 4, 5, 7, 8, 9, 10, 15; C: todas). Ver /es/guides/condicion-iva-receptor."
    },
    "monId": {
      "type": "string",
      "default": "PES",
      "description": "Moneda (código de ARCA, por ejemplo PES o DOL)"
    },
    "monCotiz": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 1,
      "description": "Cotización de la moneda"
    },
    "description": {
      "type": "string",
      "default": "Venta de servicios",
      "description": "Descripción de la factura"
    },
    "clientName": {
      "type": "string",
      "maxLength": 200,
      "description": "Nombre o razón social del receptor, impreso en la factura. Si el receptor tiene CUIT y no se envía, se toma del padrón de ARCA"
    },
    "clientAddress": {
      "type": "string",
      "maxLength": 250,
      "description": "Domicilio del receptor, impreso en la factura"
    },
    "condicionVenta": {
      "type": "string",
      "enum": [
        "contado",
        "cuenta_corriente",
        "tarjeta_debito",
        "tarjeta_credito",
        "transferencia",
        "cheque",
        "otra"
      ],
      "description": "Condición de venta impresa en la factura (RG 1415, Anexo II, B). ARCA no la recibe"
    },
    "emailTo": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "email"
      },
      "minItems": 1,
      "maxItems": 5,
      "description": "Direcciones a las que se manda el PDF de la factura apenas ARCA la autoriza. Mismos límites que POST /invoices/{invoiceId}/email"
    },
    "fchServDesde": {
      "type": "string",
      "description": "Inicio del período facturado (servicios). Fecha en formato YYYYMMDD"
    },
    "fchServHasta": {
      "type": "string",
      "description": "Fin del período facturado (servicios). Fecha en formato YYYYMMDD"
    },
    "fchVtoPago": {
      "type": "string",
      "description": "Vencimiento del pago (servicios). Fecha en formato YYYYMMDD"
    },
    "cbteFch": {
      "type": "string",
      "pattern": "^[0-9]{8}$",
      "description": "Fecha del comprobante. Fecha en formato YYYYMMDD. Por defecto, hoy"
    },
    "impNeto": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000,
      "description": "Importe neto gravado"
    },
    "impTotal": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000,
      "description": "Importe total. Requerido si no enviás amount"
    },
    "impTotConc": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Importe neto no gravado"
    },
    "impOpEx": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Importe exento"
    },
    "impTrib": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Suma de los tributos"
    },
    "impIVA": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Suma del IVA"
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000,
      "deprecated": true,
      "description": "Importe total. Deprecado: usá impTotal"
    },
    "cbtesAsoc": {
      "type": "array",
      "description": "Comprobantes asociados (notas de crédito y débito)",
      "items": {
        "type": "object",
        "required": [
          "tipo",
          "ptoVta",
          "nro"
        ],
        "properties": {
          "tipo": {
            "type": "integer",
            "description": "Tipo de comprobante asociado"
          },
          "ptoVta": {
            "type": "integer",
            "description": "Punto de venta del comprobante asociado"
          },
          "nro": {
            "type": "integer",
            "description": "Número del comprobante asociado"
          },
          "cuit": {
            "type": "string",
            "description": "CUIT emisor del comprobante asociado"
          },
          "cbteFch": {
            "type": "string",
            "description": "Fecha del comprobante asociado. Fecha en formato YYYYMMDD"
          }
        }
      }
    },
    "tributos": {
      "type": "array",
      "description": "Tributos (percepciones, impuestos internos, etc.)",
      "items": {
        "type": "object",
        "required": [
          "id",
          "desc",
          "baseImp",
          "alic",
          "importe"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Código del tributo (FEPARAMGETTIPOSTRIBUTOS)"
          },
          "desc": {
            "type": "string",
            "description": "Descripción del tributo"
          },
          "baseImp": {
            "type": "number",
            "minimum": 0,
            "description": "Base imponible"
          },
          "alic": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Alícuota en porcentaje"
          },
          "importe": {
            "type": "number",
            "minimum": 0,
            "description": "Importe del tributo"
          }
        }
      }
    },
    "iva": {
      "type": "array",
      "description": "Alícuotas de IVA",
      "items": {
        "type": "object",
        "required": [
          "id",
          "baseImp",
          "importe"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Código de la alícuota (FEPARAMGETTIPOSIVA, por ejemplo 5 = 21%)"
          },
          "baseImp": {
            "type": "number",
            "minimum": 0,
            "description": "Base imponible"
          },
          "importe": {
            "type": "number",
            "minimum": 0,
            "description": "Importe de IVA"
          }
        }
      }
    },
    "opcionales": {
      "type": "array",
      "description": "Datos opcionales de ARCA",
      "items": {
        "type": "object",
        "required": [
          "id",
          "valor"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Código del opcional"
          },
          "valor": {
            "type": "string",
            "description": "Valor"
          }
        }
      }
    },
    "compradores": {
      "type": "array",
      "description": "Compradores (operaciones con varios compradores)",
      "items": {
        "type": "object",
        "required": [
          "docTipo",
          "docNro",
          "porcentaje"
        ],
        "properties": {
          "docTipo": {
            "type": "integer",
            "description": "Tipo de documento del comprador"
          },
          "docNro": {
            "type": "integer",
            "description": "Número de documento del comprador"
          },
          "porcentaje": {
            "type": "number",
            "description": "Porcentaje de titularidad"
          }
        }
      }
    },
    "periodoAsoc": {
      "type": "object",
      "description": "Período asociado (notas de crédito y débito)",
      "required": [
        "fchDesde",
        "fchHasta"
      ],
      "properties": {
        "fchDesde": {
          "type": "string",
          "description": "Desde. Fecha en formato YYYYMMDD"
        },
        "fchHasta": {
          "type": "string",
          "description": "Hasta. Fecha en formato YYYYMMDD"
        }
      }
    },
    "actividades": {
      "type": "array",
      "description": "Actividades del emisor",
      "items": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Código de actividad"
          }
        }
      }
    },
    "items": {
      "type": "array",
      "maxItems": 500,
      "description": "Ítems de la factura (se muestran en el PDF)",
      "items": {
        "type": "object",
        "required": [
          "description",
          "quantity",
          "unitPrice",
          "discount",
          "ivaRate",
          "subtotal"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Descripción del ítem"
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Cantidad"
          },
          "unitPrice": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Precio unitario"
          },
          "discount": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Descuento en porcentaje"
          },
          "ivaRate": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Alícuota de IVA en porcentaje"
          },
          "subtotal": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Subtotal del ítem"
          }
        }
      }
    }
  }
}