Pagaments
Pagaments Fast Track
Si trieu aquesta via, no cal que munteu el widget ni que seguiu la resta de les seccions de pagaments. Un sol POST retorna la URL de pagament, i Wealthreader avisa el vostre servidor quan el resultat és OK o KO. Com a reserva, deseu el payment_intent_id de la resposta: amb ell podeu consultar l'estat si l'avís no arriba.
El pagador obre aquesta URL i autoritza el pagament al seu banc. Per sota es crea la mateixa intenció immutable que a la resta de l'API: l'import, el destinatari i el concepte queden fixats abans d'arribar al navegador, i la capçalera Idempotency-Key evita un segon càrrec si la crida s'interromp.
Crear el pagament
POST /payments/?action=fast-track
Capçaleres obligatòries: Content-Type: application/json, X-API-Key i Idempotency-Key. La clau té de 16 a 128 caràcters, comença per una lletra o un número i només admet lletres, números i . _ : -; un UUID v4 és vàlid. Si falta o la seva longitud no és vàlida, la resposta és 400 idempotency_key_required; si utilitza altres caràcters, 422 invalid_customer_reference. Aquesta clau és també la referència del comerç: no cal enviar-la al cos. Si repetiu la mateixa clau amb el mateix cos, rebeu una altra vegada la mateixa URL. Si la reutilitzeu amb altres dades, la resposta és 409 idempotency_conflict.
| Camp | Tipus | Descripció |
|---|---|---|
amount |
Cadena | Import en unitats principals, com a cadena JSON. "15.50" són 15,50. També s'admet un enter sense decimals ("15"). Com a màxim dos decimals: "15.5" i "15.50" són el mateix import. Mínim 0.01. El màxim està limitat al límit que cada client tingui configurat al seu banc. Fora d'aquestes regles de format, 422 invalid_amount. |
currency |
Cadena | Divisa ISO 4217. En aquesta versió, EUR. |
beneficiary |
Objecte | Destinatari: name (d'1 a 140 caràcters) i iban (sense espais, amb dígit de control). |
reference |
Cadena | Concepte de l'extracte, fins a 140 caràcters. |
priority |
Cadena | normal o instant. |
notification_url |
Cadena | URL https pública a la qual s'avisa l'OK o el KO. |
logo |
Cadena | Opcional. URL https pública del logotip del vostre comerç en SVG: el camí ha d'acabar en .svg (admet paràmetres de consulta), sense credencials ni adreces privades, fins a 2048 caràcters ASCII. La pàgina de pagament el mostra damunt del resum, al costat del nom del beneficiari; sense logo, no hi ha capçalera de comerç. Wealthreader no descarrega la URL: la carrega el navegador del pagador. Qualsevol altre valor respon 422 invalid_logo. |
Tots els camps són obligatoris excepte logo. El cos és una llista blanca. Un camp de més, o un d'obligatori que falti, respon 422 invalid_request. logo forma part del pagament: repetir la mateixa Idempotency-Key amb un altre logo també és 409 idempotency_conflict.
Una transferència immediata no té un límit propi en aquesta API. El banc rebutja la que no pot acceptar, també per import, i aquest rebuig arriba com a KO al notification_url.
: "${WR_API_KEY:?Defina WR_API_KEY en el entorno seguro de su backend}"
: "${WR_PAYMENT_IDEMPOTENCY_KEY:?Genere un UUID v4 para este pago}"
curl --request POST 'https://api.wealthreader.com/payments/?action=fast-track' \
--header 'Content-Type: application/json' \
--header "X-API-Key: ${WR_API_KEY}" \
--header "Idempotency-Key: ${WR_PAYMENT_IDEMPOTENCY_KEY}" \
--data '{
"amount": "15.50",
"currency": "EUR",
"beneficiary": {
"name": "Comercio Online S.L.",
"iban": "ES9121000418450200051332"
},
"reference": "Pedido 78901",
"priority": "normal",
"notification_url": "https://tienda.example.com/pagos/aviso",
"logo": "https://tienda.example.com/marca/logo.svg"
}'
La resposta, amb 201 la primera vegada i 200 si la clau ja existia, conté la URL i l'identificador del pagament:
{
"url": "https://widget.wealthreader.com/payments/pay/#payment_intent_id=…&widget_token=…&api_origin=https%3A%2F%2Fapi.wealthreader.com",
"payment_intent_id": "22222222-2222-4222-8222-222222222222"
}
Redirigiu el pagador a la URL. El token viu al fragment, caduca amb el widget (habitualment 15 minuts) i no s'ha de registrar als vostres logs. Deseu payment_intent_id juntament amb la vostra comanda.
Avís d'OK o KO
Quan Wealthreader comprova l'estat del pagament i el troba en un estat final, fa un POST a notification_url amb Content-Type: application/json i User-Agent: WealthReader-Payments:
{
"outcome": "ok",
"payment_status": "settled",
"customer_reference": "11111111-1111-4111-8111-111111111111",
"payment_intent_id": "22222222-2222-4222-8222-222222222222"
}
outcomeésoknomés si el banc ha liquidat el pagament (settled).rejected,cancelled,expiredifaileds'avisen com ako. Un resultat ambigu (reconciliation_required) no és final i no s'avisa.customer_referenceés la vostraIdempotency-Key, ipayment_intent_id, l'identificador retornat en crear el pagament.- Responeu
2xxper donar l'avís per lliurat. Wealthreader espera com a màxim 3 segons i no segueix redireccions. - El mateix avís pot arribar més d'una vegada: tracteu
customer_referencemésoutcomecom a idempotents. - Una URL que no sigui
httpspública es rebutja en crear el pagament i es torna a comprovar abans de cada enviament.
Quan arriba. L'estat es comprova mentre el pagador continua a la pàgina de pagament, que el consulta fins al resultat final o fins que caduca la sessió de pagament, i cada vegada que consulteu POST /payments/?action=status. No hi ha cap enviament programat a part: si el pagador tanca la pàgina abans que el banc conclogui, o si el vostre servidor no respon 2xx, l'avís s'envia en la comprovació següent. Per això, si no heu rebut l'avís uns minuts després de redirigir el pagador, consulteu l'estat amb el payment_intent_id; aquesta consulta també dispara l'avís pendent. Vegeu Estats, consultes periòdiques i conciliació.
L'avís no va signat. Abans de lliurar un bé o servei valuós, confirmeu el resultat amb POST /payments/?action=status fent servir la vostra X-API-Key i el payment_intent_id: només payment_status: settled en aquesta resposta és una confirmació financera.