> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mangopay.com/guides/payment-methods/bizum/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server. # Bizum ## About Bizum is a popular mobile payment method in Spain that integrates directly with the user's banking app, enabling instant bank-to-bank transfers with just a phone number.
Region Spain
Currencies EUR
[Refunds](/guides/refunds) Yes, within 365 days
[Disputes](#disputes) Yes, up to 120 days
Preauthorization No
Recurring payments No
## How it works #### User chooses payment method On your app or website, the user selects Bizum as the payment method. #### Your platform initiates the pay-in You create the payment request by calling the [POST Create a Bizum PayIn](/api-reference/bizum/create-bizum-payin) endpoint. If you send the user's mobile phone number in the `Phone` parameter, then they receive a push notification from their banking app to authenticate the payment. In this case, no redirection is necessary. If you don't have the user's phone number, you must specify a `ReturnURL` and then redirect the user on the `RedirectURL` in the API response so that they can enter their phone number on a hosted screen. #### User authenticates payment The user authenticates their payment in their banking app. #### Your platform handles the outcome The pay-in `Status` changes from `CREATED` to `SUCCEEDED` or `FAILED` to indicate the outcome. You should also set up [hook notifications](/webhooks) for the relevant [event types](/webhooks/event-types): * `PAYIN_NORMAL_SUCCEEDED` * `PAYIN_NORMAL_FAILED` When you receive the hook, call [GET View a PayIn (Bizum)](/api-reference/bizum/view-payin-bizum) to confirm the outcome and, in case of failure, retrieve the `ResultCode` and `ResultMessage` for more information. ## Disputes A Bizum pay-in can be disputed by the user through their issuing bank. When this happens, Mangopay creates a Dispute object that is `CONTESTABLE`. You can be notified of this via the `DISPUTE_CREATED` webhook [event type](/webhooks/event-types#disputes), and call [GET View a Dispute](/api-reference/disputes/view-dispute) for more information. A user can open a dispute up to **120 days** after the pay-in's `Status` changed to `SUCCEEDED` (the `ExecutionDate`). Once a dispute is open, your platform has **30 days** to submit evidence. Once submitted, Bizum arbitrates the outcome within 15 days. ### Dispute reasons The reasons below may be given for a dispute. Note that the actual `DisputeReasonType` and `DisputeReasonMessage` may be different in wording.
Reason Description
Not received The service or product that should have been received in exchange for the payment has not been delivered to the user.
Defective The service or product delivered does not correspond to the description or is in defective condition.
Duplicated The transaction is duplicated.
Mismatched amounts There are discrepancies between the authorized amount and the amount actually transferred.
Refund not processed A refund was requested by the user but has not been received.
Already paid The service or product was paid through other payment methods.
Refund error A process error occurred in the case of a refund cancellation. For example, a user requested a refund and it was not processed correctly or was duplicated.
Unauthorized recurrence The user canceled the subscription or scheduled payments, but the platform continued charging the user's account despite the user's cancellation notice.
Unrecognized, delayed, or amended This reason is used when a separate transaction or additional charge is made without the user's consent, exceeding the initial instruction.
## Related resources #### [Endpoint](/api-reference/bizum/bizum-payin-object) The Bizum PayIn object #### [Testing](/testing/payment-methods#bizum) Learn about testing Bizum