Calificar Oferta P2P
Calificar a la contraparte después de completar una oferta P2P.
POST /p2p/:uuid/rate
Califica a la contraparte de una oferta P2P completada. Solo los participantes (creador o peer) pueden calificar, y cada uno solo puede calificar una vez por oferta. Durante las 72 horas siguientes puedes cambiar tu valoración.
Autenticación
Bearer Token (Authorization: Bearer <token> en headers).
También puedes llamar a esta ruta con app-id / app-secret en vez de un token de cuenta. Ver Operar con credenciales de app.
Request
curl -X POST "https://api.qvapay.com/p2p/7c9e6679-7425-40de-944b-e07fc1f90ae7/rate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"rating": 5,
"comment": "Excelente operación, muy rápido",
"tags": ["rapido", "confiable"]
}'Parámetros (URL)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
uuid | string | Sí | UUID de la oferta P2P |
Parámetros (body JSON)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
rating | number | Sí | Calificación de 1 a 5 |
comment | string | No | Comentario sobre la operación (máx. 120 caracteres) |
tags | array | No | Etiquetas rápidas: rapido, confiable, comunicacion |
order | string | En ofertas por rango | UUID de la orden que valoras (también vale ?order= en la URL) |
Ofertas por rango
En una oferta por rango cada orden es un trato propio, así que se valora la orden, no la oferta: el creador y el tomador de una orden en estado completed pueden valorarse entre sí una vez por orden, aunque la oferta siga abierta. Sin order la respuesta es 400 con code: "ORDER_REQUIRED"; con una orden que aún no está completada, 400 con code: "ORDER_NOT_COMPLETED". El detalle de la oferta (GET /p2p/:uuid) devuelve en cada orden my_rating (tu valoración, o null).
Response (200)
{
"message": "Rating created",
"ratingId": "12345",
"rating": 5,
"editable_until": "2026-10-22T18:04:11.000Z"
}editable_until es la fecha hasta la que puedes cambiar esta valoración con PATCH.
Errores
| Código | Descripción |
|---|---|
400 | Datos inválidos, rating no proporcionado, P2P no habilitado, ORDER_REQUIRED u ORDER_NOT_COMPLETED (ofertas por rango) |
400 | code: "ALREADY_RATED": ya calificaste esta oferta u orden. Trae editable_until (o null si el plazo pasó): dentro del plazo, usa PATCH para cambiarla |
401 | Token de autenticación inválido o ausente |
403 | No eres participante de esta oferta (o de esa orden) |
404 | Oferta P2P no encontrada, o la orden no pertenece a la oferta |
PATCH /p2p/:uuid/rate
Cambiar una valoración
Quien valoró puede cambiar su valoración durante las 72 horas siguientes a enviarla. Editar no reinicia el plazo, y una valoración no se puede borrar. Mismas reglas que el POST: solo los participantes, y en ofertas por rango la orden debe ir en order.
curl -X PATCH "https://api.qvapay.com/p2p/7c9e6679-7425-40de-944b-e07fc1f90ae7/rate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"rating": 4,
"comment": "Bien, pero tardó en confirmar",
"tags": ["confiable"],
"order": "0b8f2c1e-5a7d-4c1e-9f3a-2d6b8e4f1a90"
}'| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
rating | number | No | Nueva calificación de 1 a 5 |
comment | string | null | No | Nuevo comentario (máx. 120). "" o null lo borra |
tags | array | null | No | Nuevas etiquetas (reemplazan a las anteriores). [] o null las borra |
order | string | En ofertas por rango | UUID de la orden (también vale ?order=) |
Un campo que no envías no cambia. Hace falta al menos uno de rating, comment o tags.
Response (200)
{
"message": "Rating updated",
"ratingId": "12345",
"rating": 4,
"comment": "Bien, pero tardó en confirmar",
"tags": ["confiable"],
"created_at": "2026-10-19T18:04:11.000Z",
"updated_at": "2026-10-20T09:12:40.000Z",
"editable_until": "2026-10-22T18:04:11.000Z"
}Errores
| Código | Descripción |
|---|---|
400 | Datos inválidos, NOTHING_TO_UPDATE (ningún campo que cambiar), ORDER_REQUIRED u ORDER_NOT_COMPLETED |
403 | code: "RATING_EDIT_EXPIRED": pasaron las 72 horas (trae editable_until). También si no eres participante |
404 | code: "RATING_NOT_FOUND": aún no has valorado esta oferta u orden. También si la oferta no existe o la orden no le pertenece |