[All schemas](/reference/schemas/) · [API reference](/reference/) · [Data mapping guide](/guides/data-model/)

## Fields

| Field | Required | Type / allowed values |
| --- | --- | --- |
| `clientId` | Yes | string |
| `locationId` | No | string |
| `invoiceResolutionId` | Yes | string |
| `invoicePayload` | Yes | [HealthInvoicePayload](/reference/schemas/health-invoice-payload/) |
| `rips` | No | union |

## JSON definition

The JSON retains the source contract descriptions. Do not translate property names or enum values.

```json
{
  "type": "object",
  "properties": {
    "clientId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^[A-Za-z0-9._:-]+$",
      "description": "Identificador opaco."
    },
    "locationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^[A-Za-z0-9._:-]+$",
      "description": "Identificador opaco."
    },
    "invoiceResolutionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "pattern": "^[A-Za-z0-9._:-]+$",
      "description": "Identificador opaco."
    },
    "invoicePayload": {
      "$ref": "#/components/schemas/HealthInvoicePayload"
    },
    "rips": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/DraftRipsDTO"
        },
        {
          "type": "string",
          "maxLength": 25000000,
          "description": "Texto JSON UTF-8 original. Se conserva sin reformatear. Use esta opción para importar un origen que todavía necesita correcciones; valide antes de enviar."
        },
        {
          "type": "null"
        }
      ],
      "description": "RIPS de la factura (sin numFactura). Se conserva para preparar el paquete fev_rips."
    }
  },
  "required": [
    "clientId",
    "invoiceResolutionId",
    "invoicePayload"
  ],
  "additionalProperties": false
}
```
