Bizum
Beta
Last updated: December 11, 2024
Bizum is a popular and secure payment method in Spain that enables your customers to make instant bank transfer payments using a phone number.
Information
To enable Bizum payments on your account, contact your Account Manager or [email protected].
Model | Gateway |
---|---|
Payment flow | Direct |
Payment method type | Bank transfer |
Auto-capture payment | |
Authorization | |
Manual Capture | |
Refund | |
Partial refund | |
Chargeback | |
Recurring payment |
To process Bizum payments, you must request a payment. Your customer will then confirm the payment using their online banking app.
To send a payment request, call the payments endpoint:
post
https://api.checkout.com/payments
If you don't provide a customer ID or email address in the request, Checkout.com automatically creates a customer profile and returns the customer ID in the response.
1{2"amount": 1000,3"currency": "EUR",4"source": {5"type": "bizum"6},7"reference": "ORD-5023-4E89",8"customer": {9"phone": {10"country_code": "034",11"number": "717003409"12}13},14"processing_channel_id": "pc_3wuuqzzjbrzexbu4osjacmk7q4"15}
If you receive a 202 Accepted
response with a payment id
value and the status
field set to Pending
, your request was successful.
1{2"id": "pay_7ehiotldrlvujfpiyeo42i2roe",3"status": "Pending",4"reference": "ORD-5023-4E89",5"customer": {6"id": "cus_urx7wggzcpzufjjynbn7t6l5mq",7"phone": {8"country_code": "034",9"number": "717003409"10}11},12"_links": {13"self": {14"href": "https://api.checkout.com/payments/pay_7ehiotldrlvujfpiyeo42i2roe"15}16}17}
To retrieve details about the payment, call the payments endpoint, setting the {id}
path parameter using the payment_id
value your received in the payment response:
get
https://api.checkout.com/payments/{id}
See Get payment details for more information.
Bizum supports both partial and full refunds.
You can refund the payment through the Dashboard or by calling the Refund a payment endpoint setting the {id}
query parameter using the payment_id
value your received in the payment response:
post
https://api.checkout.com/payments/{id}/refunds
See Refund a payment for more information.
1{2"amount": 103}
1{2"action_id": "act_f544khcfnyqudh3l73qwnnvfbi",3"_links": {4"payment": {5"href": "https://api.sandbox.checkout.com/payments/pay_uexsi2rik7ceppidytigjmxshi"6}7}8}
Once a payment is created, you can't void it. If you wish to void a payment in progress, please wait for the payment_captured
webhook, and then process a refund. Communicating this in advance to your end customer can help you avoid chargebacks.
If the customer cancels or fails to complete their payment, we send a payment_expired
webhook.
To test your integration, send a payment to the Sandbox environment using the phone number +34700000000
. By using different payment amounts, you can simulate different outcomes.
To test an authorized response, set the amount to a value between one and ten EUR:
1{2"amount": 10,3"currency": "EUR",4"source": {5"type": "bizum"6},7"customer": {8"phone": {9"country_code": "034",10"number": "700000000"11}12}13}
To test a declined payment, set the amount to any value above 11 EUR:
1{2"amount": 15,3"currency": "EUR",4"source": {5"type": "bizum"6},7"customer": {8"phone": {9"country_code": "034",10"number": "700000000"11}12}13}
Information
Bizum payments expire after four minutes if the customer doesn't confirm them in their online banking app. However, when testing in the Sandbox environment, you can't simulate this expiration because you skip the confirmation step.
When integrating with Bizum, you can configure the following webhooks using our API, or the Dashboard:
When integrating Bizum, you can configure the following webhooks:
Webhook | Description |
---|---|
| Sent when a payment request has been successfully initiated. |
| Sent when a payment request has been successfully initiated and the payment capture is pending. |
| Sent when the payment has been successfully captured. |
| Occurs when a capture is declined. |
| Sent when a payment request has been rejected. |
| Sent when a payment request has expired. |