Skip to content

Last updated: 26 June 2026 | Change log

Multibanco

Multibanco is an interbank network in Portugal. This network is run by SIBS (Sociedade Interbancária de Serviços S.A.) and enables many services, including payment services, to be hosted.

Note

Make yourself familiar with our API principles to ensure a resilient integration.

Product overview

Feature summary

Payment typeCountryAcceptance currencyRecurringReversalsPartial reversals
Post-pay voucherPortugalEUR
  • Minimum transaction value: 1.00 EUR
  • Maximum transaction value: 2,500 EUR

Get started

Use our API reference and set your headers.


Request

POST https://try.access.worldpay.com/apmPayments

Apply APM payment details directly using our APMs API, or use our Components SDK to create a session.

Example request

Collect the APM details and send an API request with these details to create a payment.

application/json
{ "transactionReference": "Memory265-13/08/1876", "orderReference": "apm-order-12345", "merchant": { "entity": "default" }, "instruction": { "method": "multibanco", "value": { "amount": 1600, "currency": "EUR" }, "narrative": { "line1": "Joe Plumbing Ltd" }, "paymentInstrument": { "type": "direct", "country": "PT" }, "resultUrls": { "pending": "https://worldpay.com/pending", "success": "https://worldpay.com/success", "cancel": "https://worldpay.com/cancel" }, "customer": { "email": "shopper@worldpay.com" } } }

Parameters

transactionReferencestring[ 1 .. 64 ] characters^[a-zA-Z0-9\-_/!@#$%()*=.:;?\[\]{}~+]*$required

For Bizum transactions, please follow this extra regex [a-zA-Z0-9]{4,12}

orderReferencestring[ 1 .. 64 ] characters^[a-zA-Z0-9\-_/!@#$%()*=.:;?\[\]{}~+]*$

A reference that you can apply to one or more payments according to your business needs. You may reuse the same reference across multiple payments, for example where:

  • the total amount for a single order is split across multiple payments
  • you use a single reference for each payment in a recurring agreement or split shipment scenario
merchantobject(MerchantV2)required
merchant.​entitystring[ 3 .. 32 ] characters^([A-Za-z0-9\- ]*)$required

Used to route the request in Access Worldpay, created as part of on-boarding.

Example: "default"
instructionobject(InstructionV2)required

Object that contains the payment type and details.

instruction.​methodstringrequired

Type of payment method.

Value"ach"
Discriminator
instruction.​valueobject(ValueV2)required

The value of the payment.

instruction.​value.​currencystringrequired
Enum"AED""AFN""ANG""AOA""ARS""AUD""AWG""AZN""BAM""BBD"
instruction.​value.​amountinteger(int64)[ 1 .. 2147483647 ]required

The amount in the lowest denomination of the currency, e.g. pennies for GBP, cents for USD.

Example: 1234
instruction.​narrativeobject(NarrativeV2)required
instruction.​narrative.​line1string[ 1 .. 24 ] characters^[a-zA-Z0-9-., ]*$required

The description shown on your customer's bank statement for the payment.

Example: "MindPalace"
instruction.​paymentInstrumentobject(AchPaymentInstrumentV2)required
instruction.​paymentInstrument.​typestringrequired
Enum"direct""checkout"
Discriminator
instruction.​paymentInstrument.​accountTypestringrequired

Account type.

Enum"checking""savings""corporate""corporateSavings"
Example: "checking"
instruction.​paymentInstrument.​accountNumberstring[ 1 .. 17 ] characters^[0-9]*$required

Account number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​routingNumberstring= 9 characters^[0-9]*$required

Routing number of direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​checkNumberstring[ 1 .. 15 ] characters^[0-9]*$

Check number of the direct debit account.

Example: "123456789"
instruction.​paymentInstrument.​companyNamestring[ 1 .. 40 ] characters

Company name if a corporate account.

Example: "Joe Plumbing Ltd."
instruction.​paymentInstrument.​billingAddressobject(AchBillingAddress)required
instruction.​paymentInstrument.​billingAddress.​address1string[ 1 .. 80 ] charactersrequired

First line of the address.

instruction.​paymentInstrument.​billingAddress.​address2string[ 1 .. 80 ] characters

Second line of the address.

instruction.​paymentInstrument.​billingAddress.​address3string[ 1 .. 80 ] characters

Third line of the address.

instruction.​paymentInstrument.​billingAddress.​postalCodestring[ 1 .. 15 ] charactersrequired

Postal code.

instruction.​paymentInstrument.​billingAddress.​citystring[ 1 .. 50 ] charactersrequired

City.

instruction.​paymentInstrument.​billingAddress.​statestring[ 1 .. 30 ] characters

State code of the billing address in ISO 3166-2 format.

Example: "US-OH"
instruction.​paymentInstrument.​billingAddress.​countryCodestringrequired
Enum"AD""AE""AF""AG""AI""AL""AM""AN""AO""AQ"
instruction.​customerobject(CustomerDetailsAch)required
instruction.​customer.​emailstring[ 1 .. 128 ] characters^(.+@.+\..+)?$

Your customer's email address.

Example: "customer@example.com"
instruction.​customer.​firstNamestring[ 1 .. 22 ] charactersrequired

Your customer's first name.

instruction.​customer.​lastNamestring[ 1 .. 22 ] charactersrequired

Your customer's last name.

instruction.​customer.​customerIdstring[ 1 .. 15 ] characters[a-zA-Z0-9]*

Your unique reference for the customer so that the 'pay faster next time' function can be used during checkout. This allows your customer's chosen bank to be stored for their next payment.

Example: "44528abcd"

Response

Example response

{
  "paymentInstrument": {
    "method": "multibanco",
    "type": "direct"
  },
  "paymentId": "eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEbSibICjg9oWBDkoVO2KwlcxPVS3no:Ih5XitYN0H06VJpX:bvbw7McvoP:E6S0L1+lDe8iZ9K6c9KAEix5K1S6AaFT9PiiV:KsP+z2Cdr9o:XFrnd4GNEHV7yDuZt9Jyqf5XZUPFYfD4fs2JzaCZKV3L7DQm7JfXl6rjXA0ubX6hJpY5kUX4Djm9+PFFKUS6+LdORYaAdburi8EX32V9tpYSSzNI+ETqS5RDlRGivjQxKM2Ks:rlczHJ2DGe1:xPRqjBWEQYSfjhGO0ig5hWkDZE8WUCW:tC4G::vVo3ySleCbEoL1DciLmD44Risvo6Qgyc2sVBwmk1yqyduyRKK6z:U2p2C6Bg4E5vMB+TefQQ==",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://try.access.worldpay.com/apmPayments/eyJrIjoiYXBtLXNlcnZpY2UtZGVmYXVsdCIsImxpbmtWZXJzaW9uIjoiNi4wLjAifQ==.BnnxxcMle38OazhwbF8J+4rtJi8CAq:Y3zUOn1dw6VWfvx:PHL5L0S+5ara5vz6ouV5yBmVUQCiSwQjs+1x5qJIJxAKWMWc2Mlb1doricEbSibICjg9oWBDkoVO2KwlcxPVS3no:Ih5XitYN0H06VJpX:bvbw7McvoP:E6S0L1+lDe8iZ9K6c9KAEix5K1S6AaFT9PiiV:KsP+z2Cdr9o:XFrnd4GNEHV7yDuZt9Jyqf5XZUPFYfD4fs2JzaCZKV3L7DQm7JfXl6rjXA0ubX6hJpY5kUX4Djm9+PFFKUS6+LdORYaAdburi8EX32V9tpYSSzNI+ETqS5RDlRGivjQxKM2Ks:rlczHJ2DGe1:xPRqjBWEQYSfjhGO0ig5hWkDZE8WUCW:tC4G::vVo3ySleCbEoL1DciLmD44Risvo6Qgyc2sVBwmk1yqyduyRKK6z:U2p2C6Bg4E5vMB+TefQQ=="
    }
  },
  "_actions": {},
  "redirect": "http://secure-test.worldpay.com/redirect?tokenId=607aa358-f5ef-4ac8-bd66-d7d5e92a5169",
  "commandId": "cmdQWhyosPRf9MP3x9LKqAvw0"
}

Schema

paymentIdstring

The identifier of the payment resource.

lastEventstring
Enum"authorized""cancelFailed""cancelled""cancelRequested""sentForSettlement""sentForAuthorization""settlementFailed""chargebackReversed""chargedBack""disputeExpired"
_linksobject(Links)

Links to resources related to the request.

_actionsobject(ActionsV2)
redirectstring

The URL to redirect your customer to, or a QR code in Base64 to show to your customer, in order to complete the transaction.

commandIdstring

An action ID generated by us, identifying a single merchant interaction.

Example: "cmdYNdIHBPJwbkjLiykzTx0"
paymentInstrumentAll others (object) or PayPal (object) or SEPA DD (object) or Klarna (recurring) token (object)(PaymentInstrument)

Payment instrument details for the payment response.

One of:

Payment instrument for: ACH, Alipay China, Alipay Hong Kong, Alipay Plus, BANCOMAT Pay, Bancontact, Bizum, BLIK, EFT, Euteller, iDEAL guest, iDEAL recurring, Klarna, Klarna (recurring), Konbini, Multibanco, MyBank, Open Banking, PaysafeCard, Pix, Przelewy24, SafetyPay, Satispay, Swish, Trustly, China UnionPay, WeChat Pay.

transactionCodestring

For Pix payments - display to your customer for them to copy and paste in the Pix app.

For Swish payments - use this value as the {token} in the custom URL scheme: swish://paymentrequest?token={token}&callbackurl={callbackURL}. This will prompt the app to open, allowing your customer to complete their payment.

Example: "IZQ3iUfePwiWiwldJlipl8NGVA7w5IUg"
Additional information
ParameterExampleDescription
Multibanco reference679+115+881The payment reference that the shopper must use to complete the payment.
Multibanco entity11893The entity reference that the shopper must use to complete the payment.
Payment amount100The amount that the shopper should pay, expressed in minor currency units. For example, 100 = 100 Euro cents.
Payment currencyEURThe currency corresponding to the PaymentAmount.

In the above example, you must display a message of the following form to the shopper:

"To complete your payment, please make a deposit using the details below. To avoid delays in your payment being processed, please ensure that you use the exact details and payment amount shown below. You can pay through your Internet bank or at an ATM. Reference: 679115881 Entity: 11893 Amount: EUR 1"

Pending URL example: http://www.worldpay.com/pendingURL?orderKey=BIBIT^DEMO^Example_Multibanco_Order&status=OPEN&multibancoReference=679+115+881&multibanco_Entity=11893&multibancoPaymentAmount=100&multibancoPaymentCurrency=EUR

Errors

Check out our API reference for more responses or error codes.


Next steps

Manage your Multibanco payment