QvaPay API
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ámetroTipoRequeridoDescripción
uuidstringSíUUID de la oferta P2P

Body (solo ofertas por rango)

CampoTipoRequeridoDescripción
amountnumberSí, si offer_kind es flexibleCuá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ódigoDescripción
400P2P no habilitado, KYC requerido, es tu propia oferta, la oferta no está disponible, saldo insuficiente, o límite de ofertas pendientes alcanzado
401Token de autenticación inválido o ausente
403Bloqueo entre usuarios impide aplicar
409La oferta ya no está disponible o ya tiene un peer asignado
400 FLEXIBLE_AMOUNT_REQUIREDLa oferta es por rango y no mandaste amount. La respuesta trae order_min, order_max y available_amount
403 PEER_REQUIREMENTS_NOT_METNo cumples los requisitos del creador. La respuesta trae requirements y missing ({ key, required, actual })
403 FLEXIBLE_NOT_ENABLEDTu cuenta todavía no puede tomar ofertas por rango
409 ORDER_ALREADY_ACTIVEYa tienes una orden activa en esa oferta por rango (en curso o en disputa)
429Demasiadas solicitudes (límite: 2 cada 60 segundos)
500Error interno al crear la transacción