Skip to main content

Bizum

Bizum is an alternative payment method provided by REDSYS and exclusive to Spain, which allows payments to be made using a mobile number, without the need to use a credit card.

Using this payment method, the user will be redirected to the Bizum payment page, where he/she must enter the phone number that is linked to the account from which he/she wishes to pay. This method is only available for REDSYS type services and is not activated by default, so you will have to request the activation of this feature from the support team.

The integration process is similar to the redirection payment letter, but in this case the token will be added to this other base URL:

/payment/bizum/{token}

It is possible to configure the phone number that will appear by default on the Bizum payment screen by sending it at the time of creating the order:

  "extra_data": {
"profile": {
"first_name": "Willy",
"last_name": "Henry",
"phone": {
"number": "655655655",
"prefix": "34"
}
}
}

Integration

To make a Bizum payment we must follow the following steps:

1. Generate the payment order on your server

Create the order just like you would do to make a simple-integration.

The Bizum order will be processed over a secure channel, so it should be set to secure=true.

As service identifier, provide the service_uuid of the specific REDSYS service for Bizum payments that you have activated in your Paylands Backend → Manage → Payment Services → Listing.

If you do not yet have the Bizum service activated, you will need to request its activation from us at soporte@paylands.com.

So we generate the order with the following request:

curl --request POST 'https://api.paylands.com/v1/sandbox/payment' \
--header 'Authorization: Bearer [API_KEY]' \
--header 'Content-Type: application/json' \
--data-raw '{
"signature": "[SIGNATURE]",
"amount": 100,
"operative": "AUTHORIZATION",
"secure": true,
"customer_ext_id": "test",
"service": "[SERVICE_UUID]",
"description": "Payment #1",
"additional": null,
"url_post": "https://my.website.com/process",
"url_ok": "https://my.website.com/ok",
"url_ko": "https://my.website.com/ko",
"source_uuid": null,
"save_card": true,
"reference": "50620",
"dynamic_descriptor": "PNP*MerchantName",
"expires_in": 3600
}'

Getting as response:

{
"message":"OK",
"code":200,
"current_time":"2022-04-01T14:19:59+0200",
"order":{
"uuid":"B1E0AFC1-EC7C-4FE2-AB9B-B7DAEB800D36",
"created":"2022-04-01T14:19:59+0200",
"created_from_client_timezone":"2022-04-01T14:19:59+0200",
"amount":100,
"currency":"978",
"paid":false,
"status":"CREATED",
"safe":false,
"refunded":0,
"additional":"",
"service":"REDSYSPSD2",
"service_uuid":"7277A994-1988-49EF-A86A-57CBAB752CE5",
"customer":"test",
"cof_txnid":null,
"transactions":[],
"token":"c814b3ae10078e075f63150a571e59721939f35a14ea7a31ed70287970fc7e5ec212ec087e9128b5e01a642d236a7a582a39d3e3421641c0f41bc276e432c3a7",
"ip":null,
"reference":"50620",
"dynamic_descriptor":"PNP*NombreComercio",
"threeds_data":null
},
"client":{"uuid":"3BF33A39-897E-4FBB-98CA-D1C0C55CA898"}
}

2. Redirect the customer to the payment form

We construct the redirection URL to the bizum gateway by providing the token of the order returned from the previous call.

https://api.paylands.com/v1/sandbox/payment/bizum/{token}

We can present the user with a payment button with bizum like the following:

<a href="https://api.paylands.com/v1/sandbox/payment/bizum/{token}">
<img src="bizum-logo.png" alt="Bizum Logo" style="width:200px; height:auto;"/>
</a>

Bizum button

By pressing the button, the user will be redirected to the Bizum gateway.

Bizum Form

3. Enter data and validation code

Once the user has been redirected to the Bizum page, they will need to enter their phone number and the secret key for Bizum. Shortly after, they will receive an SMS with a code that they will need to enter to finalize the payment.

The user will then be redirected to the OK/KO URL back.

4. The server is notified

After a short while, the POST notification of the payment will be received, which will be similar to a webservice-payment, except for the following details:

  • The source key containing the details of the card used that appears under order.transactions.[n].source will contain the value null.

  • Bizum payments support both AUTHORIZATION authorizations and DEFERRED deferred transactions as operative, but when using the DEFERRED operative they can only be confirmed later. Bizum payments that have not been confirmed will expire after a certain time, depending on the customer's bank.

  • Unfortunately, Bizum does not provide any information regarding the customer's phone number, name, or any other details. The customer remains anonymous during the process. The anti-fraud rules related to cards will not apply, and there will be no restrictions on payments considered as risky by Bizum. On payments considered risky by the anti-fraud system, only fraudulent payments will be blocked. It does not matter if the order is secure or not, the payment flow will be exactly the same.

  • Bizum can only be used by customers who have previously activated the service in their bank accounts, and have configured a Bizum secret key. Most Spanish banks support Bizum payments and it is becoming an increasingly common payment method.

info

Bizum must be activated on every terminal, please contact us to request Bizum activation on any other terminal.

Testing

To test in sandbox environment and force the operation to be OK/KO you can provide the following numbers when prompted:

OK: 700000000
KO: 600000000

You should pay particular attention to the amount indicated in the sandbox tests. This amount must range between 0,51€ and 15,00€.

The sandbox URL for bizum payments is as follows:

https://api.paylands.com/v1/sandbox/payment/bizum/{token}

See the API reference for more details about the BIZUM payment request.