Saltar a contenido

Registrar Receta

Registra la receta en Asystir (repositorio) y, de ser requerido, notifica al Ministerio de Salud según normativa. Normalmente se invoca después de generar el CUIR.

Endpoint POST /v1/recetas/registrar

Este endpoint es idempotente si se incluye el header Idempotency-Key. Recomendamos usar un UUID generado por el cliente para evitar duplicados en reintentos.

Encabezados recomendados

Header Obligatorio Descripción
X-API-Key Autenticación
X-API-Secret Autenticación
Content-Type application/json
Idempotency-Key Opc. UUID para idempotencia (recomendado)

Body (JSON) — Campos

Campo Tipo Obligatorio Ejemplo Descripción
documento_paciente string "32123456" DNI del paciente.
matricula_profesional string "43822" Matrícula del profesional.
refeps_id string "541034610959" ID REFEPS / SISA del profesional.
locacion string "Hospital Central - Sucursal 1" Lugar/centro emisor.
cuir string "102500420201010000123456789012345678901" CUIR válido.
id_de_receta string "REC-2025-0001" ID interno de receta (opcional).
nombre_medicamento string "Paracetamol 500 mg" Opcional (puede venir del vademécum).
fecha_creacion string (ISO 8601) "2025-08-21T14:30:00-03:00" Fecha y hora de emisión.
items array Sí (cuando corresponde) [{ "nombre":"Paracetamol", "cantidad":1 }] Lista de ítems prescritos.

Ejemplo - curl

curl -X POST "https://api.asystir.com/v1/recetas/registrar" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: TU_API_KEY" \
  -H "X-API-Secret: TU_API_SECRET" \
  -H "Idempotency-Key: 7f6b8a2e-3b5f-4d1a-9f7c-123456789abc" \
  -d '{
    "documento_paciente":"32123456",
    "matricula_profesional":"43822",
    "refeps_id":"541034610959",
    "locacion":"Hospital Central - Sucursal 1",
    "cuir":"102500420201010000123456789012345678901",
    "id_de_receta":"REC-2025-0001",
    "nombre_medicamento":"Paracetamol 500 mg",
    "fecha_creacion":"2025-08-21T14:30:00-03:00",
    "items":[{"nombre":"Paracetamol 500 mg","cantidad":1}]
  }'

Ejemplo - JavaScript (fetch)

const payload = {
  documento_paciente: "32123456",
  matricula_profesional: "43822",
  refeps_id: "541034610959",
  locacion: "Hospital Central - Sucursal 1",
  cuir: "102500420201010000123456789012345678901",
  id_de_receta: "REC-2025-0001",
  nombre_medicamento: "Paracetamol 500 mg",
  fecha_creacion: "2025-08-21T14:30:00-03:00",
  items: [{ nombre: "Paracetamol 500 mg", cantidad: 1 }]
};

await fetch("https://api.asystir.com/v1/recetas/registrar", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": "TU_API_KEY",
    "X-API-Secret": "TU_API_SECRET",
    "Idempotency-Key": "7f6b8a2e-3b5f-4d1a-9f7c-123456789abc"
  },
  body: JSON.stringify(payload)
}).then(r => r.json()).then(console.log);

Ejemplo - Visual Basic .NET

Dim client As New HttpClient()
client.DefaultRequestHeaders.Add("X-API-Key", "TU_API_KEY")
client.DefaultRequestHeaders.Add("X-API-Secret", "TU_API_SECRET")
client.DefaultRequestHeaders.Add("Idempotency-Key", "7f6b8a2e-3b5f-4d1a-9f7c-123456789abc")

Dim json = "{
  ""documento_paciente"":""32123456"",
  ""matricula_profesional"":""43822"",
  ""refeps_id"":""541034610959"",
  ""locacion"":""Hospital Central - Sucursal 1"",
  ""cuir"":""102500420201010000123456789012345678901"",
  ""id_de_receta"":""REC-2025-0001"",
  ""fecha_creacion"":""2025-08-21T14:30:00-03:00"",
  ""items"":[{""nombre"":""Paracetamol 500 mg"",""cantidad"":1}]
}"
Dim content = New StringContent(json, Encoding.UTF8, "application/json")
Dim resp = Await client.PostAsync("https://api.asystir.com/v1/recetas/registrar", content)
Console.WriteLine(Await resp.Content.ReadAsStringAsync())

Respuesta de éxito (201)

{
  "success": true,
  "data": {
    "id_transaccion": "D846FFE8284155D-000000000000007E",
    "estado": "PENDING",
    "mensaje": "Transacción iniciada. Pendiente de confirmación del Ministerio.",
    "cuir": "102500420201010000123456789012345678901",
    "id_de_receta": "REC-2025-0001"
  }
}

Errores y estados posibles

  • 400 Bad Request — Campos obligatorios faltantes o formato inválido.
  • 409 Conflict — Detección de duplicado con la misma Idempotency-Key.
  • 401/403 — Autenticación / permisos.
  • 422 Unprocessable Entity — Validación semántica (p. ej. matricula_profesional no habilitada).
  • 500 — Error interno o problemas de conexión con el Ministerio.

Notas

  • Recomendamos usar Idempotency-Key en reintentos de red para evitar registros duplicados.
  • El campo estado puede ser PENDING, FAILED, COMPLETED. Consulte listarecetas o el endpoint de transacciones (si se implementa) para seguimiento.