QvaPay API
App

Crear App

Crear una nueva aplicación para integrar pagos.

POST /app/create

Crea una nueva aplicación. Al crearla se genera un secret que solo se muestra una vez en la respuesta.

Autenticación

Bearer Token en header Authorization.

Request

curl -X POST https://api.qvapay.com/app/create \
  -H "Authorization: Bearer {tu-token}" \
  -F "name=Mi Tienda" \
  -F "url=https://mitienda.com" \
  -F "[email protected]" \
  -F "desc=Tienda de productos digitales" \
  -F "callback=https://mitienda.com/callback" \
  -F "success_url=https://mitienda.com/success" \
  -F "cancel_url=https://mitienda.com/cancel"

Parámetros

El body debe enviarse como FormData (multipart/form-data). Los textos se guardan sin espacios al principio ni al final; una URL con espacios en medio, con usuario y contraseña o con otro esquema (javascript:, ftp:…) se rechaza.

ParámetroTipoRequeridoDescripción
namestringSiNombre de la app (3-50 caracteres)
urlstringSiURL principal de la app (http:// o https://, máximo 191 caracteres)
logofileSiLogo de la app (JPG o PNG, máximo 5MB)
descstringSiDescripción de la app (máximo 191 caracteres)
callbackstringSiURL del webhook de pago: https://, pública (no localhost), máximo 191 caracteres
success_urlstringSiURL de redirección en pago exitoso (http:// o https://, máximo 500 caracteres)
cancel_urlstringSiURL de redirección en pago cancelado (http:// o https://, máximo 500 caracteres)

Response

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "secret": "sk_live_abc123def456ghi789",
  "name": "Mi Tienda",
  "url": "https://mitienda.com",
  "desc": "Tienda de productos digitales",
  "logo": "https://cdn.qvapay.com/apps/logo.png"
}

Campos de respuesta

CampoTipoDescripción
uuidstringIdentificador único de la app
secretstringClave secreta de la app (solo se muestra una vez)
namestringNombre de la app
urlstringURL principal de la app
descstringDescripción de la app
logostringURL del logo subido

Errores

CódigoDescripción
400Campo faltante o inválido. La respuesta trae error (motivo), field (el campo) y code: INVALID_URL para una URL, DESC_TOO_LONG cuando desc supera los 191 caracteres (trae max), INVALID_FIELD para el resto
500Error interno del servidor