---
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.