Multibanco integration
Introduction
This section deals with Multibanco, Portuguese payment method. It works through a simple authorization that is not necessary to capture. The following parameters are returned by the platform:
- 
                EXTERNALENTITYID int (1-10)Merchant account’s reference Example: 
- 
                EXTERNALREFERENCE int (9)Transaction’s reference (string left padded with 0 of 9 digits) Example: 19 
Those parameters’ values have to be displayed with the total amount to the cardholder to let him finalize the transaction.
Compatible operations and options
- Compatible operations:
Server to server integration
In this mode, you have to send a POST request containing your order’s parameters over HTTPS to the Payplug platform.
Authorization
Example
Here is a server to server request example:
$> curl --request POST --url "https://secure-test.dalenys.com/front/service/rest/process" \
--data "method=authorization" \
--data "params[IDENTIFIER]=Demo Shop" \
--data "params[OPERATIONTYPE]=authorization" \
--data "params[ORDERID]=1234" \
--data "params[AMOUNT]=1000" \
--data "params[CLIENTIDENT]=john.snow" \
--data "params[CLIENTEMAIL][email protected]" \
--data "params[CLIENTUSERAGENT]=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0" \
--data "params[CLIENTIP]=10.1.1.1" \
--data "params[DESCRIPTION]=Knows nothing" \
--data "params[HASH]=15477dcb8687adf90fa51e418f3c1a2d025f40b177a978c2734514734633b3c4" \
--data "params[VERSION]=3.0" \
Parameters
- 
                AMOUNT integerThe transaction amount in the smallest money decimal (e.g. cents for euro). Example: 1000 
- 
                APIKEYID string (36)ID used to authenticate a transaction using APIKEY.Example: a688b3a1-d227-4cdd-9454-5d7cfcc74ef9 
- 
                BILLINGADDRESS string(1-50)The billing address. Be careful not to integrate any line breaks. Example: 285 Fulton Street 
- 
                BILLINGCITY string(1-255)The billing city. Example: New York 
- 
                BILLINGCOUNTRY string(2)The country code (ISO_3166-1_alpha-2). Example: US 
- 
                BILLINGFIRSTNAME string(1-15)The first name part of the billing address. Example: John 
- 
                BILLINGLASTNAME string(1-15)The last name part of the billing address. Example: Doe 
- 
                BILLINGPHONE string(1-32)Billing phone number in international (E.164) format. Example: +33111111111 
- 
                BILLINGPOSTALCODE string(1-9)The billing postal code. Example: 10007 
- 
                CARDFULLNAME string(1-255)The holder’s full name (as described on the payment method). For 3-D Secure operations, the field CARDFULLNAME can only contain the following characters : [a-zA-Z1-9 -] Example: JOHN SNOW 
- 
                CART[X][DISCOUNT] floatApplied discount in percentage. The decimal separator is the dot symbol. Example: 10.5 
- 
                CART[X][MERCHANTITEMID] stringItem ID in the merchant system. Example: REF-123456 
- 
                CART[X][NAME] stringItem name. Example: Laser printer 
- 
                CART[X][PRICE] intUnit price in cents, including potential taxes and discounts. Example: 20000 
- 
                CART[X][QUANTITY] integerQuantity of this item. Example: 3 
- 
                CART[X][SUBMERCHANTEXTERNALID] string(1-64)Submerchant account identifier in the marketplace. This field allow a special value “OPERATOR” when the item is sold by the marketplace itself (and not a sub-merchant). Example: shop1.com 
- 
                CART[X][TAX] floatApplied taxes in percentage. The decimal separator is the dot symbol. Example: 19.5 
- 
                CART[X][TOTALAMOUNT] integerTotal amount based on PRICE, QUANTITY. Also FEES when applied. Example: 60000 
- 
                CLIENTADDRESS string(1-510)The user’s address. Example: 285 Fulton Street. 
- 
                CLIENTDOB date(YYYY-MM-DD)The user’s date of birth. Example: 1982-06-20 
- 
                CLIENTEMAIL email(5-255)The user’s email. Example: [email protected] 
- 
                CLIENTIDENT string(1-255)Unique identifier of the user in your application (e.g. a login or a primary key). Example: john.snow 
- 
                CLIENTIP ipv4The user’s public IP address. Example: 10.1.1.1 
- 
                CLIENTREFERRER string(1-255)The user’s HTTP referrer URL. Example: https://your_shop.com/order?id=1234 
- 
                CLIENTUSERAGENT string(1-255)The HTTP user agent. Example: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 
- 
                DESCRIPTION string(1-510)A short description of the operation, can be used to trigger fraud actions. Don’t hesitate to ask your Payment Manager for some advice on this topic. Example: Knows nothing 
- 
                EXTRADATA string(1-255)Free field (Payplug will send you back the content of the EXTRADATA you specified ahead). Example: referrer=myshop.com;order=premium 
- 
                EXTRADATA string(1-255)Free field (Payplug will send you back the content of the EXTRADATA you specified ahead). Example: referrer=myshop.com;order=premium 
- 
                HASH string(64)The transaction’s hash as described in the dedicated section. Example: 15477dcb8687adf90fa51e418f3c1a2d025f40b177a978c2734514734633b3c4 
- 
                IDENTIFIER string(1-32)Your processing account technical identifier. Example: Demo Shop 
- 
                METADATA string(1-255)Additional transactional data. Contact your account manager for more informations. Example: @METADATA-MYWEBSITE 
- 
                OPERATIONTYPE authorizationThe action you want to process. Example: payment 
- 
                ORDERID string(1-40)Unique ID associated to an order in the merchant’s database (as specified in your initial POST request) Example: 1234 
- 
                SHIPTOADDRESS string(1-50)The shipping address. Example: 55 rue de la liberté 
- 
                SHIPTOCITY string(1-255)The shipping city. Example: New York 
- 
                SHIPTOCOUNTRY string(2)The country code (ISO_3166-1_alpha-2 format) Example: US 
- 
                SHIPTOFIRSTNAME string(1-15)Holder’s first name in the shipping address. Example: John 
- 
                SHIPTOLASTNAME string(1-30)Holder’s last name in the shipping address. Example: Doe 
- 
                SHIPTOPHONE string(1-32)Shipping phone number in international (E.164) format. Example: +33111111111 
- 
                SHIPTOPOSTALCODE string(1-9)The shipping postal code. Example: 10007 
- 
                VERSION3.0The API protocol version. Example: 3.0 
Request result
Here is the request result from the platform:
- 
                DESCRIPTOR stringThe transaction label sent to the bank network. The transaction will display with this label on the user’s bank statement. Example: myshop.com 
- 
                EXECCODE string(4)The operation result code. (See the complete list of execution code) Example: 0000 
- 
                EXTERNALENTITYID int (1-10)Merchant account’s reference Example: 
- 
                EXTERNALREFERENCE int (9)Transaction’s reference (string left padded with 0 of 9 digits) Example: 19 
- 
                MESSAGE string(no length limit)The operation result description linked to EXECCODE.Example: The transaction has been accepted 
- 
                OPERATIONTYPE authorizationThe action you want to process. Example: payment 
- 
                TRANSACTIONID string(1-32)Unique Payplug transaction ID. Make sure to store this ID in your database. Example: A1123456 
Notification result parameters
Please see the dedicated section about notification and redirection
Here is the request result from the platform:
- 
                AMOUNT integerThe transaction amount in the smallest money decimal (e.g. cents for euro). Example: 1000 
- 
                CLIENTEMAIL email(5-255)The user’s email. Example: [email protected] 
- 
                CLIENTIDENT string(1-255)Unique identifier of the user in your application (e.g. a login or a primary key). Example: john.snow 
- 
                CURRENCY string(3)Currency code (ISO 4217 format). Example: EUR 
- 
                DESCRIPTOR stringThe transaction label sent to the bank network. The transaction will display with this label on the user’s bank statement. Example: myshop.com 
- 
                EXECCODE string(4)The operation result code. (See the complete list of execution code) Example: 0000 
- 
                EXTERNALENTITYID int (1-10)Merchant account’s reference Example: 
- 
                EXTERNALREFERENCE int (9)Transaction’s reference (string left padded with 0 of 9 digits) Example: 19 
- 
                HASH string(64)The transaction’s hash as described in the dedicated section. Example: 15477dcb8687adf90fa51e418f3c1a2d025f40b177a978c2734514734633b3c4 
- 
                IDENTIFIER string(1-32)Your processing account technical identifier. Example: YOUR_IDENTIFIER 
- 
                LANGUAGEfr,en,de,es,it,nl,zh,ru,pt,skConfigure the hosted form display language. Example: en 
- 
                MESSAGE string(no length limit)The operation result description linked to EXECCODE.Example: The transaction has been accepted 
- 
                OPERATIONTYPE authorizationThe action you want to process. Example: payment 
- 
                ORDERID string(1-40)Unique ID associated to an order in the merchant’s database (as specified in your initial POST request) Example: 1234 
- 
                TRANSACTIONID string(1-32)Unique Payplug transaction ID. Make sure to store this ID in your database. Example: A1123456 
- 
                VERSION3.0The API protocol version. Example: 3.0 
info
A first notification is sent upon authorization, and a second one when the cardholder completes the transaction.
Refund via SCT
Refunds can either be processed through server-to-server request or Payplug Dashboard.
info
Refunds are not natively supported by Multibanco, so Payplug provides a Sepa Credit Transfer feature allowing refunds. Following additional parameters are required:
BANKandIBAN.
Example
Here is a server to server request example:
$> curl --request POST --url "https://secure-test.dalenys.com/front/service/rest/process" \
--data "method=refund" \
--data "params[IDENTIFIER]=Demo Shop" \
--data "params[OPERATIONTYPE]=refund" \
--data "params[TRANSACTIONID]=A1123456" \
--data "params[ORDERID]=1234" \
--data "params[DESCRIPTION]=Knows nothing" \
--data "params[VERSION]=3.0" \
--data "params[CARDFULLNAME]=JOHN SNOW" \
--data "params[BANK]=ABNANL2A" \
--data "params[IBAN]=DE11888888889999999999" \
--data "params[DESCRIPTOR]=myshop.com" \
--data "params[HASH]=15477dcb8687adf90fa51e418f3c1a2d025f40b177a978c2734514734633b3c4" \
Parameters
- 
                AMOUNT integerThe amount to refund. When not specified, refund 100% of the initial transaction resting amount. Could not be higher than the resting amount. Example: 1000 
- 
                BANK string(8-11)Bank Identifier Code (BIC). Example: ABNANL2A 
- 
                CARDFULLNAME string(1-255)The holder’s full name (as described on the payment method). For 3-D Secure operations, the field CARDFULLNAME can only contain the following characters : [a-zA-Z1-9 -] Example: JOHN SNOW 
- 
                DESCRIPTION string(1-510)A short description of the operation, can be used to trigger fraud actions. Don’t hesitate to ask your Payment Manager for some advice on this topic. Example: Knows nothing 
- 
                DESCRIPTOR stringThe transaction label sent to the bank network. The transaction will display with this label on the user’s bank statement. Example: myshop.com 
- 
                EXTRADATA string(1-255)Free field (Payplug will send you back the content of the EXTRADATA you specified ahead). Example: referrer=myshop.com;order=premium 
- 
                HASH string(64)The transaction’s hash as described in the dedicated section. Example: 15477dcb8687adf90fa51e418f3c1a2d025f40b177a978c2734514734633b3c4 
- 
                IBAN string(1-34)IBAN Example: DE11888888889999999999 
- 
                IDENTIFIER string(1-32)Your processing account technical identifier. Example: Demo Shop 
- 
                OPERATIONTYPErefundThe action you want to process. Example: payment 
- 
                ORDERID string(1-40)Unique ID associated to an order in the merchant’s database (as specified in your initial POST request) Example: 1234 
- 
                TRANSACTIONID string(1-32)The capture’sTRANSACTIONIDyou want torefund.Example: A1123456 
- 
                VERSION3.0The API protocol version. Example: 3.0 
Request result
Here is the request result from the platform:
- 
                AMOUNT integerThe transaction amount in the smallest money decimal (e.g. cents for euro). Example: 1000 
- 
                DESCRIPTOR stringThe transaction label sent to the bank network. The transaction will display with this label on the user’s bank statement. Example: myshop.com 
- 
                EXECCODE string(4)The operation result code. (See the complete list of execution code) Example: 0000 
- 
                MESSAGE string(no length limit)The operation result description linked to EXECCODE.Example: The transaction has been accepted 
- 
                OPERATIONTYPErefundThe action you want to process. Example: payment 
- 
                TRANSACTIONID string(1-32)Unique Payplug transaction ID. Make sure to store this ID in your database. Example: A1123456 
Notification result parameters
Here is the request result from the platform:
- 
                AMOUNT integerThe transaction amount in the smallest money decimal (e.g. cents for euro). Example: 1000 
- 
                BANK string(8-11)Bank Identifier Code (BIC). Example: ABNANL2A 
- 
                CARDFULLNAME string(1-255)The holder’s full name (as described on the payment method). Example: JOHN SNOW 
- 
                CLIENTEMAIL email(5-255)The user’s email. Example: [email protected] 
- 
                CLIENTIDENT string(1-255)Unique identifier of the user in your application (e.g. a login or a primary key). Example: john.snow 
- 
                CURRENCY string(3)Currency code (ISO 4217 format). Example: EUR 
- 
                DESCRIPTOR stringThe transaction label sent to the bank network. The transaction will display with this label on the user’s bank statement. Example: myshop.com 
- 
                EXECCODE string(4)The operation result code. (See the complete list of execution code) Example: 0000 
- 
                EXTERNALENTITYID int (1-10)Merchant account’s reference Example: 
- 
                EXTERNALREFERENCE int (9)Transaction’s reference (string left padded with 0 of 9 digits) Example: 19 
- 
                HASH string(64)The transaction’s hash as described in the dedicated section. Example: 15477dcb8687adf90fa51e418f3c1a2d025f40b177a978c2734514734633b3c4 
- 
                IBAN string(1-34)IBAN Example: DE11888888889999999999 
- 
                IDENTIFIER string(1-32)Your processing account technical identifier. Example: YOUR_IDENTIFIER 
- 
                LANGUAGEfr,en,de,es,it,nl,zh,ru,pt,skConfigure the hosted form display language. Example: en 
- 
                MESSAGE string(no length limit)The operation result description linked to EXECCODE.Example: The transaction has been accepted 
- 
                OPERATIONTYPErefundThe action you want to process. Example: payment 
- 
                ORDERID string(1-40)Unique ID associated to an order in the merchant’s database (as specified in your initial POST request) Example: 1234 
- 
                TRANSACTIONID string(1-32)Unique Payplug transaction ID. Make sure to store this ID in your database. Example: A1123456 
- 
                VERSION3.0The API protocol version. Example: 3.0