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 |
Sí | Autenticación |
X-API-Secret |
Sí | Autenticación |
Content-Type |
Sí | application/json |
Idempotency-Key |
Opc. | UUID para idempotencia (recomendado) |
Body (JSON) — Campos
| Campo | Tipo | Obligatorio | Ejemplo | Descripción |
|---|---|---|---|---|
| documento_paciente | string | Sí | "32123456" |
DNI del paciente. |
| matricula_profesional | string | Sí | "43822" |
Matrícula del profesional. |
| refeps_id | string | Sí | "541034610959" |
ID REFEPS / SISA del profesional. |
| locacion | string | Sí | "Hospital Central - Sucursal 1" |
Lugar/centro emisor. |
| cuir | string | Sí | "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) | Sí | "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 mismaIdempotency-Key.401/403— Autenticación / permisos.422 Unprocessable Entity— Validación semántica (p. ej.matricula_profesionalno habilitada).500— Error interno o problemas de conexión con el Ministerio.
Notas
- Recomendamos usar
Idempotency-Keyen reintentos de red para evitar registros duplicados. - El campo
estadopuede serPENDING,FAILED,COMPLETED. Consultelistarecetaso el endpoint de transacciones (si se implementa) para seguimiento.