P2P
Aplicar a Oferta P2P
Aplicar como contraparte a una oferta P2P abierta.
POST /p2p/:uuid/apply
Aplica a una oferta P2P como contraparte (peer). La oferta cambia a estado processing. Para ofertas de compra (buy), el saldo del aplicante se deduce automáticamente. El usuario debe tener KYC verificado.
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/apply" \
-H "Authorization: Bearer <token>"Parámetros (URL)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
uuid | string | Sí | UUID de la oferta P2P |
Body (solo ofertas por rango)
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
amount | number | Sí, si offer_kind es flexible | Cuántos USD tomas, con hasta 2 decimales, entre order_min y min(order_max, available_amount) |
En una oferta fixed el body se ignora: se toma entera. Ver Ofertas por rango.
Response (201)
{
"message": "Aplicado a la oferta",
"p2p": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"transaction": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}El campo transaction contiene el UUID de la transacción creada (solo para ofertas de tipo buy donde se deduce saldo). Es null para ofertas de tipo sell.
Flujo de aplicación
- Oferta de compra (
buy): El aplicante (vendedor) deposita el monto en QUSD como garantía. Se crea una transacción y se deduce el saldo. - Oferta de venta (
sell): El aplicante (comprador) no necesita saldo en QUSD. Solo se asigna como peer.
Errores
| Código | Descripción |
|---|---|
400 | P2P no habilitado, KYC requerido, es tu propia oferta, la oferta no está disponible, saldo insuficiente, o límite de ofertas pendientes alcanzado |
401 | Token de autenticación inválido o ausente |
403 | Bloqueo entre usuarios impide aplicar |
409 | La oferta ya no está disponible o ya tiene un peer asignado |
400 FLEXIBLE_AMOUNT_REQUIRED | La oferta es por rango y no mandaste amount. La respuesta trae order_min, order_max y available_amount |
403 PEER_REQUIREMENTS_NOT_MET | No cumples los requisitos del creador. La respuesta trae requirements y missing ({ key, required, actual }) |
403 FLEXIBLE_NOT_ENABLED | Tu cuenta todavía no puede tomar ofertas por rango |
409 ORDER_ALREADY_ACTIVE | Ya tienes una orden activa en esa oferta por rango (en curso o en disputa) |
429 | Demasiadas solicitudes (límite: 2 cada 60 segundos) |
500 | Error interno al crear la transacción |