Desarrolladores
Referencia de la API
POST /payment/process

POST /payment/process

Autoriza y captura el cobro con tarjeta. Puede devolver el resultado final (APROBADO / RECHAZADO) o exigir verificación 3DS (PENDING_3DS).

Auth: requiere x-wpay-key.

Request

CampoTipoRequeridoDescripción
referencestringLa reference de /payment/init.
cardobject{ type, number, expiry: "MM/YYYY", cvv }type: 001 Visa · 002 MC · 003 Amex.
billingobjectDirección de facturación (ver abajo).
personalobject{ full_name, email, phone }.
cs_reference_idstringEl reference_id de /payment/auth-setup (evita repetir el setup).
fingerprint_session_idstringGUID del fingerprint del dispositivo.
save_cardbooleantrue → tokeniza la tarjeta si el pago es aprobado. Default false.
return_urlstringBase a la que vuelve el navegador tras el Step-Up. Prioridad: body → frontend_url del sistema → global.
merchant_dataobjectMDDs antifraude (ver abajo).

billing

CampoRequeridoDescripción
address1Dirección (máx. 60 caracteres).
cityCiudad.
country_codeISO-2 (BO, US, …) — ver /location/countries.
currencyBOB o USD (default USD).
stateEstado/departamento.
postal_codeCódigo postal (default 0000).
address2Complemento.

merchant_data (MDDs antifraude — opcionales, recomendados)

CampoMDDDescripción
user_logged_in1SI/NO — sesión iniciada en tu sitio.
last_purchase_date4Fecha de última compra (dd/mm/aaaa).
is_recurring6SI/NO.
commerce_name7Nombre comercial.
sales_channel9Canal (default Pagina Web).
buyer_document11CI/documento del comprador.
buyer_id15Tu id del comprador.
buyer_document_nit19NIT.
total_products24Cantidad de ítems.
buyer_age42Edad.
service_id87Id del servicio.
service_name88Nombre del servicio.
payment_reference89Referencia de pago.
service_type90Tipo (default E-commerce).
pays_full_debt92SI/NO.
payment_reason97Motivo (default internet).

Responses 201

APROBADO (frictionless)

{
  "status": "APROBADO",
  "reference": "WP-1784169095747-578AFA46",
  "cybersource_id": "7364298471236458210433",
  "auth_code": "831000",
  "saved_card": {
    "key": "C8F0D2A1B3E4F5A6B7C8D9E0",
    "card_type": "001",
    "card_last4": "1111",
    "name": "María Fernández"
  }
}

saved_card es null salvo que hayas mandado save_card: true y el pago sea aprobado. Guarda saved_card.key en tu BD — ver Tarjetas guardadas.

PENDING_3DS (Step-Up requerido)

{
  "status": "PENDING_3DS",
  "reference": "WP-1784169095747-578AFA46",
  "authentication": {
    "access_token": "eyJhbGciOiJIUzI1NiJ9....",
    "step_up_url": "https://<proveedor-3ds>/V2/Cruise/StepUp",
    "transaction_id": "7364298471236458210433"
  }
}

Abre step_up_url en un popup con form POST del access_token como JWT (cómo hacerlo). Al terminar, WizPay ejecuta el cobro y redirige el navegador a {return_url}/payment/success?reference=... o {return_url}/payment/failed?reference=....

RECHAZADO

{
  "status": "RECHAZADO",
  "reference": "WP-1784169095747-578AFA46",
  "cybersource_id": "7364298471236458210433",
  "saved_card": null
}

Errores

HTTPMensaje
400reference, card, billing y personal son requeridos
404Transacción no encontrada
400Tarjeta bloqueada por política antifraude
400Error en autenticación 3DS / Error al procesar el pago (o el mensaje del gateway)

Pruébalo

Reglas del simulador: cvv: "999"RECHAZADO · tarjeta que termina en 3PENDING_3DS · lo demás → APROBADO. Con save_card: true, la tarjeta aparece luego en GET /cards.

POST/payment/process⚡ Simulador — se ejecuta en tu navegador
Ver cURL equivalente (producción)
curl -X POST "https://api.wizpay.app/payment/process" \
  -H "x-wpay-key: wpk_sandbox_demo" \
  -H "Content-Type: application/json" \
  -d '{ "reference": "WP-PEGA-AQUI-TU-REFERENCE", "cs_reference_id": "", "fingerprint_session_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "card": { "type": "001", "number": "4111111111111111", "expiry": "12/2027", "cvv": "123" }, "billing": { "address1": "Av. Arce 2299", "city": "La Paz", "state": "LP", "country_code": "BO", "postal_code": "0000", "currency": "BOB" }, "personal": { "full_name": "María Fernández", "email": "[email protected]", "phone": "70000000" }, "save_card": true, "return_url": "https://tutienda.com", "merchant_data": { "user_logged_in": "SI", "sales_channel": "Pagina Web" } }'