Skip to main content

Bizum

Bizum is a mobile payment solution in Spain that allows shoppers to pay merchants using their phone number. It supports mobile-first flows, and recurring transactions via stored COF credentials.

Bizum enables direct payments through mobile number and authenticates users via their banking app.Bizum enables direct payments through mobile number and authenticates users via their banking app.

Mobile push notifications

The shopper enters their phone number. User authorizes the payment and the transaction is confirmed in seconds.

  • Pay via phone number with no card entry
  • Fast checkout experience

Details

Country Spain
Currency EUR
InputPhone number
Integrations Direct API

Capabilities

Refunds
Partial refunds
Multiple partial refunds
Final amount captured later
Multiple partial captures
Incremental authorizations
Disputes
Recurring payments
Split payments
Flow TypesImmediateRecurring

Flow

Bizum Onboarding

This flow works for ONE_TIME , and RECURRING transaction types.

Steps

  1. Shopper selects Bizum and enters their phone number.
info

Phone number should be associated with Bizum account.

  1. Merchant Initiates Payment with Nopan.
  2. Nopan checks the shopper's Bizum Request To Pay (RTP) eligibility and initiates the payment with the Bizum gateway. Payments for shoppers without Bizum or RTP enabled are declined at this step.
  3. Bizum sends a push notification to the shopper's bank app.
  4. Shopper confirms the transaction in their banking app.
  5. Nopan notifies merchant about transaction being completed.
  6. Alternatively merchant periodically checks for the status of transaction.

Integration

Send a POST /payments/initiate request to Nopan with the following format:

{
"processingAccountId": "merchant-1234",
"clientTransactionId": "client-txn-54c8c9bc",
"returnUrl": "https://api.merchant.callback?ref=order-1234",
"transactionType": "ONE_TIME",
"paymentDetails": {
"amount": 50,
"currency": "EUR",
"country": "ES",
"description": "Product ID 1234 purchase"
},
"providerDetails": {
"providerId": "BIZUM"
},
"payerDetails": {
"payerId": "payerUUID",
"phone": {
"number": "633782248",
"countryCode": "+34"
}
},
"requestContext": {
"ipAddress": "203.0.113.45",
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15",
"channel": "WEB",
"deviceId": "device-67890",
"locale": "es-ES"
},
"metadata": {
"orderId": "12345",
"customerId": "cust-789",
"campaign": "summer2025"
}
}
tip

Registered Bizum phone number is required.


Bizum SCA Flow

This flow may occur for ONE_TIME and RECURRING transaction types.

When Bizum cannot authenticate the payment through the banking app, it falls back to a strong customer authentication (SCA) challenge: the shopper receives a one-time code on their phone, and the merchant submits it to complete the payment. In test mode, amounts between €75 and €85 trigger this flow (see Testing).

Steps

  1. Merchant Initiates Payment with Nopan.
  2. When Bizum requires an SCA challenge, the initiate response returns PENDING with reason code 4972 (SCA required) and the shopper receives a one-time code on their phone.
  3. Merchant collects the one-time code from the shopper.
  4. Merchant Finalizes Payment with the one-time code.
  5. On success the payment is approved and captured. If the validation fails, the payment stays PENDING with reason code 4972 and the merchant can retry the finalize with a corrected code, up to 3 retries.

Integration

Send a POST /payments/finalize request to Nopan with the following format:

{
"processingAccountId": "merchant-1234",
"transactionId": "p9vhkuj92yav",
"payerDetails": {
"oneTimeCode": "123456"
}
}
tip

oneTimeCode is the numeric code the shopper received, and is required.


Bizum Recurring

This flow works only with RECURRING transaction types.

Steps

  1. Merchant sends Nopan a Charge Request with the payment token issued during onboarding.
  2. Nopan initiates a payment with Bizum gateway
  3. Once transaction is approved shopper is notified through the bank app.
  4. Nopan notifies merchant about transaction being completed.

Integration

Send a POST /payments/charge request to Nopan with the following format:

{
"clientTransactionId": "order123",
"transactionType": "RECURRING",
"paymentDetails": {
"amount": 200,
"currency": "EUR",
"country": "ES",
"description": "Product ID 1234 purchase"
},
"providerDetails": {
"providerId": "BIZUM"
},
"payerDetails": {
"payerId": "payerUUID",
"paymentToken": "paymentTokenUUID"
}
}
tip

paymentToken is required.


Testing

Leverage Nopan Mocking framework to test your Bizum integration with Nopan or use these values to simulate payments in test mode:

Test Phone number+34 700 000 000
ApprovedAmount less than €5
Declined (after initial Ack)Amount between €5 and €10
Declined (RTP not enabled)Amount between €10 and €15
Declined (user is not registered)Amount over €15
Approved (SCA flow)Amount between €75 and €80
Declined (SCA flow)Amount between €80 and €85

Error Codes

info

For a full list of Nopan error codes, see Error Handling.

Bizum Code
Nopan Reason Code
Description
Action
BIZ00000 – Operation completed successfully
-1
Internal indicator that the flow was successful.
None
BIZ00001 – Required input parameter not provided
4000
Invalid input.
Fix Request
BIZ00002 – Incorrect parameter format
4000
Invalid input.
Fix Request
BIZ00003 – Element not found
4001
Payment not found.
Fix Request
BIZ00005 – Internal system error
8004
Provider error.
Retry
BIZ00006 – Security error in 3DES or MAC X9.19
8004
Provider error.
Fix Request
BIZ00007 – Operation not permitted
1020
Declined. Possible fraud.
Adjust Logic
BIZ00008 – Beneficiary not found
4001
Payment not found.
Fix Request
BIZ00009 – Sender not found
2002
Invalid payer identifier.
Fix Request
BIZ00202 – Functionality not yet implemented
8003
Operation not supported.
Adjust Logic
BIZ00213 – Authentication error. Security sequence failed
4060
Invalid token.
Fix Request
BIZ00224 – RTP authentication failed (KO)
4061
Token is expired.
Fix Request
BIZ00225 – Request to Pay authentication unsuccessful
2001
Payer cancelled the payment.
Adjust Logic
BIZ00233 – Authentication error; the operation can be authenticated via the backup flow
4972
Strong customer authentication step-up — the payer must complete the Bizum backup OTP challenge before the payment can proceed.
Authenticate

Requirements

  • Shopper must use a participating bank's mobile app.
  • Recurring model requires explicit shopper consent.

Learn More

Recurring Payments

Some additional information about recurring model:

Configuration
Recurring Model
Manual Confirmation of each Transaction
N/A
Amount
~Fixed (within PSD2 guidance)
Frequency
N/A
Expiration
COF might expire
Banks Retries
N/A

Learn more on Bizum website.