Registro de pagos en la clínica
Los pagos de Mercado Pago que faltan por registrar en el sistema de la clínica: la lista de tareas, confirmar a qué pago del sistema corresponde cada uno o cerrar la tarea sin coincidencia, y qué medio representa a Mercado Pago.
Descarga la proyección completa de la API pública: openapi.json.
| Método | Ruta | Qué hace |
|---|---|---|
GET | /clinic/payment-registrations | Mercado Pago payments to register in the practice system |
GET | /clinic/payment-registrations/{id} | One Mercado Pago payment registration task |
POST | /clinic/payment-registrations/{id}/confirm | Confirm which vendor pago records this payment |
POST | /clinic/payment-registrations/{id}/dismiss | Close a registration task without a match |
GET | /clinic/payment-registrations/settings | Which vendor medio stands for Mercado Pago |
PUT | /clinic/payment-registrations/settings | Choose the Mercado Pago medio / the reminder delay |
GET /clinic/payment-registrations
Mercado Pago payments to register in the practice system
The reception tasks: each Mercado Pago payment of a clinic whose Dentalink / Medilink / Reservo authors its money, pre-filled (patient and RUT, amount, medio, MP number, date, what it paid) and, once the mirror brings the pago in, its match. status=pending (default) = open + ambiguous (an ambiguous task lists its candidates). payments:read.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
status | query | pending \ | matched \ | closed \ |
contact_id | query | uuid | no | |
limit | query | integer | no | ≥ 1, ≤ 200, por defecto 50 |
offset | query | integer | null | no | ≥ 0, por defecto 0 |
curl https://api.vitrinadev.com/api/v1/clinic/payment-registrations \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": [
{
"id": "0199c3a0-1111-7000-8000-000000000001",
"status": "matched",
"vendor": "dentalink",
"vendor_label": "Dentalink",
"provider": "mercadopago",
"provider_reference": "182050716739",
"provider_payment_url": "https://www.mercadopago.cl/activities?q=182050716739",
"customer_payment_id": "0199c3a0-2222-7000-8000-000000000002",
"contact_id": "0199c3a0-3333-7000-8000-000000000003",
"amount_clp": 30000,
"paid_on": "2026-10-05",
"patient": {
"id": "0199c3a0-4444-7000-8000-000000000004",
"name": "Ana Pérez",
"rut": "11.111.111-1"
},
"concept": {
"kind": "appointment_deposit",
"label": "Abono cita",
"appointment_starts_at": "2026-10-09T13:00:00.000Z"
},
"medio": {
"code": "30",
"label": "Mercado Pago"
},
"matched": {
"mirror_payment_id": "0199c3a0-5555-7000-8000-000000000005",
"vendor_reference": "88123",
"received_on": "2026-10-05",
"amount_clp": 30000,
"medio": "Mercado Pago",
"voided": false,
"by": "auto_unique",
"at": "2026-10-05T18:20:00.000Z"
},
"candidates": [],
"dismissed_reason": null,
"overdue": false,
"reminded_at": null,
"created_at": "2026-10-05T14:02:11.000Z"
}
],
"meta": {
"total": 1,
"limit": 50,
"offset": 0
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /clinic/payment-registrations/{id}
One Mercado Pago payment registration task
One task, as the list returns it. payments:read.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
id | path | uuid | sí |
curl https://api.vitrinadev.com/api/v1/clinic/payment-registrations/<id> \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": {
"id": "0199c3a0-1111-7000-8000-000000000001",
"status": "matched",
"vendor": "dentalink",
"vendor_label": "Dentalink",
"provider": "mercadopago",
"provider_reference": "182050716739",
"provider_payment_url": "https://www.mercadopago.cl/activities?q=182050716739",
"customer_payment_id": "0199c3a0-2222-7000-8000-000000000002",
"contact_id": "0199c3a0-3333-7000-8000-000000000003",
"amount_clp": 30000,
"paid_on": "2026-10-05",
"patient": {
"id": "0199c3a0-4444-7000-8000-000000000004",
"name": "Ana Pérez",
"rut": "11.111.111-1"
},
"concept": {
"kind": "appointment_deposit",
"label": "Abono cita",
"appointment_starts_at": "2026-10-09T13:00:00.000Z"
},
"medio": {
"code": "30",
"label": "Mercado Pago"
},
"matched": {
"mirror_payment_id": "0199c3a0-5555-7000-8000-000000000005",
"vendor_reference": "88123",
"received_on": "2026-10-05",
"amount_clp": 30000,
"medio": "Mercado Pago",
"voided": false,
"by": "auto_unique",
"at": "2026-10-05T18:20:00.000Z"
},
"candidates": [],
"dismissed_reason": null,
"overdue": false,
"reminded_at": null,
"created_at": "2026-10-05T14:02:11.000Z"
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /clinic/payment-registrations/{id}/confirm
Confirm which vendor pago records this payment
Staff match: the pago must be the same patient's, the same amount and inside the window (400 not_a_candidate), and not already record another payment (409 candidate_taken). 409 registration_not_pending once the task is closed. Closes the task and its notification. payments:write.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
id | path | uuid | sí |
Cuerpo
| Campo | Tipo | Obligatorio | Restricciones |
|---|---|---|---|
mirror_payment_id | uuid | sí |
curl -X POST https://api.vitrinadev.com/api/v1/clinic/payment-registrations/<id>/confirm \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"mirror_payment_id": "0199c3a0-5555-7000-8000-000000000005"
}'Ejemplo de respuesta (200)
{
"data": {
"id": "0199c3a0-1111-7000-8000-000000000001",
"status": "matched",
"vendor": "dentalink",
"vendor_label": "Dentalink",
"provider": "mercadopago",
"provider_reference": "182050716739",
"provider_payment_url": "https://www.mercadopago.cl/activities?q=182050716739",
"customer_payment_id": "0199c3a0-2222-7000-8000-000000000002",
"contact_id": "0199c3a0-3333-7000-8000-000000000003",
"amount_clp": 30000,
"paid_on": "2026-10-05",
"patient": {
"id": "0199c3a0-4444-7000-8000-000000000004",
"name": "Ana Pérez",
"rut": "11.111.111-1"
},
"concept": {
"kind": "appointment_deposit",
"label": "Abono cita",
"appointment_starts_at": "2026-10-09T13:00:00.000Z"
},
"medio": {
"code": "30",
"label": "Mercado Pago"
},
"matched": {
"mirror_payment_id": "0199c3a0-5555-7000-8000-000000000005",
"vendor_reference": "88123",
"received_on": "2026-10-05",
"amount_clp": 30000,
"medio": "Mercado Pago",
"voided": false,
"by": "auto_unique",
"at": "2026-10-05T18:20:00.000Z"
},
"candidates": [],
"dismissed_reason": null,
"overdue": false,
"reminded_at": null,
"created_at": "2026-10-05T14:02:11.000Z"
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /clinic/payment-registrations/{id}/dismiss
Close a registration task without a match
registered_elsewhere (reception registered it in a way Vitrina cannot match) or not_needed. 409 registration_not_pending once the task is closed. payments:write.
| Parámetro | En | Tipo | Obligatorio | Restricciones |
|---|---|---|---|---|
id | path | uuid | sí |
Cuerpo
| Campo | Tipo | Obligatorio | Restricciones |
|---|---|---|---|
reason | registered_elsewhere \ | not_needed | sí |
curl -X POST https://api.vitrinadev.com/api/v1/clinic/payment-registrations/<id>/dismiss \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "registered_elsewhere"
}'Ejemplo de respuesta (200)
{
"data": {
"id": "0199c3a0-1111-7000-8000-000000000001",
"status": "matched",
"vendor": "dentalink",
"vendor_label": "Dentalink",
"provider": "mercadopago",
"provider_reference": "182050716739",
"provider_payment_url": "https://www.mercadopago.cl/activities?q=182050716739",
"customer_payment_id": "0199c3a0-2222-7000-8000-000000000002",
"contact_id": "0199c3a0-3333-7000-8000-000000000003",
"amount_clp": 30000,
"paid_on": "2026-10-05",
"patient": {
"id": "0199c3a0-4444-7000-8000-000000000004",
"name": "Ana Pérez",
"rut": "11.111.111-1"
},
"concept": {
"kind": "appointment_deposit",
"label": "Abono cita",
"appointment_starts_at": "2026-10-09T13:00:00.000Z"
},
"medio": {
"code": "30",
"label": "Mercado Pago"
},
"matched": {
"mirror_payment_id": "0199c3a0-5555-7000-8000-000000000005",
"vendor_reference": "88123",
"received_on": "2026-10-05",
"amount_clp": 30000,
"medio": "Mercado Pago",
"voided": false,
"by": "auto_unique",
"at": "2026-10-05T18:20:00.000Z"
},
"candidates": [],
"dismissed_reason": null,
"overdue": false,
"reminded_at": null,
"created_at": "2026-10-05T14:02:11.000Z"
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /clinic/payment-registrations/settings
Which vendor medio stands for Mercado Pago
The practice system, its medios (the synced medio_pago catalog for Dentalink / Medilink, the fixed list for Reservo), the one chosen as Mercado Pago, a name-based suggestion, and after how many business days an unregistered payment reminds reception (default 2). payments:read.
curl https://api.vitrinadev.com/api/v1/clinic/payment-registrations/settings \
-H "Authorization: Bearer $VITRINA_KEY"Ejemplo de respuesta (200)
{
"data": {
"vendor": "dentalink",
"vendor_label": "Dentalink",
"mercadopago_medio": null,
"suggested_medio": "30",
"medios": [
{
"code": "2",
"label": "Tarjeta de débito",
"active": true
},
{
"code": "30",
"label": "Mercado Pago",
"active": true
}
],
"reminder_business_days": 2
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429
PUT /clinic/payment-registrations/settings
Choose the Mercado Pago medio / the reminder delay
Sets the vendor medio that stands for Mercado Pago (it must be one of the clinic's medios; 400 unknown_medio) and/or the reminder delay in business days (1–15). Re-runs the matcher: a chosen medio can settle an ambiguous task. clinic_admin:write.
Cuerpo
| Campo | Tipo | Obligatorio | Restricciones |
|---|---|---|---|
mercadopago_medio | string | null | — | mín. 1, máx. 40 |
reminder_business_days | integer | — | ≥ 1, ≤ 15 |
curl -X PUT https://api.vitrinadev.com/api/v1/clinic/payment-registrations/settings \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"mercadopago_medio": "30",
"reminder_business_days": 2
}'Ejemplo de respuesta (200)
{
"data": {
"vendor": "dentalink",
"vendor_label": "Dentalink",
"mercadopago_medio": null,
"suggested_medio": "30",
"medios": [
{
"code": "2",
"label": "Tarjeta de débito",
"active": true
},
{
"code": "30",
"label": "Mercado Pago",
"active": true
}
],
"reminder_business_days": 2
}
}Responde: 200 · 400 · 401 · 403 · 404 · 409 · 429