IFrame integration - Hosted card iFrame
With the hosted card iFrame you can use our hosted card page in an iFrame. This iFrame will also be used to (optionally) show 3D Secure to the customer.
Transaction initialization
        In addition to the normal
        initializing a card transaction
        request you have to supply the details.origin parameter. Optionally you can supply a
        details.redirect_parent_function parameter.
        
        Here is a valid request body that initiates the card transaction:
    
{
    "payment_profile": "7c23a50d-8699-431c-a82b-a78718d2b6f6",
    "amount": 14,
    "customer": "cbbfa6ec-fb44-4da4-94c4-d81e92fd43e6",
    "customer_ip": "127.0.0.1",
    "dynamic_descriptor": "orderdesc01",
    "merchant_reference": "my order id",
    "payment_product": "card",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/86.0.4240.198 Safari/537.36",
    "details": {
        "redirect_url": "https://example.com/finalize",
        "origin": "https://example.com/",
        "redirect_parent_function": "iframeParent"
    },
    "webhook_transaction_update": "https://example.com"
}
Redirect URL
        When you supply a details.redirect_url the customer will be redirected (in the iFrame) to this URL.
        If you do not want to show your result URL in the iFrame there are two options:
        
        Omit the redirect_url
        For an iFrame transaction it is allowed to omit the details.redirect_url from the transaction
        initialization. We'll then show the payment link result page in the iFrame.
        
        Redirect the parent
        You can use the details.redirect_parent_function (alphanumeric) parameter to set a redirect
        function name. When the customer is sent to a result URL we'll use Window.postMessage to pass an
        object to the parent window. Allowing you to redirect the customer in the parent window.
        
        The object we'll be passing using Window.postMessage will also contain your function name.
        Example of the object (e.data in the event listener):
    
{
    "function": "iframeParent",
    "url": "https://example.com/finalize?transaction_id=9e0377c06-a9e0-43a8-9885-8799a8338b5a"
}
Example of the function necessary in the parent window:
/** iFrame event listener */
window.addEventListener('message', (e) => {
    if (e.data.function === 'iframeParent') {
        window.location.href = e.data.url;
    }
});
Response - Show the iFrame
        The transaction initiation call will result in a response. In this response, we reply with a JSON representation
        of an initiated transaction. This transaction object also includes the details property, which has
        been augmented with an approval_url. You will need to use the approval_url as the
        iFrame src attribute.
    
In order to correctly display the hosted card and 3D Secure pages, we recommend a minimum size of 500px (width) * 600px (height).
Example
To see an example, take a look at the example checkout.
