Our iOS Drop-in renders Online banking Poland in your payment form, and redirects the shopper to their selected bank's website or app to complete the payment.
When making a Online banking Poland payment, you additionally need to:
- Handle the redirect result after the shopper returns to your website.
Before you begin
This page explains how to add Online banking Poland to your existing iOS Drop-in integration. The iOS Drop-in integration works the same way for all payment methods. If you haven't done this integration yet, refer to our Drop-in integration guide.
Before starting your Online banking Poland integration:
- Make sure that you have set up your back end implementation, and added Drop-in to your payment form.
- Add Online banking Poland in your test Customer Area.
Show Online banking Poland in your payment form
Drop-in uses the countryCode
and the amount.currency
from your /paymentMethods request to show the available payment methods to your shopper.
To show Online banking Poland in your payment form, you need to specify in your /paymentMethods request:
- countryCode: PL
- amount.currency: PLN
After the shopper selects a payment method and provides payment details, Drop-in invokes the didSubmit
method which contains data.paymentMethod
. Pass data.paymentMethod
to your server and make a payment request.
Make a payment
When the shopper proceeds to pay, Drop-in invokes the didSubmit
method which contains data.paymentMethod
.
- Pass
data.paymentMethod
to your server. - From your server, make a /payments request, specifying:
paymentMethod
: Thestate.data.paymentMethod
from thedidSubmit
event from your front end.reference
: Your unique reference for this payment.amount
: The amount that the shopper needs to pay.returnUrl
: The URL the shopper will be redirected back to after they complete the payment. This URL can have a maximum of 1024 characters.
curl https://checkout-test.adyen.com/v68/payments \
-H "x-API-key: YOUR_X-API-KEY" \
-H "content-type: application/json" \
-d '{
"merchantAccount":"YOUR_MERCHANT_ACCOUNT",
"reference":"YOUR_ORDER_NUMBER",
"amount":{
"currency":"PLN",
"value":1000
},
"{hint:state.data.paymentMethod from onSubmit}paymentMethod{/hint}":{
"type":"onlineBanking_PL"
},
"returnUrl":"my-app://",
}'
# Set your X-API-KEY with the API key from the Customer Area.
adyen = Adyen::Client.new
adyen.api_key = "YOUR_X-API-KEY"
response = adyen.checkout.payments({
:amount => {
:currency => "PLN",
:value => 1000
},
:reference => "YOUR_ORDER_NUMBER",
:paymentMethod => {
:type => "onlineBanking_PL"
},
:returnUrl => "my-app://",
:merchantAccount => "YOUR_MERCHANT_ACCOUNT"
})
// Set YOUR_X-API-KEY with the API key from the Customer Area.
// Change to Environment.LIVE and add the Live URL prefix when you're ready to accept live payments.
Client client = new Client("YOUR_X-API-KEY", Environment.TEST);
Checkout checkout = new Checkout(client);
PaymentsRequest paymentsRequest = new PaymentsRequest();
String merchantAccount = "YOUR_MERCHANT_ACCOUNT";
paymentsRequest.setMerchantAccount(merchantAccount);
Amount amount = new Amount();
amount.setCurrency("PLN");
amount.setValue(15000L);
paymentsRequest.setAmount(amount);
DefaultPaymentMethodDetails paymentMethodDetails = new DefaultPaymentMethodDetails();
paymentMethodDetails.setType("onlineBanking_PL");
paymentsRequest.setPaymentMethod(paymentMethodDetails);
paymentsRequest.setReference("YOUR_ORDER_NUMBER");
paymentsRequest.setReturnUrl("my-app://");
PaymentsResponse paymentsResponse = checkout.payments(paymentsRequest);
// Set your X-API-KEY with the API key from the Customer Area.
$client = new \Adyen\Client();
$client->setXApiKey("YOUR_X-API-KEY");
$service = new \Adyen\Service\Checkout($client);
$params = array(
"amount" => array(
"currency" => "PLN",
"value" => 1000
),
"reference" => "YOUR_ORDER_NUMBER",
"paymentMethod" => array(
"type" => "onlineBanking_PL"
),
"returnUrl" => "my-app://",
"merchantAccount" => "YOUR_MERCHANT_ACCOUNT"
);
$result = $service->payments($params);
#Set your X-API-KEY with the API key from the Customer Area.
adyen = Adyen.Adyen()
adyen.client.xapikey = 'YOUR_X-API-KEY'
result = adyen.checkout.payments({
'amount': {
'value': 1000,
'currency': 'PLN'
},
'reference': 'YOUR_ORDER_NUMBER',
'paymentMethod': {
'type': 'onlineBanking_PL'
},
'returnUrl': 'my-app://',
'merchantAccount': 'YOUR_MERCHANT_ACCOUNT'
})
// Set your X-API-KEY with the API key from the Customer Area.
var client = new Client ("YOUR_X-API-KEY", Environment.Test);
var checkout = new Checkout(client);
var amount = new Model.Checkout.Amount("PLN", 1000);
var details = new Model.Checkout.DefaultPaymentMethodDetails{
Type = "onlineBanking_PL",
};
var paymentRequest = new Adyen.Model.Checkout.PaymentRequest
{
Reference = "YOUR_ORDER_NUMBER",
Amount = amount,
ReturnUrl = @"my-app://",
MerchantAccount = "YOUR_MERCHANT_ACCOUNT",
PaymentMethod = details
};
var paymentResponse = checkout.Payments(paymentsRequest);
// Set your X-API-KEY with the API key from the Customer Area.
const {Client, Config, CheckoutAPI} = require('@adyen/api-library');
const config = new Config();
// Set your X-API-KEY with the API key from the Customer Area.
config.apiKey = '[API_KEY]';
config.merchantAccount = '[YOUR_MERCHANT_ACCOUNT]';
const client = new Client({ config });
client.setEnvironment("TEST");
const checkout = new CheckoutAPI(client);
checkout.payments({
amount: { currency: "PLN", value: 1000 },
paymentMethod: {
type: "onlineBanking_PL"
},
reference: "YOUR_ORDER_NUMBER",
merchantAccount: config.merchantAccount,
returnUrl: "my-app://"
}).then(res => res);
The /payments response contains an action
object with the information needed to redirect the shopper.
- Pass the
action
object to your client app. Drop-in needs this to redirect the shopper to the issuing bank's website or app.
Handle the redirect result
Drop-in redirects the shopper to the issuing bank's app or website where they complete the payment.
- To inform Drop-in when the shopper returns to your app, implement the following in your
UIApplicationDelegate
:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any] = [:]) -> Bool {
RedirectComponent.applicationDidOpen(from: url)
return true
}
After Drop-in completes the action, it invokes the didProvide
method.
- From your server, make a POST /payments/details request providing the
data
from thedidProvide
method from your client app.
You receive a response containing:
resultCode
: Use this to present the result to your shopper.-
pspReference
: Our unique identifier for the transaction.
Present the payment result
Use the resultCode that you received in the /payments/details response to present the payment result to your shopper.
The resultCode
values you can receive for Online banking Poland are:
resultCode | Description | Action to take |
---|---|---|
Authorised | The payment was successful. | Inform the shopper that the payment has been successful. You will receive the funds in 2-3 days. |
Cancelled | The shopper cancelled the payment while on their bank's website. | Ask the shopper whether they want to continue with the order, or ask them to select a different payment method. |
Pending or Received |
The shopper has completed the payment but the final result is not yet known. It may take minutes or hours for the Online banking Poland payments network to confirm this. | Inform the shopper that you've received their order, and are waiting for the payment to be completed. You will receive the final result of the payment in an AUTHORISATION notification. |
Refused | The payment was refused by the shopper's bank. | Ask the shopper to try the payment again using a different payment method. |
Test and go live
Check the status of Online banking Poland test payments in your Customer Area > Transactions > Payments.
Before you can accept live Online banking Poland payments, you need to submit a request for Online banking Poland in your live Customer Area.