--- title: Bizum Server To Server Integration permalink: /en/notes/paymentMethods/Bizum/s2s/ createTime: '2026/08/26 19:47:32' description: >- This guide introduces Bizum Server To Server integration for Spain, covering PC and mobile browser scenarios. Key parameters include device.orderTerminal and shopperIP. The response returns paymentRedirectUrl; after redirection, the consumer confirms the payment in their banking app. --- ## Bizum Server To Server Flow ```mermaid sequenceDiagram actor User as 👤 User participant Frontend as 💻 Merchant Frontend participant Backend as 🏪 Merchant Backend participant PPC as 🔄 PingPongCheckout participant Bizum as 🏦 Bizum Note over User, Bizum: 🚀 Bizum Server To Server Flow User->>Frontend: 1. Initiate payment Frontend->>Backend: 2. Create order Backend->>+PPC: 3. Call pay directly (paymentMethod.type: Bizum) PPC-->>-Backend: 4. Return paymentRedirectUrl Backend-->>Frontend: 5. Return paymentRedirectUrl Frontend->>User: 6. Redirect to Bizum confirmation page User->>Bizum: 7. Enter Bizum registered mobile number Bizum->>User: 8. Banking app shows confirmation screen User->>Bizum: 9. Authorize with password / fingerprint / Face ID Bizum->>Bizum: 10. Process deduction (usually within seconds) alt ✅ Payment success Bizum-->>PPC: 11. 🟢 Payment success PPC-->>Frontend: 12. Redirect to result page (payResultUrl) PPC--)Backend: 13. 📡 Async payment notification Backend--)PPC: 14. 🟢 Respond 200 else ❌ Payment failure Bizum-->>PPC: 11. ❌ Payment failure PPC-->>Frontend: 12. Redirect to result page PPC--)Backend: 13. 📡 Async payment notification end Note over User, Bizum: 🎯 Bizum Server To Server Flow Complete ``` ## Integration Guide ### Step1 Call Pay Directly Use the Pay Directly API to initiate a Bizum payment. ### Step2 Handle the Payment Response When the payment is accepted, the pay directly API returns `code: 002000` (Transaction processing). Key parameters in `bizContent`: - `action.paymentRedirectUrl`: The Bizum payment confirmation page URL (when `action.type` is `PAYMENT_REDIRECT_URL`). After redirection, the consumer enters a mobile number registered and activated in the Bizum system, then authorizes the payment in their banking app with a password or biometric authentication. **The session timeout is 30 minutes and the OTP operation time limit is 4 minutes**; the payment must be re-initiated after a timeout. - `status`: Transaction status. `PROCESSING` after acceptance; the final payment result is determined by the async notification. - `exchangedAmount` / `exchangedCurrency`: The exchanged transaction amount and currency. - `transactionId`: The PingPong transaction ID for reconciliation and inquiry.