diff --git a/assets/tipuesearch/tipuesearch_content.js b/assets/tipuesearch/tipuesearch_content.js index ee3ab5928..7989c57e9 100644 --- a/assets/tipuesearch/tipuesearch_content.js +++ b/assets/tipuesearch/tipuesearch_content.js @@ -1,38 +1,38 @@ var tipuesearch = {"pages": [{ "title": "3-D Secure 2", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/core/3d-secure-2.html" + "url": "/checkout/v3/dsca/features/core/3d-secure-2.html" },{ "title": "3-D Secure 2", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/core/3d-secure-2.html" + "url": "/checkout/v3/standard/features/core/3d-secure-2.html" },{ "title": "3-D Secure 2", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/core/3d-secure-2.html" + "url": "/checkout/v3/basic/features/core/3d-secure-2.html" },{ "title": "3-D Secure 2", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/core/3d-secure-2.html" + "url": "/checkout/v3/tailored/features/core/3d-secure-2.html" },{ "title": "3-D Secure 2", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/core/3d-secure-2.html" + "url": "/checkout/v2/features/core/3d-secure-2.html" },{ "title": "3-D Secure 2", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "text": "", "tags": "", - "url": "/checkout/v3/tailored/features/core/3d-secure-2.html" + "url": "/products/checkout-v3-dev/starter/features/core/3d-secure-2.html" },{ "title": "3-D Secure 2", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "text": "", "tags": "", - "url": "/checkout/v3/basic/features/core/3d-secure-2.html" + "url": "/products/checkout-v3-dev/payments-only/features/core/3d-secure-2.html" },{ "title": "", "text": "Uh oh:heavy_exclamation_mark: Seems like you have taken a wrong turn somewhere :construction: :dragon: This page seems to play hide and seek with you. :dragon_face: :circus_tent: Perhaps attempting a search or clicking around in the menus will help? :space_invader: Or perhaps your :princess: is in another castle? :mushroom:", @@ -42,27 +42,22 @@ var tipuesearch = {"pages": [{ "title": "Abort", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/core/abort.html" + "url": "/products/checkout-v3-dev/starter/features/core/abort.html" },{ "title": "Abort", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/core/abort.html" - },{ - "title": "After payment is completed", - "text": "After paaaayment Payment is done? Great, here is what will happen now. First we’ll subtract the money from your account, then a wizard will attempt a grand spell to carry the money on the back of ants to transfer it to a safe place. A secret place. A place with a secret.", - "tags": "", - "url": "/checkout-more/after-payment.html" + "url": "/products/checkout-v3-dev/payments-only/features/core/abort.html" },{ "title": "After Payment", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci. Capture Features", + "text": "", "tags": "", - "url": "/checkout/v2/after-payment.html" + "url": "/checkout/v3/standard/after-payment.html" },{ "title": "After Payment", "text": "", "tags": "", - "url": "/checkout/v3/standard/after-payment.html" + "url": "/checkout/v3/basic/after-payment.html" },{ "title": "After Payment", "text": "", @@ -70,9 +65,14 @@ var tipuesearch = {"pages": [{ "url": "/checkout/v3/tailored/after-payment.html" },{ "title": "After Payment", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci. Capture Features", "tags": "", - "url": "/checkout/v3/basic/after-payment.html" + "url": "/checkout/v2/after-payment.html" + },{ + "title": "After payment is completed", + "text": "After paaaayment Payment is done? Great, here is what will happen now. First we’ll subtract the money from your account, then a wizard will attempt a grand spell to carry the money on the back of ants to transfer it to a safe place. A secret place. A place with a secret.", + "tags": "", + "url": "/checkout-more/after-payment.html" },{ "title": "Alpha", "text": "", @@ -85,84 +85,84 @@ var tipuesearch = {"pages": [{ "url": "/resources/beta.html" },{ "title": "Callback", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/core/callback.html" + "url": "/checkout/v3/dsca/features/technical-reference/callback.html" },{ "title": "Callback", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/core/callback.html" + "url": "/checkout/v3/standard/features/technical-reference/callback.html" },{ "title": "Callback", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/callback.html" + "url": "/checkout/v3/basic/features/technical-reference/callback.html" },{ "title": "Callback", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/callback.html" + "url": "/checkout/v3/tailored/features/technical-reference/callback.html" },{ "title": "Callback", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/callback.html" + "url": "/checkout/v2/features/technical-reference/callback.html" },{ "title": "Callback", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "text": "", "tags": "", - "url": "/checkout/v3/tailored/features/technical-reference/callback.html" + "url": "/products/checkout-v3-dev/starter/features/core/callback.html" },{ "title": "Callback", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "text": "", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/callback.html" + "url": "/products/checkout-v3-dev/payments-only/features/core/callback.html" },{ "title": "Cancel", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/core/cancel.html" + "url": "/checkout/v3/dsca/features/core/cancel.html" },{ "title": "Cancel", - "text": "Cancel The cancellations resource lists the cancellation transactions on a specific payment. Create Cancel Transaction Perform the create-cancel operation to cancel a previously created payment. You can only cancel a payment - or part of payment - not yet captured. Cancel Request Request 1 2 3 4 5 6 7 8 9 10 11 12 <!-- POST /psp//payments//cancellations HTTP/1.1 --> POST /psp/payments/cancellations HTTP/1.1 Host: Authorization: Bearer <AccessToken> Content-Type: application/json { \"transaction\": { \"description\": \"Test Cancellation\", \"payeeReference\": \"ABC123\" } } Show fields Hide fields check︎ Field Type Description check︎ transaction string The transaction object contains information about this cancellation. check︎ └➔ description string A textual description of the reason for the cancellation. code fence test Cancel Response Cancel Sequence Diagram Cancel can only be done on a authorized transaction. If you do cancel after doing a part-capture you will cancel the different between the capture amount and the authorization amount. sequenceDiagram participant SwedbankPay as Swedbank Pay Merchant->>SwedbankPay: POST < cancellation> activate Merchant activate SwedbankPay SwedbankPay-->>Merchant: transaction resource deactivate SwedbankPay deactivate Merchant", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/core/cancel.html" + "url": "/checkout/v3/standard/features/core/cancel.html" },{ "title": "Cancel", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/core/cancel.html" + "url": "/checkout/v3/basic/features/core/cancel.html" },{ "title": "Cancel", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/core/cancel.html" + "url": "/checkout/v3/tailored/features/core/cancel.html" },{ "title": "Cancel", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/core/cancel.html" + "url": "/checkout/v2/features/core/cancel.html" },{ "title": "Cancel", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "text": "Cancel The cancellations resource lists the cancellation transactions on a specific payment. Create Cancel Transaction Perform the create-cancel operation to cancel a previously created payment. You can only cancel a payment - or part of payment - not yet captured. Cancel Request Request 1 2 3 4 5 6 7 8 9 10 11 12 <!-- POST /psp//payments//cancellations HTTP/1.1 --> POST /psp/payments/cancellations HTTP/1.1 Host: Authorization: Bearer <AccessToken> Content-Type: application/json { \"transaction\": { \"description\": \"Test Cancellation\", \"payeeReference\": \"ABC123\" } } Show fields Hide fields check︎ Field Type Description check︎ transaction string The transaction object contains information about this cancellation. check︎ └➔ description string A textual description of the reason for the cancellation. code fence test Cancel Response Cancel Sequence Diagram Cancel can only be done on a authorized transaction. If you do cancel after doing a part-capture you will cancel the different between the capture amount and the authorization amount. sequenceDiagram participant SwedbankPay as Swedbank Pay Merchant->>SwedbankPay: POST < cancellation> activate Merchant activate SwedbankPay SwedbankPay-->>Merchant: transaction resource deactivate SwedbankPay deactivate Merchant", "tags": "", - "url": "/checkout/v3/tailored/features/core/cancel.html" + "url": "/products/checkout-v3-dev/starter/features/core/cancel.html" },{ "title": "Cancel", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "text": "", "tags": "", - "url": "/checkout/v3/basic/features/core/cancel.html" + "url": "/products/checkout-v3-dev/payments-only/features/core/cancel.html" },{ "title": "Capture", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci. Pellentesque a maximus leo. Pellentesque tincidunt tristique turpis a tincidunt. Fusce a risus facilisis, interdum est sed, auctor erat. Pellentesque eu dolor vitae urna posuere sagittis. Cras viverra tempor massa. Aliquam nec est est. Suspendisse dictum risus dui, sed efficitur urna tempus vitae. Etiam vehicula fringilla diam, eu elementum enim maximus vitae. Proin leo sem, luctus vel auctor sit amet, suscipit eget ex. Integer id libero purus. Etiam est eros, volutpat aliquet nibh eget, semper volutpat sapien. Vivamus laoreet eros a risus vulputate vehicula. Curabitur blandit lorem in facilisis tempor. Donec porttitor placerat tincidunt. Morbi vestibulum, neque quis maximus posuere, quam dolor pharetra purus, non bibendum orci leo vel arcu. Vivamus vel accumsan neque. Et voilà! Checkout should now be complete, the payment should be secure and everyone should be happy. But, sometimes you also need to implement the cancellation and reversal operations described below. Payment Menu After Payment", + "text": "", "tags": "", - "url": "/checkout/v2/capture.html" + "url": "/checkout/v3/standard/capture.html" },{ "title": "Capture", "text": "", "tags": "", - "url": "/checkout/v3/standard/capture.html" + "url": "/checkout/v3/basic/capture.html" },{ "title": "Capture", "text": "", @@ -170,9 +170,9 @@ var tipuesearch = {"pages": [{ "url": "/checkout/v3/tailored/capture.html" },{ "title": "Capture", - "text": "", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci. Pellentesque a maximus leo. Pellentesque tincidunt tristique turpis a tincidunt. Fusce a risus facilisis, interdum est sed, auctor erat. Pellentesque eu dolor vitae urna posuere sagittis. Cras viverra tempor massa. Aliquam nec est est. Suspendisse dictum risus dui, sed efficitur urna tempus vitae. Etiam vehicula fringilla diam, eu elementum enim maximus vitae. Proin leo sem, luctus vel auctor sit amet, suscipit eget ex. Integer id libero purus. Etiam est eros, volutpat aliquet nibh eget, semper volutpat sapien. Vivamus laoreet eros a risus vulputate vehicula. Curabitur blandit lorem in facilisis tempor. Donec porttitor placerat tincidunt. Morbi vestibulum, neque quis maximus posuere, quam dolor pharetra purus, non bibendum orci leo vel arcu. Vivamus vel accumsan neque. Et voilà! Checkout should now be complete, the payment should be secure and everyone should be happy. But, sometimes you also need to implement the cancellation and reversal operations described below. Payment Menu After Payment", "tags": "", - "url": "/checkout/v3/basic/capture.html" + "url": "/checkout/v2/capture.html" },{ "title": "Deck 1 Card 1", "text": "", @@ -222,17 +222,17 @@ var tipuesearch = {"pages": [{ "title": "Checkin Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/checkin-events.html" + "url": "/checkout/v3/dsca/features/technical-reference/checkin-events.html" },{ "title": "Checkin Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/checkin-events.html" + "url": "/checkout/v3/standard/features/technical-reference/checkin-events.html" },{ "title": "Checkin Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/checkin-events.html" + "url": "/checkout/v3/basic/features/technical-reference/checkin-events.html" },{ "title": "Checkin Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -242,12 +242,7 @@ var tipuesearch = {"pages": [{ "title": "Checkin Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/checkin-events.html" - },{ - "title": "Checkout – Checkin", - "text": "Step 1: Initiate session for consumer identification The payer will be identified with the consumers resource and will be persisted to streamline future Payment Menu processes. Payer identification is done through the initiate-consumer-session operation. info Guest Checkout: Note: If the payer is using the Payment Menu as a guest, you can go directly to step 3, which you will find on the next page. Request 1 2 3 4 5 6 7 8 9 10 11 POST /psp/consumers HTTP/1.1 Host: Authorization: Bearer <AccessToken> Content-Type: application/json { \"operation\": \"initiate-consumer-session\", \"language\": \"sv-SE\", \"shippingAddressRestrictedToCountryCodes\" : [\"NO\", \"SE\", \"DK\"], \"requireShippingAddress\": true } Required Field Type Description check operation string initiate-consumer-session, the operation to perform. check language string Selected language to be used in Checkin. shippingAddressRestrictedToCountryCodes string List of supported shipping countries for merchant. Using iso-3166 standard. This is required unless requireShippingAddress is set to false. requireShippingAddress bool Defaults to true. If set to false we will not collect a shipping address from the consumer. When the request has been sent, a response containing an array of operations that can be acted upon will be returned: Response 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { \"token\": \"7e380fbb3196ea76cc45814c1d99d59b66db918ce2131b61f585645eff364871\", \"operations\": [ { // Deprecated operation. Do not use! \"method\": \"GET\", \"rel\": \"redirect-consumer-identification\", \"href\": \"/consumers/sessions/7e380fbb3196ea76cc45814c1d99d59b66db918ce2131b61f585645eff364871\", \"contentType\": \"text/html\" }, { \"method\": \"GET\", \"rel\": \"view-consumer-identification\", \"href\": \"/consumers/core/scripts/client/px.consumer.client.js?token=\", \"contentType\": \"application/javascript\" } ] } Show fields Hide fields Field Type Description root solid A root, for brewing beer used to kill ghost pirates. token string A session token used to initiate Checkout UI. operations array The array of operation objects to choose from, described in detail in the table below. rel string The relational name of the operation, used as a programmatic identifier to find the correct operation given the current state of the application. method string The HTTP method to use when performing the operation. contentType string The HTTP content type of the target URI. Indicates what sort of resource is to be found at the URI, how it is expected to be used and behave. href string The target URI of the operation. Step 2: Display Swedbank Pay Checkin module The response from the POST of consumer information contains a few operations. The combination of rel, method and contentType should give you a clue how the operation should be performed. The view-consumer-identification operation and its application/javascript content type gives us a clue that the operation is meant to be embedded in a <script> element in an HTML document. warning In our example we will focus on using the view-consumer-identification solution. The redirect-consumer-identification method redirects the user to Swedbank’s own site to handle the checkin and is used in other implementations. redirect-consumer-identification should only be used in test enviroments. It is not suitable for the production environment as there is no simple way of retrieving the consumerProfileRef. HTML 1 2 3 4 5 6 7 8 9 10 11 12 <!DOCTYPE html> <html> <head> <title>Swedbank Pay Checkout is Awesome!</title> </head> <body> <div id=\"checkin\"></div> <div id=\"payment-menu\"></div> <!-- Here you can specify your own javascript file --> <script src=\"<Your-JavaScript-File-Here>\"></script> </body> </html> info The Checkin and Payment Menu components (the two <iframe> elements) must be separate (one must not replace the other). In the HTML, you only need to add two <div> elements to place the check-in and payment menu inside of. The JavaScript will handle the rest when it comes to handling the check-in and payment menu. JavaScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 var request = new XMLHttpRequest(); request.addEventListener('load', function () { // We will assume that our own backend returns the // exact same as what SwedbankPay returns. var response = JSON.parse(this.responseText); var script = document.createElement('script'); // This assumes that the operations from the response of the POST from the // payment order is returned verbatim from the server to the Ajax: var operation = response.operations.find(function (o) { return o.rel === 'view-consumer-identification'; }); script.setAttribute('src', operation.href); script.onload = function () { payex.hostedView.consumer({ // The container specifies which id the script will look for // to host the checkin component container: 'checkin', onConsumerIdentified: function onConsumerIdentified(consumerIdentifiedEvent) { // consumerIdentifiedEvent.consumerProfileRef contains the reference // to the identified consumer which we need to pass on to the // Payment Order to initialize a personalized Payment Menu. console.log(consumerIdentifiedEvent); }, onShippingDetailsAvailable: function onShippingDetailsAvailable(shippingDetailsAvailableEvent) { console.log(shippingDetailsAvailableEvent); } }).open(); }; // Appending the script to the head var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Place in your own API endpoint here. request.open('POST', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // In this example we'll send in all of the information mentioned before, // in the request to the endpoint. request.send(JSON.stringify({ operation: 'initiate-consumer-session', language: 'sv-SE', shippingAddressRestrictedToCountryCodes: ['NO', 'SE'] })); info Note that we add the script at the end of the body. This ensures that every element (like the container <div> elements) has loaded in before we try to access them with our script. With the scripts loading in after the entire page is loaded, we can access the <div> container that the Checkin will be hosted in. After that has all loaded, you should see something like this: As you can see, the payer’s information is pre-filled as provided by the initial POST. From here, there are a three ways forward, depending on the consumer. If he or she is already registered with a profile at Swedbank Pay, the information already provided will be sufficient. The consumer can simply click proceed, and the profile will appear on the page (with sensitive data masked). If Swedbank Pay detects that the consumer hasn’t registered any personal details, two options are provided: Store details for future purchases or proceed without storing details. If he or she chooses to store details, the next step is to enter their SSN. Once a valid SSN has been provided, a page for address details appears. When the consumer has entered their address, the profile box shown above will be displayed. If the consumer opts out of storing their details, they will be sent directly to the page for address details to enter their shipping address. This info is not stored for future purchases. Please note that this is not the same as shopping as a guest. With a consumerProfileRef safely tucked into our pocket, the Checkin is complete and we can move on to Payment Menu. A complete overview of how the process of identifying the payer through Checkin is illustrated in the sequence diagram below. sequenceDiagram participant Consumer participant Merchant participant SwedbankPay as Swedbank Pay rect rgba(238, 112, 35, 0.05) note left of Consumer: Checkin Consumer ->>+ Merchant: Start Checkin Merchant ->>+ SwedbankPay: POST /psp/consumers deactivate Merchant SwedbankPay -->>+ Merchant: rel:view-consumer-identification ① deactivate SwedbankPay Merchant -->>- Consumer: Show Checkin on Merchant Page Consumer ->>+ Consumer: Initiate Consumer Seamless View (open iframe) ② Consumer ->>+ SwedbankPay: Show Consumer UI page in iframe ③ deactivate Consumer SwedbankPay ->>- Consumer: Consumer identification process activate Consumer Consumer ->>+ SwedbankPay: Consumer identification process deactivate Consumer SwedbankPay -->>- Consumer: show consumer completed iframe activate Consumer Consumer ->> Consumer: EVENT: onConsumerIdentified (consumerProfileRef) ④ deactivate Consumer end If a browser refresh is performed after the payer has checked in, the payment menu must be shown even though onConsumerIdentified is not invoked. Additional events during Checkin can also be implemented in the configuration object, such as onConsumerIdentified, onShippingDetailsAvailableand onBillingDetailsAvailable. Read more about these in the Checkin events section. Note on consumer data During this stage, some consumer data is stored. Read more about our Data Protection Policy for details on which information we store and its duration. Introduction Payment Menu", - "tags": "", - "url": "/checkout/v2/checkin.html" + "url": "/checkout/v2/features/technical-reference/checkin-events.html" },{ "title": "Checkout – Checkin", "text": "", @@ -264,30 +259,25 @@ var tipuesearch = {"pages": [{ "tags": "", "url": "/checkout/v3/tailored/checkin.html" },{ - "title": "CompleteUrl", - "text": "", - "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/technical-reference/complete-url.html" - },{ - "title": "CompleteUrl", - "text": "", + "title": "Checkout – Checkin", + "text": "Step 1: Initiate session for consumer identification The payer will be identified with the consumers resource and will be persisted to streamline future Payment Menu processes. Payer identification is done through the initiate-consumer-session operation. info Guest Checkout: Note: If the payer is using the Payment Menu as a guest, you can go directly to step 3, which you will find on the next page. Request 1 2 3 4 5 6 7 8 9 10 11 POST /psp/consumers HTTP/1.1 Host: Authorization: Bearer <AccessToken> Content-Type: application/json { \"operation\": \"initiate-consumer-session\", \"language\": \"sv-SE\", \"shippingAddressRestrictedToCountryCodes\" : [\"NO\", \"SE\", \"DK\"], \"requireShippingAddress\": true } Required Field Type Description check operation string initiate-consumer-session, the operation to perform. check language string Selected language to be used in Checkin. shippingAddressRestrictedToCountryCodes string List of supported shipping countries for merchant. Using iso-3166 standard. This is required unless requireShippingAddress is set to false. requireShippingAddress bool Defaults to true. If set to false we will not collect a shipping address from the consumer. When the request has been sent, a response containing an array of operations that can be acted upon will be returned: Response 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { \"token\": \"7e380fbb3196ea76cc45814c1d99d59b66db918ce2131b61f585645eff364871\", \"operations\": [ { // Deprecated operation. Do not use! \"method\": \"GET\", \"rel\": \"redirect-consumer-identification\", \"href\": \"/consumers/sessions/7e380fbb3196ea76cc45814c1d99d59b66db918ce2131b61f585645eff364871\", \"contentType\": \"text/html\" }, { \"method\": \"GET\", \"rel\": \"view-consumer-identification\", \"href\": \"/consumers/core/scripts/client/px.consumer.client.js?token=\", \"contentType\": \"application/javascript\" } ] } Show fields Hide fields Field Type Description root solid A root, for brewing beer used to kill ghost pirates. token string A session token used to initiate Checkout UI. operations array The array of operation objects to choose from, described in detail in the table below. rel string The relational name of the operation, used as a programmatic identifier to find the correct operation given the current state of the application. method string The HTTP method to use when performing the operation. contentType string The HTTP content type of the target URI. Indicates what sort of resource is to be found at the URI, how it is expected to be used and behave. href string The target URI of the operation. Step 2: Display Swedbank Pay Checkin module The response from the POST of consumer information contains a few operations. The combination of rel, method and contentType should give you a clue how the operation should be performed. The view-consumer-identification operation and its application/javascript content type gives us a clue that the operation is meant to be embedded in a <script> element in an HTML document. warning In our example we will focus on using the view-consumer-identification solution. The redirect-consumer-identification method redirects the user to Swedbank’s own site to handle the checkin and is used in other implementations. redirect-consumer-identification should only be used in test enviroments. It is not suitable for the production environment as there is no simple way of retrieving the consumerProfileRef. HTML 1 2 3 4 5 6 7 8 9 10 11 12 <!DOCTYPE html> <html> <head> <title>Swedbank Pay Checkout is Awesome!</title> </head> <body> <div id=\"checkin\"></div> <div id=\"payment-menu\"></div> <!-- Here you can specify your own javascript file --> <script src=\"<Your-JavaScript-File-Here>\"></script> </body> </html> info The Checkin and Payment Menu components (the two <iframe> elements) must be separate (one must not replace the other). In the HTML, you only need to add two <div> elements to place the check-in and payment menu inside of. The JavaScript will handle the rest when it comes to handling the check-in and payment menu. JavaScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 var request = new XMLHttpRequest(); request.addEventListener('load', function () { // We will assume that our own backend returns the // exact same as what SwedbankPay returns. var response = JSON.parse(this.responseText); var script = document.createElement('script'); // This assumes that the operations from the response of the POST from the // payment order is returned verbatim from the server to the Ajax: var operation = response.operations.find(function (o) { return o.rel === 'view-consumer-identification'; }); script.setAttribute('src', operation.href); script.onload = function () { payex.hostedView.consumer({ // The container specifies which id the script will look for // to host the checkin component container: 'checkin', onConsumerIdentified: function onConsumerIdentified(consumerIdentifiedEvent) { // consumerIdentifiedEvent.consumerProfileRef contains the reference // to the identified consumer which we need to pass on to the // Payment Order to initialize a personalized Payment Menu. console.log(consumerIdentifiedEvent); }, onShippingDetailsAvailable: function onShippingDetailsAvailable(shippingDetailsAvailableEvent) { console.log(shippingDetailsAvailableEvent); } }).open(); }; // Appending the script to the head var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Place in your own API endpoint here. request.open('POST', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // In this example we'll send in all of the information mentioned before, // in the request to the endpoint. request.send(JSON.stringify({ operation: 'initiate-consumer-session', language: 'sv-SE', shippingAddressRestrictedToCountryCodes: ['NO', 'SE'] })); info Note that we add the script at the end of the body. This ensures that every element (like the container <div> elements) has loaded in before we try to access them with our script. With the scripts loading in after the entire page is loaded, we can access the <div> container that the Checkin will be hosted in. After that has all loaded, you should see something like this: As you can see, the payer’s information is pre-filled as provided by the initial POST. From here, there are a three ways forward, depending on the consumer. If he or she is already registered with a profile at Swedbank Pay, the information already provided will be sufficient. The consumer can simply click proceed, and the profile will appear on the page (with sensitive data masked). If Swedbank Pay detects that the consumer hasn’t registered any personal details, two options are provided: Store details for future purchases or proceed without storing details. If he or she chooses to store details, the next step is to enter their SSN. Once a valid SSN has been provided, a page for address details appears. When the consumer has entered their address, the profile box shown above will be displayed. If the consumer opts out of storing their details, they will be sent directly to the page for address details to enter their shipping address. This info is not stored for future purchases. Please note that this is not the same as shopping as a guest. With a consumerProfileRef safely tucked into our pocket, the Checkin is complete and we can move on to Payment Menu. A complete overview of how the process of identifying the payer through Checkin is illustrated in the sequence diagram below. sequenceDiagram participant Consumer participant Merchant participant SwedbankPay as Swedbank Pay rect rgba(238, 112, 35, 0.05) note left of Consumer: Checkin Consumer ->>+ Merchant: Start Checkin Merchant ->>+ SwedbankPay: POST /psp/consumers deactivate Merchant SwedbankPay -->>+ Merchant: rel:view-consumer-identification ① deactivate SwedbankPay Merchant -->>- Consumer: Show Checkin on Merchant Page Consumer ->>+ Consumer: Initiate Consumer Seamless View (open iframe) ② Consumer ->>+ SwedbankPay: Show Consumer UI page in iframe ③ deactivate Consumer SwedbankPay ->>- Consumer: Consumer identification process activate Consumer Consumer ->>+ SwedbankPay: Consumer identification process deactivate Consumer SwedbankPay -->>- Consumer: show consumer completed iframe activate Consumer Consumer ->> Consumer: EVENT: onConsumerIdentified (consumerProfileRef) ④ deactivate Consumer end If a browser refresh is performed after the payer has checked in, the payment menu must be shown even though onConsumerIdentified is not invoked. Additional events during Checkin can also be implemented in the configuration object, such as onConsumerIdentified, onShippingDetailsAvailableand onBillingDetailsAvailable. Read more about these in the Checkin events section. Note on consumer data During this stage, some consumer data is stored. Read more about our Data Protection Policy for details on which information we store and its duration. Introduction Payment Menu", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/technical-reference/complete-url.html" + "url": "/checkout/v2/checkin.html" },{ "title": "CompleteUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/complete-url.html" + "url": "/checkout/v3/dsca/features/technical-reference/complete-url.html" },{ "title": "CompleteUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/complete-url.html" + "url": "/checkout/v3/standard/features/technical-reference/complete-url.html" },{ "title": "CompleteUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/complete-url.html" + "url": "/checkout/v3/basic/features/technical-reference/complete-url.html" },{ "title": "CompleteUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -297,37 +287,37 @@ var tipuesearch = {"pages": [{ "title": "CompleteUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/complete-url.html" + "url": "/checkout/v2/features/technical-reference/complete-url.html" },{ - "title": "Creditting?", - "text": "Don’t read this If you see this. It means you are credited.", + "title": "CompleteUrl", + "text": "", "tags": "", - "url": "/payments/credit.html" + "url": "/products/checkout-v3-dev/starter/features/technical-reference/complete-url.html" },{ - "title": "Custom Logo", + "title": "CompleteUrl", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/optional/custom-logo.html" + "url": "/products/checkout-v3-dev/payments-only/features/technical-reference/complete-url.html" },{ - "title": "Custom Logo", - "text": "", + "title": "Creditting?", + "text": "Don’t read this If you see this. It means you are credited.", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/optional/custom-logo.html" + "url": "/payments/credit.html" },{ "title": "Custom Logo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/optional/custom-logo.html" + "url": "/checkout/v3/dsca/features/optional/custom-logo.html" },{ "title": "Custom Logo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/optional/custom-logo.html" + "url": "/checkout/v3/standard/features/optional/custom-logo.html" },{ "title": "Custom Logo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/optional/custom-logo.html" + "url": "/checkout/v3/basic/features/optional/custom-logo.html" },{ "title": "Custom Logo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -337,32 +327,32 @@ var tipuesearch = {"pages": [{ "title": "Custom Logo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/optional/custom-logo.html" + "url": "/checkout/v2/features/optional/custom-logo.html" },{ - "title": "Delete Token", + "title": "Custom Logo", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/optional/delete-token.html" + "url": "/products/checkout-v3-dev/starter/features/optional/custom-logo.html" },{ - "title": "Delete Token", + "title": "Custom Logo", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/optional/delete-token.html" + "url": "/products/checkout-v3-dev/payments-only/features/optional/custom-logo.html" },{ "title": "Delete Token", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/delete-token.html" + "url": "/checkout/v3/dsca/features/technical-reference/delete-token.html" },{ "title": "Delete Token", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/delete-token.html" + "url": "/checkout/v3/standard/features/technical-reference/delete-token.html" },{ "title": "Delete Token", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/delete-token.html" + "url": "/checkout/v3/basic/features/technical-reference/delete-token.html" },{ "title": "Delete Token", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -372,32 +362,32 @@ var tipuesearch = {"pages": [{ "title": "Delete Token", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/delete-token.html" + "url": "/checkout/v2/features/technical-reference/delete-token.html" },{ - "title": "Description", + "title": "Delete Token", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/technical-reference/description.html" + "url": "/products/checkout-v3-dev/starter/features/optional/delete-token.html" },{ - "title": "Description", + "title": "Delete Token", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/technical-reference/description.html" + "url": "/products/checkout-v3-dev/payments-only/features/optional/delete-token.html" },{ "title": "Description", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/description.html" + "url": "/checkout/v3/dsca/features/technical-reference/description.html" },{ "title": "Description", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/description.html" + "url": "/checkout/v3/standard/features/technical-reference/description.html" },{ "title": "Description", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/description.html" + "url": "/checkout/v3/basic/features/technical-reference/description.html" },{ "title": "Description", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -407,12 +397,17 @@ var tipuesearch = {"pages": [{ "title": "Description", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/description.html" + "url": "/checkout/v2/features/technical-reference/description.html" },{ - "title": "Delegated Strong Consumer Authentication", - "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "title": "Description", + "text": "", "tags": "", - "url": "/checkout/v2/features/optional/dsca.html" + "url": "/products/checkout-v3-dev/starter/features/technical-reference/description.html" + },{ + "title": "Description", + "text": "", + "tags": "", + "url": "/products/checkout-v3-dev/payments-only/features/technical-reference/description.html" },{ "title": "Delegated Strong Consumer Authentication", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -423,6 +418,11 @@ var tipuesearch = {"pages": [{ "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", "url": "/checkout/v3/standard/features/optional/dsca.html" + },{ + "title": "Delegated Strong Consumer Authentication", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", + "tags": "", + "url": "/checkout/v3/basic/features/optional/dsca.html" },{ "title": "Delegated Strong Consumer Authentication", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -432,137 +432,142 @@ var tipuesearch = {"pages": [{ "title": "Delegated Strong Consumer Authentication", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/optional/dsca.html" + "url": "/checkout/v2/features/optional/dsca.html" },{ "title": "Gamma", "text": "", "tags": "", "url": "/resources/gamma.html" },{ - "title": "Deck 1", - "text": "", + "title": "Secret payments", + "text": "How we do secret payments We don’t.", "tags": "", - "url": "/cards/deck1/" + "url": "/payments/secrets/" },{ - "title": "Deck 2", + "title": "Payments", "text": "", "tags": "", - "url": "/cards/deck2/" + "url": "/payments/" },{ - "title": "Deck 3", - "text": "", + "title": "Technical Reference", + "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", "tags": "", - "url": "/cards/deck3/" + "url": "/checkout/v3/dsca/features/technical-reference/" },{ - "title": "Cards", - "text": "1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">credit_card</i> </div> <div class=\"cards-content\"> <span class=\"h4\">Default</span> <span><p>This is a default card</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a> 1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">settings</i> </div> <div class=\"cards-content\"> <span class=\"h4\">SDK</span> <span><p>This is a .dx-card-sdk card</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a> 1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">build</i> </div> <div class=\"cards-content\"> <span class=\"h4\">module</span> <span><p>This is a .dx-card-module card. This also has outlined icon</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a> 1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">01</i> </div> <div class=\"cards-content\"> <span class=\"h4\">Horizontal</span> <span><p>This is a dx-card-horizontal card. Icons used with this card are just numbers</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a>", + "title": "Optional Features", + "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/cards/" + "url": "/checkout/v3/dsca/features/optional/" },{ - "title": "PlantUML", - "text": "Network Diagram clientappdbqueuecloudusecaserectanglepackagefolderframecardfile State Diagram State1this is a stringthis is another stringState2 Sequence Diagrams Checkin Payer Payer Merchant Merchant Swedbank Pay Swedbank PayStart CheckinPOST /psp/consumersrel:view-consumer-identification ①rel:view-consumer-identification ②<script src=rel:view-consumer-identification.href />payex.hostedView.consumer()Consumer identification③onConsumerIdentified(consumerProfileRef) ④POST { consumerProfileRef } ⑤StoreconsumerProfileRef Payment Menu Payer Payer Merchant Merchant Swedbank Pay Swedbank PayPayPOST /psp/paymentorders { consumerProfileRef } ①rel:view-paymentorderrel:view-paymentorder<script src=rel:view-paymentorder.href />payex.hostedView.paymentMenu()Perform paymentalt[completed payment]onPaymentCompleted(paymentorder)Check payment statusGET paymentorder.idrel:paid-paymentorderGET rel:paid-paymentorder.hrefCompleted Payment OrderShow receipt[failed payment]onPaymentFailed(paymentorder)Check payment statusGET paymentorder.idrel:failed-paymentorderGET rel:failed-paymentorder.hrefFailed Payment OrderShow failure page Callback Merchant Merchant Swedbank Pay Swedbank PayPOST { payment activity }GET paymentorder.idPayment OrderUpdate status Capture Merchant Merchant Swedbank Pay Swedbank PayCaptureGET paymentorder.idrel:create-paymentorder-capturePOST rel:create-paymentorder-capture.hrefCapture status", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", "tags": "", - "url": "/plantuml/" + "url": "/checkout/v3/dsca/features/core/" },{ - "title": "Sub-resources", - "text": "", + "title": "Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/resources/sub-resources/" + "url": "/checkout/v3/dsca/features/" },{ - "title": "Resources", - "text": "The page at the end of this link should redirect back here", + "title": "Introduction", + "text": "", "tags": "", - "url": "/resources/" + "url": "/checkout/v3/dsca/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder. arrow_forward pan_tool Abort Aborting a created payment. arrow_forward low_priority Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward pan_tool Cancel Canceling the authorization and releasing the funds. arrow_forward", + "title": "Technical Reference", + "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/core/" + "url": "/checkout/v3/standard/features/technical-reference/" },{ "title": "Optional Features", - "text": "Optional Features copyright Custom Logo How to add your own logo. arrow_forward delete_sweep Delete Token How to delete tokens. arrow_forward", + "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/optional/" + "url": "/checkout/v3/standard/features/optional/" },{ - "title": "Technical Reference", - "text": "Technical Reference link CompleteUrl Where you go when the payment is completed. arrow_forward assignment Description The purchase summed up in a few words. arrow_forward", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/technical-reference/" + "url": "/checkout/v3/standard/features/core/" },{ "title": "Features", - "text": "", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/features/" + "url": "/checkout/v3/standard/features/" },{ - "title": "Set Up", - "text": "Step 1: Sign Up For A Test Account A test account gives you access to our unified dashboard for managing your account across different platforms. We call this dashboard the Ecom Admin. Your test account request should be sent to: testaccount@swedbankpay.com in order to create an account for you, we need some specific information from your side: Company name: Your company name. Services you prefer: Full Checkout (Starter / Business / Enterprise) or Payments Only (Payments). Email address: To a developer or the CTO. Step 2: Wait For Response Within 8 working hours we will have created your account and sent you an email containing the following information: Merchant name: This represents your core business entity with us. Payer ID: This is how we identify you. Services: The services that are activated and ready for testing. Login credentials: You will receive a temporary password in a separate email. Step 3: Get Your Access Tokens To submit payments to us, you will be making API requests that are authenticated with an access token. How to generate your access token: Log in to: https://admin.externalintegration.payex.com/psp/beta/login/ - For testing environment. Merchant details: Here you will find information about your account. An access token is necessary since it will be used together with Payee ID to validate transactions. The Payee ID will serve as the door and your token is the key. Navigate to “Access Tokens” at the top of the page. Choose “Add” and name the token. We suggest you name it according to what environment it is created in. Your token will only be fully visible upon creation. For security purposes, we will mask it as shown in the example above. If you need to keep track of it, please save it externally in a safe place as it will remain encrypted.", + "title": "Introduction", + "text": "", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/" + "url": "/checkout/v3/standard/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder. arrow_forward pan_tool Abort Aborting a created payment. arrow_forward low_priority Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward pan_tool Cancel Canceling the authorization and releasing the funds. arrow_forward", + "title": "Technical Reference", + "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/core/" + "url": "/checkout/v3/basic/features/technical-reference/" },{ "title": "Optional Features", - "text": "Optional Features copyright Custom Logo How to add your own logo. arrow_forward delete_sweep Delete Token How to delete tokens. arrow_forward", + "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/optional/" + "url": "/checkout/v3/basic/features/optional/" },{ - "title": "Technical Reference", - "text": "Technical Reference link CompleteUrl Where you go when the payment is completed. arrow_forward assignment Description The purchase summed up in a few words. arrow_forward code Metadata Store payment associated data for later use. arrow_forward settings Operations Possible operations for a payment order. arrow_forward", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/technical-reference/" + "url": "/checkout/v3/basic/features/core/" },{ "title": "Features", - "text": "", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/" + "url": "/checkout/v3/basic/features/" },{ - "title": "Set Up", - "text": "Step 1: Sign Up For A Test Account A test account gives you access to our unified dashboard for managing your account across different platforms. We call this dashboard the Ecom Admin. Your test account request should be sent to: testaccount@swedbankpay.com in order to create an account for you, we need some specific information from your side: Company name: Your company name. Services you prefer: Full Checkout (Starter / Business / Enterprise) or Payments Only (Payments). Email address: To a developer or the CTO. Step 2: Wait For Response Within 8 working hours we will have created your account and sent you an email containing the following information: Merchant name: This represents your core business entity with us. Payer ID: This is how we identify you. Services: The services that are activated and ready for testing. Login credentials: You will receive a temporary password in a separate email. Step 3: Get Your Access Tokens To submit payments to us, you will be making API requests that are authenticated with an access token. How to generate your access token: Log in to: https://admin.externalintegration.payex.com/psp/beta/login/ - For testing environment. Merchant details: Here you will find information about your account. An access token is necessary since it will be used together with Payee ID to validate transactions. The Payee ID will serve as the door and, your token is the key. Navigate to “Access Tokens” at the top of the page. Choose “Add” and name the token. We suggest you name it according to what environment it is created in. Your token will only be fully visible upon creation. For security purposes, we will mask it like this 12a3**********bc4de56f. If you need to keep track of it, please save it externally in a safe place as it will remain encrypted.", + "title": "Introduction", + "text": "", "tags": "", - "url": "/products/checkout-v3-dev/starter/" + "url": "/checkout/v3/basic/" },{ - "title": "Get Started", - "text": "Choose The Right Implementation For Your Business The customer journey varies a lot depending on your business vertical. For example, if you’re selling physical goods - like clothes, shoes or computers, you need to collect a delivery address. Unlike if you are selling digital goods, where that isn’t needed. But this is also a matter of which data you can and/or wish to collect and manage yourself. Here, you can choose between two main paths. Either you let us provide you with a Full Checkout solution (including both payer identification and payment menu) - meaning the payer themselves can choose how they’d like to pay, or you can decide to use the Payments Only option. This means that you are in charge of collecting and storing the payer data and the payment instruments to be presented. Regardless of whether you choose to go with the full checkout or payments only, we will supply you with a variety of payment instruments and features which cater to your business needs. Authentication: The process of verifying the payer’s identity. Delivery Info: Information about where the goods should be delivered. Payer Info: The payer’s personal data e.g. name, address, card number etc. PSP: The service of providing payment instruments in the checkout. What Are You Looking For?", + "title": "Technical Reference", + "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", "tags": "", - "url": "/products/checkout-v3-dev/" + "url": "/checkout/v3/tailored/features/technical-reference/" },{ - "title": "Products", - "text": "", + "title": "Optional Features", + "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/products/" + "url": "/checkout/v3/tailored/features/optional/" },{ - "title": "", - "text": "", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", "tags": "", - "url": "/checkout-more/" + "url": "/checkout/v3/tailored/features/core/" },{ - "title": "Secret payments", - "text": "How we do secret payments We don’t.", + "title": "Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", - "url": "/payments/secrets/" + "url": "/checkout/v3/tailored/features/" },{ - "title": "Payments", + "title": "Introduction", "text": "", "tags": "", - "url": "/payments/" + "url": "/checkout/v3/tailored/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Abort Aborting a created payment arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward credit_card Payment Order Creating the payment order arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Update Payment Order Updating the payment order arrow_forward", + "title": "Get Started", + "text": "Choose The Right Implementation For Your Business Truth is, the customer journey varies a lot depending on your business vertical. For example, if you’re selling physical goods like clothes, shoes or computers, you need to collect the address of the consumer for shipping purposes. Unlike if you were selling digital goods, where that’s simply not necessary. But it also comes down to what you are able and wish to manage yourself. When building your checkout page you have two main paths. Either you let us provide you with the entire checkout solution. This includes consumer identification and payment menu, where your customer themselves can choose how to pay. Or, you can choose to only use our payment option (also called the payment menu), where you are in charge of collecting and storing the customer data. Regardless if you choose our checkout or payments only option, you will always be able to decide which payment options are available for the consumer. Hence you can show all available payment options for that specific market, or just one or two if that makes more sense for your business. Consumer Info: The consumer’s personal data e.g. name, address, phone number etc. Authentication: The process for verifying the consumer’s identity via Strong Consumer Authentication (e.g. BankID). Delivery Info: Information about where the goods should be delivered. PSP: The service of providing payment methods in the checkout or payment menu. What Are You Looking For? Full Checkout Payments Only Full Checkout By using the Full Checkout, we help you collect and safely store consumer data. We can also prefill consumer info in the checkout if they have agreed to let us store their info. All of our implementations support both single payment options and the full payment offering. shopping_cart Standard We collect and verify the identity of your consumer. We also collect the billing and shipping address and we store the consumer information. With our PSP you are always able to choose one ore more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward shopping_cart Authenticated The consumer data you have collected, is shared with us for verification and storage. If you have a login, your consumer won’t need to fill out their information twice. With our PSP you are always able to choose one or more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward shopping_cart Merchant Authenticated Consumer In order to implement this solution, you need to be able to both collect and verify your consumer’s data using SCA. We store the consumer information, and with our PSP you are always able to choose one or more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward Payments Only If you are looking for our payments package, you will have the flexibility to build your own checkout flow. You collect the consumer data and own the entire checkout process. The Payments Only implementation supports both single payment options and the full payment offering. attach_money Payments In order to implement this solution, you need to be able to both collect and verify your consumer’s data using SCA. You also store the consumer information. With our PSP you are always able to choose one or more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward", "tags": "", - "url": "/checkout/v2/features/core/" + "url": "/checkout/v3/" + },{ + "title": "Technical Reference", + "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Items Information about the items field arrow_forward Metadata Store payment associated data for later use. arrow_forward Operations Possible operations for a payment order. arrow_forward Order Items Information about the order items arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Purchase The bread and butter of the payments. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Transactions The transactions making up a specific payment. arrow_forward Urls The urls associated with the payment arrow_forward", + "tags": "", + "url": "/checkout/v2/features/technical-reference/" },{ "title": "Optional Features", "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified TRA Exemption Transaction Risk Analysis Exemption arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", "tags": "", "url": "/checkout/v2/features/optional/" },{ - "title": "Technical Reference", - "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Items Information about the items field arrow_forward Metadata Store payment associated data for later use. arrow_forward Operations Possible operations for a payment order. arrow_forward Order Items Information about the order items arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Purchase The bread and butter of the payments. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Transactions The transactions making up a specific payment. arrow_forward Urls The urls associated with the payment arrow_forward", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Abort Aborting a created payment arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward credit_card Payment Order Creating the payment order arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Update Payment Order Updating the payment order arrow_forward", "tags": "", - "url": "/checkout/v2/features/technical-reference/" + "url": "/checkout/v2/features/core/" },{ "title": "Features", "text": "", @@ -574,130 +579,125 @@ var tipuesearch = {"pages": [{ "tags": "", "url": "/checkout/v2/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", - "tags": "", - "url": "/checkout/v3/dsca/features/core/" - },{ - "title": "Optional Features", - "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Checkout", + "text": "shopping_cart Checkout v2 Checkout v2 was the generally available version of Checkout between 2018 and 2021. Choose this if you have an existing Checkout v2 integration. arrow_forward shopping_cart Checkout v3 Coming soon…", "tags": "", - "url": "/checkout/v3/dsca/features/optional/" + "url": "/checkout/" },{ "title": "Technical Reference", - "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", + "text": "Technical Reference link CompleteUrl Where you go when the payment is completed. arrow_forward assignment Description The purchase summed up in a few words. arrow_forward code Metadata Store payment associated data for later use. arrow_forward settings Operations Possible operations for a payment order. arrow_forward", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/" + "url": "/products/checkout-v3-dev/starter/features/technical-reference/" },{ - "title": "Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Optional Features", + "text": "Optional Features copyright Custom Logo How to add your own logo. arrow_forward delete_sweep Delete Token How to delete tokens. arrow_forward", "tags": "", - "url": "/checkout/v3/dsca/features/" + "url": "/products/checkout-v3-dev/starter/features/optional/" },{ - "title": "Introduction", - "text": "", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder. arrow_forward pan_tool Abort Aborting a created payment. arrow_forward low_priority Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward pan_tool Cancel Canceling the authorization and releasing the funds. arrow_forward", "tags": "", - "url": "/checkout/v3/dsca/" + "url": "/products/checkout-v3-dev/starter/features/core/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", + "title": "Features", + "text": "", "tags": "", - "url": "/checkout/v3/standard/features/core/" + "url": "/products/checkout-v3-dev/starter/features/" },{ - "title": "Optional Features", - "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Set Up", + "text": "Step 1: Sign Up For A Test Account A test account gives you access to our unified dashboard for managing your account across different platforms. We call this dashboard the Ecom Admin. Your test account request should be sent to: testaccount@swedbankpay.com in order to create an account for you, we need some specific information from your side: Company name: Your company name. Services you prefer: Full Checkout (Starter / Business / Enterprise) or Payments Only (Payments). Email address: To a developer or the CTO. Step 2: Wait For Response Within 8 working hours we will have created your account and sent you an email containing the following information: Merchant name: This represents your core business entity with us. Payer ID: This is how we identify you. Services: The services that are activated and ready for testing. Login credentials: You will receive a temporary password in a separate email. Step 3: Get Your Access Tokens To submit payments to us, you will be making API requests that are authenticated with an access token. How to generate your access token: Log in to: https://admin.externalintegration.payex.com/psp/beta/login/ - For testing environment. Merchant details: Here you will find information about your account. An access token is necessary since it will be used together with Payee ID to validate transactions. The Payee ID will serve as the door and, your token is the key. Navigate to “Access Tokens” at the top of the page. Choose “Add” and name the token. We suggest you name it according to what environment it is created in. Your token will only be fully visible upon creation. For security purposes, we will mask it like this 12a3**********bc4de56f. If you need to keep track of it, please save it externally in a safe place as it will remain encrypted.", "tags": "", - "url": "/checkout/v3/standard/features/optional/" + "url": "/products/checkout-v3-dev/starter/" },{ "title": "Technical Reference", - "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", + "text": "Technical Reference link CompleteUrl Where you go when the payment is completed. arrow_forward assignment Description The purchase summed up in a few words. arrow_forward", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/" + "url": "/products/checkout-v3-dev/payments-only/features/technical-reference/" },{ - "title": "Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Optional Features", + "text": "Optional Features copyright Custom Logo How to add your own logo. arrow_forward delete_sweep Delete Token How to delete tokens. arrow_forward", "tags": "", - "url": "/checkout/v3/standard/features/" + "url": "/products/checkout-v3-dev/payments-only/features/optional/" },{ - "title": "Introduction", - "text": "", + "title": "Core Features", + "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder. arrow_forward pan_tool Abort Aborting a created payment. arrow_forward low_priority Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward pan_tool Cancel Canceling the authorization and releasing the funds. arrow_forward", "tags": "", - "url": "/checkout/v3/standard/" + "url": "/products/checkout-v3-dev/payments-only/features/core/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", + "title": "Features", + "text": "", "tags": "", - "url": "/checkout/v3/tailored/features/core/" + "url": "/products/checkout-v3-dev/payments-only/features/" },{ - "title": "Optional Features", - "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Set Up", + "text": "Step 1: Sign Up For A Test Account A test account gives you access to our unified dashboard for managing your account across different platforms. We call this dashboard the Ecom Admin. Your test account request should be sent to: testaccount@swedbankpay.com in order to create an account for you, we need some specific information from your side: Company name: Your company name. Services you prefer: Full Checkout (Starter / Business / Enterprise) or Payments Only (Payments). Email address: To a developer or the CTO. Step 2: Wait For Response Within 8 working hours we will have created your account and sent you an email containing the following information: Merchant name: This represents your core business entity with us. Payer ID: This is how we identify you. Services: The services that are activated and ready for testing. Login credentials: You will receive a temporary password in a separate email. Step 3: Get Your Access Tokens To submit payments to us, you will be making API requests that are authenticated with an access token. How to generate your access token: Log in to: https://admin.externalintegration.payex.com/psp/beta/login/ - For testing environment. Merchant details: Here you will find information about your account. An access token is necessary since it will be used together with Payee ID to validate transactions. The Payee ID will serve as the door and your token is the key. Navigate to “Access Tokens” at the top of the page. Choose “Add” and name the token. We suggest you name it according to what environment it is created in. Your token will only be fully visible upon creation. For security purposes, we will mask it as shown in the example above. If you need to keep track of it, please save it externally in a safe place as it will remain encrypted.", "tags": "", - "url": "/checkout/v3/tailored/features/optional/" + "url": "/products/checkout-v3-dev/payments-only/" },{ - "title": "Technical Reference", - "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", + "title": "Get Started", + "text": "Choose The Right Implementation For Your Business The customer journey varies a lot depending on your business vertical. For example, if you’re selling physical goods - like clothes, shoes or computers, you need to collect a delivery address. Unlike if you are selling digital goods, where that isn’t needed. But this is also a matter of which data you can and/or wish to collect and manage yourself. Here, you can choose between two main paths. Either you let us provide you with a Full Checkout solution (including both payer identification and payment menu) - meaning the payer themselves can choose how they’d like to pay, or you can decide to use the Payments Only option. This means that you are in charge of collecting and storing the payer data and the payment instruments to be presented. Regardless of whether you choose to go with the full checkout or payments only, we will supply you with a variety of payment instruments and features which cater to your business needs. Authentication: The process of verifying the payer’s identity. Delivery Info: Information about where the goods should be delivered. Payer Info: The payer’s personal data e.g. name, address, card number etc. PSP: The service of providing payment instruments in the checkout. What Are You Looking For?", "tags": "", - "url": "/checkout/v3/tailored/features/technical-reference/" + "url": "/products/checkout-v3-dev/" },{ - "title": "Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Products", + "text": "", "tags": "", - "url": "/checkout/v3/tailored/features/" + "url": "/products/" },{ - "title": "Introduction", + "title": "Sub-resources", "text": "", "tags": "", - "url": "/checkout/v3/tailored/" + "url": "/resources/sub-resources/" },{ - "title": "Core Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward", + "title": "Resources", + "text": "The page at the end of this link should redirect back here", "tags": "", - "url": "/checkout/v3/basic/features/core/" + "url": "/resources/" },{ - "title": "Optional Features", - "text": "Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "", + "text": "", "tags": "", - "url": "/checkout/v3/basic/features/optional/" + "url": "/checkout-more/" },{ - "title": "Technical Reference", - "text": "Technical Reference Callback Receive asynchronous, server-to-server updates from Swedbank Pay when transactions are performed on a payment. arrow_forward Checkin Events Possible events during Checkin. arrow_forward CompleteUrl Where you go when the payment is completed. arrow_forward Delete Token How to delete tokens. arrow_forward Description The purchase summed up in a few words. arrow_forward Metadata Store payment associated data for later use. arrow_forward PayeeInfo Payment specific merchant information. arrow_forward PayeeReference The merchant’s reference for a specific payment. arrow_forward Payment Menu Events Possible events during Payment Menu payments. arrow_forward Operations Possible operations for a payment order. arrow_forward Payment State Different states in the payment process. arrow_forward PaymentUrl Redirecting the payer back to your site. arrow_forward Prices The payment’s prices resource. arrow_forward Problems Information when something goes wrong. arrow_forward Seamless View Events Possible events during Seamless View payments. arrow_forward Purchase The bread and butter of the payments. arrow_forward", + "title": "PlantUML", + "text": "Network Diagram clientappdbqueuecloudusecaserectanglepackagefolderframecardfile State Diagram State1this is a stringthis is another stringState2 Sequence Diagrams Checkin Payer Payer Merchant Merchant Swedbank Pay Swedbank PayStart CheckinPOST /psp/consumersrel:view-consumer-identification ①rel:view-consumer-identification ②<script src=rel:view-consumer-identification.href />payex.hostedView.consumer()Consumer identification③onConsumerIdentified(consumerProfileRef) ④POST { consumerProfileRef } ⑤StoreconsumerProfileRef Payment Menu Payer Payer Merchant Merchant Swedbank Pay Swedbank PayPayPOST /psp/paymentorders { consumerProfileRef } ①rel:view-paymentorderrel:view-paymentorder<script src=rel:view-paymentorder.href />payex.hostedView.paymentMenu()Perform paymentalt[completed payment]onPaymentCompleted(paymentorder)Check payment statusGET paymentorder.idrel:paid-paymentorderGET rel:paid-paymentorder.hrefCompleted Payment OrderShow receipt[failed payment]onPaymentFailed(paymentorder)Check payment statusGET paymentorder.idrel:failed-paymentorderGET rel:failed-paymentorder.hrefFailed Payment OrderShow failure page Callback Merchant Merchant Swedbank Pay Swedbank PayPOST { payment activity }GET paymentorder.idPayment OrderUpdate status Capture Merchant Merchant Swedbank Pay Swedbank PayCaptureGET paymentorder.idrel:create-paymentorder-capturePOST rel:create-paymentorder-capture.hrefCapture status", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/" + "url": "/plantuml/" },{ - "title": "Features", - "text": "Core Features 3d_rotation 3-D Secure 2 Authenticating the cardholder arrow_forward pan_tool Cancel Cancelling the authorization and releasing the funds arrow_forward compare_arrows Capture Capturing the authorized funds arrow_forward keyboard_return Reversal How to reverse a payment arrow_forward description Settlement & Reconciliation Balancing the books arrow_forward Technical Reference low_priority Callback Getting updates about payment or transaction changes arrow_forward event Checkin Events Possible events during Checkin arrow_forward link CompleteUrl Where you go when the payment is completed arrow_forward assignment Delete Token How to delete tokens arrow_forward assignment Description The purchase summed up in a few words arrow_forward code Metadata Store payment associated data for later use arrow_forward account_box PayeeInfo Payment specific merchant information arrow_forward assignment_ind PayeeReference The merchant’s reference for a specific payment arrow_forward event Payment Menu Events Possible events during Payment Menu payments arrow_forward settings Operations Possible operations for a payment order arrow_forward credit_card Payment State Different states in the payment process arrow_forward link PaymentUrl Redirecting the payer back to your site arrow_forward attach_money Prices The payment’s prices resource arrow_forward report Problems Information when something goes wrong arrow_forward event Seamless View Events Possible events during Seamless View payments arrow_forward Optional Features copyright Custom Logo How to add your own logo arrow_forward verified Delegated Strong Consumer Authentication The Checkin alternative arrow_forward cached Recur Setting up subscriptions and recurring payments arrow_forward verified_user Verify Validating the payer’s payment details arrow_forward", + "title": "Deck 1", + "text": "", "tags": "", - "url": "/checkout/v3/basic/features/" + "url": "/cards/deck1/" },{ - "title": "Introduction", + "title": "Deck 2", "text": "", "tags": "", - "url": "/checkout/v3/basic/" + "url": "/cards/deck2/" },{ - "title": "Get Started", - "text": "Choose The Right Implementation For Your Business Truth is, the customer journey varies a lot depending on your business vertical. For example, if you’re selling physical goods like clothes, shoes or computers, you need to collect the address of the consumer for shipping purposes. Unlike if you were selling digital goods, where that’s simply not necessary. But it also comes down to what you are able and wish to manage yourself. When building your checkout page you have two main paths. Either you let us provide you with the entire checkout solution. This includes consumer identification and payment menu, where your customer themselves can choose how to pay. Or, you can choose to only use our payment option (also called the payment menu), where you are in charge of collecting and storing the customer data. Regardless if you choose our checkout or payments only option, you will always be able to decide which payment options are available for the consumer. Hence you can show all available payment options for that specific market, or just one or two if that makes more sense for your business. Consumer Info: The consumer’s personal data e.g. name, address, phone number etc. Authentication: The process for verifying the consumer’s identity via Strong Consumer Authentication (e.g. BankID). Delivery Info: Information about where the goods should be delivered. PSP: The service of providing payment methods in the checkout or payment menu. What Are You Looking For? Full Checkout Payments Only Full Checkout By using the Full Checkout, we help you collect and safely store consumer data. We can also prefill consumer info in the checkout if they have agreed to let us store their info. All of our implementations support both single payment options and the full payment offering. shopping_cart Standard We collect and verify the identity of your consumer. We also collect the billing and shipping address and we store the consumer information. With our PSP you are always able to choose one ore more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward shopping_cart Authenticated The consumer data you have collected, is shared with us for verification and storage. If you have a login, your consumer won’t need to fill out their information twice. With our PSP you are always able to choose one or more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward shopping_cart Merchant Authenticated Consumer In order to implement this solution, you need to be able to both collect and verify your consumer’s data using SCA. We store the consumer information, and with our PSP you are always able to choose one or more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward Payments Only If you are looking for our payments package, you will have the flexibility to build your own checkout flow. You collect the consumer data and own the entire checkout process. The Payments Only implementation supports both single payment options and the full payment offering. attach_money Payments In order to implement this solution, you need to be able to both collect and verify your consumer’s data using SCA. You also store the consumer information. With our PSP you are always able to choose one or more payment methods. Data Ownership SwedbankPay Merchant Side lock Authentication check_circle_outline local_shipping Delivery Info check_circle_outline assignment_ind Consumer Info check_circle_outline monetization_on PSP check_circle_outline Proceed arrow_forward", + "title": "Deck 3", + "text": "", "tags": "", - "url": "/checkout/v3/" + "url": "/cards/deck3/" },{ - "title": "Checkout", - "text": "shopping_cart Checkout v2 Checkout v2 was the generally available version of Checkout between 2018 and 2021. Choose this if you have an existing Checkout v2 integration. arrow_forward shopping_cart Checkout v3 Coming soon…", + "title": "Cards", + "text": "1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">credit_card</i> </div> <div class=\"cards-content\"> <span class=\"h4\">Default</span> <span><p>This is a default card</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a> 1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">settings</i> </div> <div class=\"cards-content\"> <span class=\"h4\">SDK</span> <span><p>This is a .dx-card-sdk card</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a> 1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">build</i> </div> <div class=\"cards-content\"> <span class=\"h4\">module</span> <span><p>This is a .dx-card-module card. This also has outlined icon</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a> 1 2 3 4 5 6 7 8 9 10 11 12 <div class=\"cards-icon\"> <i class=\"material-icons material-icons-outlined\" aria-hidden=\"true\">01</i> </div> <div class=\"cards-content\"> <span class=\"h4\">Horizontal</span> <span><p>This is a dx-card-horizontal card. Icons used with this card are just numbers</p> </span> </div> <i class=\"material-icons\">arrow_forward</i> </a>", "tags": "", - "url": "/checkout/" + "url": "/cards/" },{ "title": "Home", "text": "Text can be bold, italic, or strikethrough. External absolute full link Internal absolute full link Internal explicit relative link Internal implicit relative link Internal absolute link There should be whitespace between paragraphs. There should be whitespace between paragraphs. We recommend including a README, or a file with information about your project. Header 2 This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. This is a blockquote following a header. When something is important enough, you do it even if the odds are not in your favor. Header 3 JavaScript code with syntax highlighting. 1 2 3 4 var fun = function lang(l) { dateformat.i18n = require('./lang/' + l) return true; } HTTP request 1 2 3 4 POST /psp/consumers HTTP/1.1 Host: api.externalintegration.payex.com Authorization: Bearer <AccessToken> Content-Type: application/json HTTP response 1 2 HTTP/1.1 200 OK Content-Type: application/json 1 2 3 4 POST /psp/consumers HTTP/1.1 Host: api.externalintegration.payex.com Authorization: Bearer <AccessToken> Content-Type: application/json JSON 1 2 3 4 5 6 7 8 9 10 { \"operation\": \"initiate-consumer-session\", \"msisdn\": \"+4798765432\", \"email\": \"olivia.nyhuus@example.com\", \"consumerCountryCode\": \"NO\", \"nationalIdentifier\": { \"socialSecurityNumber\": \"26026708248\", \"countryCode\": \"NO\" } } JSONC (JSON with comments) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 { \"payment\": \"/psp/creditcard/payments/paymentId\", \"authorization\": { \"direct\": true, \"cardBrand\": \"Visa\", // Some comment \"cardType\": \"Credit\", // Some comment \"issuingBank\": \"Utl. Visa\", // Some comment \"paymentToken\": \"paymentToken\", \"maskedPan\": \"454778******3329\", \"expiryDate\": \"12/2020\", \"panToken\": \"cca2d98d-8bb3-4bd6-9cf3-365acbbaff96\", \"panEnrolled\": true, \"acquirerTransactionTime\": \"0001-01-01T00:00:00Z\", \"id\": \"/psp/creditcard/payments/7e6cdfc3-1276-44e9-9992-7cf4419750e1/authorizations/ec2a9b09-601a-42ae-8e33-a5737e1cf177\", \"transaction\": { \"id\": \"/psp/creditcard/payments/7e6cdfc3-1276-44e9-9992-7cf4419750e1/transactions/ec2a9b09-601a-42ae-8e33-a5737e1cf177\", \"created\": \"2020-03-10T13:15:01.9586254Z\", \"updated\": \"2020-03-10T13:15:02.0493818Z\", \"type\": \"Authorization\", \"state\": \"AwaitingActivity\", \"number\": 70100366758, \"amount\": 4201, \"vatAmount\": 0, \"description\": \"Test transaction\", \"payeeReference\": \"1583846100\", \"isOperational\": true, \"operations\": [ { \"method\": \"GET\", \"href\": \"https://api.stage.payex.com/psp/creditcard/confined/payments/authorizations/authenticate/ec2a9b09-601a-42ae-8e33-a5737e1cf177\", \"rel\": \"redirect-authentication\" } ] } } } To show code examples you can use a code example component. Code example Copy json to clipboard 1 2 3 4 POST /psp/consumers HTTP/1.1 Host: api.externalintegration.payex.com Authorization: Bearer <AccessToken> Content-Type: application/json 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 { \"payment\": \"/psp/creditcard/payments/paymentId\", \"authorization\": { \"direct\": true, \"cardBrand\": \"Visa\", // Some comment \"cardType\": \"Credit\", // Some comment \"issuingBank\": \"Utl. Visa\", // Some comment \"paymentToken\": \"paymentToken\", \"maskedPan\": \"454778******3329\", \"expiryDate\": \"12/2020\", \"panToken\": \"cca2d98d-8bb3-4bd6-9cf3-365acbbaff96\", \"panEnrolled\": true, \"acquirerTransactionTime\": \"0001-01-01T00:00:00Z\", \"id\": \"/psp/creditcard/payments/7e6cdfc3-1276-44e9-9992-7cf4419750e1/authorizations/ec2a9b09-601a-42ae-8e33-a5737e1cf177\", \"transaction\": { \"id\": \"/psp/creditcard/payments/7e6cdfc3-1276-44e9-9992-7cf4419750e1/transactions/ec2a9b09-601a-42ae-8e33-a5737e1cf177\", \"created\": \"2020-03-10T13:15:01.9586254Z\", \"updated\": \"2020-03-10T13:15:02.0493818Z\", \"type\": \"Authorization\", \"state\": \"AwaitingActivity\", \"number\": 70100366758, \"amount\": 4201, \"vatAmount\": 0, \"description\": \"Test transaction\", \"payeeReference\": \"1583846100\", \"isOperational\": true } } } Here’s some <inline> { \"code\": true } that should .be { highlighted: according; } to their language. Header 4 This is an unordered list following a header. This is an unordered list following a header. This is an unordered list following a header. Header 5 This is an ordered list following a header. This is an ordered list following a header. This is an ordered list following a header. Header 6 Here’s a nice, striped table. head1 head two three ok good swedish fish nice out of stock good and plenty nice ok good oreos hmm ok good zoute drop yumm Mermaid sequenceDiagram participant Merchant participant SwedbankPay activate SwedbankPay SwedbankPay->>Merchant: POST <callbackUrl> activate Merchant note right of SwedbankPay: Callback POST by SwedbankPay Merchant->>SwedbankPay: Callback response deactivate Merchant deactivate SwedbankPay activate Merchant Merchant->>SwedbankPay: GET <payment instrument> payment note left of Merchant: First API request activate SwedbankPay SwedbankPay-->>Merchant: payment resource deactivate SwedbankPay deactivate Merchant Alerts This is a standard alert. check_circle This is a successful alert. info_outline Informational alert: This is an informational alert with <markdown/>. warning { \"warning\": \"alert\" }: This is a warning alert with <markdown/>. Jumbotron PayEx Checkout is a complete reimagination of the checkout experience, integrating seamlessly into the merchant website through highly customizable and flexible components. Visit our demoshop and try out PayEx Checkout for yourself! Iterator Next Previous Go back Go forward There’s a horizontal rule below this Here is an unordered list Item foo Item bar Item baz Item zip And an ordered list Item one Item two Item three Item four And a nested list level 1 item level 2 item level 2 item level 3 item level 3 item level 1 item level 2 item level 2 item level 2 item level 1 item level 2 item level 2 item level 1 item Small image Large image Definition lists can be used with HTML syntax Name Godzilla Born 1952 Birthplace Japan Color Green Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. The final element. Emoji support :+1: :heavy_check_mark: :fire: 💡 :unicorn: Material design icons check line_weight gavel visibility work alarm_on touch_app", "tags": "", "url": "/" - },{ - "title": "Payments Only", - "text": "Payments Only is where you get to be in charge of everything. You handle the consumer verification with a strong customer authentication, collect the consumer information needed to calculate shipping costs, and store the information yourself. We provide you with our full range of payment methods. There are two ways of integrating the Payments Only implementation. Redirect and Seamless View. With Redirect, the payer is sent to a Swedbank Pay page, where we handle the purchase process. The payer is redirected back to you when the purchase is completed or if the payer aborts the purchase. The purchase page will be styled by Swedbank Pay. With Seamless View, the payer stays at your site, and you initiate the Swedbank Pay purchase module in an iframe. The purchase component will be styled by Swedbank Pay. Read more about our two integration alternatives by clicking the links below. This product supports Danish da-DK, English (US) en-US, Finnish fi-FI, Norwegian nb-NO, and Swedish sv-SE.", - "tags": "", - "url": "/products/checkout-v3-dev/payments-only/introduction.html" },{ "title": "Starter", "text": "This is the option where Swedbank Pay does it all. Verifying your consumer, collecting billing and shipping addresses, storing consumer information and providing you with the full range of available payment methods. The only way of integrating our Starter implementation is Seamless View. With Seamless View, the payer stays at your site, and you initiate the Swedbank Pay authentication and purchase module in an iframe. The checkin and purchase component will be styled by Swedbank Pay. Read more about the integration by clicking the link below. This product supports Danish da-DK, English (US) en-US, Finnish fi-FI, Norwegian nb-NO, and Swedish sv-SE.", "tags": "", "url": "/products/checkout-v3-dev/starter/introduction.html" + },{ + "title": "Payments Only", + "text": "Payments Only is where you get to be in charge of everything. You handle the consumer verification with a strong customer authentication, collect the consumer information needed to calculate shipping costs, and store the information yourself. We provide you with our full range of payment methods. There are two ways of integrating the Payments Only implementation. Redirect and Seamless View. With Redirect, the payer is sent to a Swedbank Pay page, where we handle the purchase process. The payer is redirected back to you when the purchase is completed or if the payer aborts the purchase. The purchase page will be styled by Swedbank Pay. With Seamless View, the payer stays at your site, and you initiate the Swedbank Pay purchase module in an iframe. The purchase component will be styled by Swedbank Pay. Read more about our two integration alternatives by clicking the links below. This product supports Danish da-DK, English (US) en-US, Finnish fi-FI, Norwegian nb-NO, and Swedish sv-SE.", + "tags": "", + "url": "/products/checkout-v3-dev/payments-only/introduction.html" },{ "title": "Invoicing", "text": "Invoices It’s a weird thing this invoice, some like it, most dont. I have no particularly strong feeling seeing that I am just text on a page.", @@ -708,26 +708,21 @@ var tipuesearch = {"pages": [{ "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", "url": "/checkout/v2/features/technical-reference/items.html" - },{ - "title": "Metadata", - "text": "", - "tags": "", - "url": "/products/checkout-v3-dev/starter/features/technical-reference/metadata.html" },{ "title": "Metadata", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/metadata.html" + "url": "/checkout/v3/dsca/features/technical-reference/metadata.html" },{ "title": "Metadata", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/metadata.html" + "url": "/checkout/v3/standard/features/technical-reference/metadata.html" },{ "title": "Metadata", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/metadata.html" + "url": "/checkout/v3/basic/features/technical-reference/metadata.html" },{ "title": "Metadata", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -737,27 +732,27 @@ var tipuesearch = {"pages": [{ "title": "Metadata", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/metadata.html" + "url": "/checkout/v2/features/technical-reference/metadata.html" },{ - "title": "Operations", + "title": "Metadata", "text": "", "tags": "", - "url": "/products/checkout-v3-dev/starter/features/technical-reference/operations.html" + "url": "/products/checkout-v3-dev/starter/features/technical-reference/metadata.html" },{ "title": "Operations", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/operations.html" + "url": "/checkout/v3/dsca/features/technical-reference/operations.html" },{ "title": "Operations", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/operations.html" + "url": "/checkout/v3/standard/features/technical-reference/operations.html" },{ "title": "Operations", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/operations.html" + "url": "/checkout/v3/basic/features/technical-reference/operations.html" },{ "title": "Operations", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -767,7 +762,12 @@ var tipuesearch = {"pages": [{ "title": "Operations", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/operations.html" + "url": "/checkout/v2/features/technical-reference/operations.html" + },{ + "title": "Operations", + "text": "", + "tags": "", + "url": "/products/checkout-v3-dev/starter/features/technical-reference/operations.html" },{ "title": "Order Items", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -787,17 +787,17 @@ var tipuesearch = {"pages": [{ "title": "PayeeInfo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/payee-info.html" + "url": "/checkout/v3/dsca/features/technical-reference/payee-info.html" },{ "title": "PayeeInfo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/payee-info.html" + "url": "/checkout/v3/standard/features/technical-reference/payee-info.html" },{ "title": "PayeeInfo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/payee-info.html" + "url": "/checkout/v3/basic/features/technical-reference/payee-info.html" },{ "title": "PayeeInfo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -807,22 +807,22 @@ var tipuesearch = {"pages": [{ "title": "PayeeInfo", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/payee-info.html" + "url": "/checkout/v2/features/technical-reference/payee-info.html" },{ "title": "PayeeReference", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/payee-reference.html" + "url": "/checkout/v3/dsca/features/technical-reference/payee-reference.html" },{ "title": "PayeeReference", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/payee-reference.html" + "url": "/checkout/v3/standard/features/technical-reference/payee-reference.html" },{ "title": "PayeeReference", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/payee-reference.html" + "url": "/checkout/v3/basic/features/technical-reference/payee-reference.html" },{ "title": "PayeeReference", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -832,22 +832,22 @@ var tipuesearch = {"pages": [{ "title": "PayeeReference", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/payee-reference.html" + "url": "/checkout/v2/features/technical-reference/payee-reference.html" },{ "title": "Payment Menu Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/payment-menu-events.html" + "url": "/checkout/v3/dsca/features/technical-reference/payment-menu-events.html" },{ "title": "Payment Menu Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/payment-menu-events.html" + "url": "/checkout/v3/standard/features/technical-reference/payment-menu-events.html" },{ "title": "Payment Menu Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/payment-menu-events.html" + "url": "/checkout/v3/basic/features/technical-reference/payment-menu-events.html" },{ "title": "Payment Menu Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -857,12 +857,7 @@ var tipuesearch = {"pages": [{ "title": "Payment Menu Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/payment-menu-events.html" - },{ - "title": "Payment Menu", - "text": "Step 3: Create Payment Order Once the consumer has been identified, the next step is to initiate the payment using consumerProfileRef retrieved in the previous step. We start by performing a POST request towards the paymentorder resource with the payer information (such as consumerProfileRef) we obtained in the checkin process described above. This information will appear prefilled in the Payment Menu. If you are sending a guest user POST request, simply leave out the consumerProfileRef from the input, and the payer will be sent to an empty Payment Menu. Information like email, address and msisdn can still be added manually in the payer node. If added, it will appear prefilled in the Payment Menu. Remember to read up on our URL resource. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci. Pellentesque a maximus leo. Pellentesque tincidunt tristique turpis a tincidunt. Fusce a risus facilisis, interdum est sed, auctor erat. Pellentesque eu dolor vitae urna posuere sagittis. Cras viverra tempor massa. Aliquam nec est est. Suspendisse dictum risus dui, sed efficitur urna tempus vitae. Etiam vehicula fringilla diam, eu elementum enim maximus vitae. Proin leo sem, luctus vel auctor sit amet, suscipit eget ex. Integer id libero purus. Etiam est eros, volutpat aliquet nibh eget, semper volutpat sapien. Vivamus laoreet eros a risus vulputate vehicula. Curabitur blandit lorem in facilisis tempor. Donec porttitor placerat tincidunt. Morbi vestibulum, neque quis maximus posuere, quam dolor pharetra purus, non bibendum orci leo vel arcu. Vivamus vel accumsan neque. Suspendisse potenti. Proin quis pharetra turpis. Nam gravida bibendum mi at porttitor. Curabitur condimentum erat quis lorem congue, ac ultrices massa rutrum. Donec semper nisi metus, et dapibus nisl malesuada at. Aenean quis porta metus. Vestibulum gravida vulputate gravida. Integer sed rutrum diam. Phasellus tempus at dolor eget aliquet. Fusce et sodales augue. Nunc malesuada lorem purus, et aliquam sapien gravida non. Proin ac gravida mi. Sed et commodo ligula, ut eleifend orci. Request Nunc tincidunt eros eget tempus interdum. Fusce lobortis, urna a rutrum molestie, tortor sapien vestibulum tortor, hendrerit viverra enim erat vel magna. Phasellus gravida vel felis at tincidunt. Integer a dui ac arcu varius malesuada at in lectus. Aenean viverra pulvinar orci in lacinia. Praesent vel massa ut sapien tincidunt rutrum. Maecenas sit amet lectus facilisis lacus ultricies mattis et vitae nulla. Ut maximus sed augue vitae sagittis. Duis cursus velit non turpis vestibulum consequat. In mauris orci, efficitur at nulla at, dictum luctus lorem. Praesent eget accumsan enim. Nulla facilisis, massa elementum venenatis fringilla, dui nulla mollis tellus, a interdum orci diam sed magna. Aenean nec elementum nisi. Sed nunc magna, scelerisque at orci at, dictum lacinia eros. Morbi tempus faucibus risus, a auctor purus semper a. Praesent eget feugiat libero. Response The response back should look something like this (abbreviated for brevity): Response 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 HTTP/1.1 201 Created Content-Type: application/json { \"paymentorder\": { \"id\": \"/psp/paymentorders/\" }, \"operations\": [ { \"href\": \"/paymentmenu/core/scripts/client/px.paymentmenu.client.js?token=&culture=sv-SE\", \"rel\": \"view-paymentorder\", \"method\": \"GET\", \"contentType\": \"application/javascript\" } ] } Field Type Description paymentorder object The payment order object. └➔ id string Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl. operations array The array of possible operations to perform, given the state of the payment order. The paymentorder object is abbreviated since it’s just the id and operations we are interested in. Store the id of the Payment Order in your system to look up status on the completed payment later. Then find the view-paymentorder operation and embed its href in a <script> element. That script will then load the Seamless View for the Payment Menu. We will look into how to hook that up next. info orderReference must be sent as a part of the POST request to paymentorders and must represent the order ID of the webshop or merchant website. Step 4: Display the Payment Menu To load the Payment Menu from the JavaScript URL obtained in the back end API response, it needs to be set as a script element’s src attribute. You can cause a page reload and do this with static HTML, or you can avoid the page refresh by invoking the POST to create the payment order through Ajax and then create the script element with JavaScript, all inside the event handler for onConsumerIdentified. The HTML code will be unchanged in this example. For the guest Payment Menu, lines 23-44 in the JavaScript should be your main focus. They contain what you need to display the Payment Menu without Checkin. JavaScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 var request = new XMLHttpRequest(); request.addEventListener('load', function () { // We will assume that our own backend returns the // exact same as what SwedbankPay returns. response = JSON.parse(this.responseText); var script = document.createElement('script'); // This assumes the operations from the response of the POST of the // payment order is returned verbatim from the server to the Ajax: var operation = response.operations.find(function (o) { return o.rel === 'view-consumer-identification'; }); script.setAttribute('src', operation.href); script.onload = function () { payex.hostedView.consumer({ // The container specifies which id the script will look for // to host the checkin component container: 'checkin', onConsumerIdentified: function onConsumerIdentified(consumerIdentifiedEvent) { // When the consumer is identified, we need to perform an AJAX request // to our server to forward the consumerProfileRef in a server-to-server // POST request to the Payment Orders resource in order to initialize // the Payment Menu. var request = new XMLHttpRequest(); request.addEventListener('load', function () { response = JSON.parse(this.responseText); // This is identical to how we get the 'view-consumer-identification' // script from the check-in. var script = document.createElement('script'); var operation = response.operations.find(function (o) { return o.rel === 'view-paymentorder'; }); script.setAttribute('src', operation.href); script.onload = function () { // When the 'view-paymentorder' script is loaded, we can initialize the // Payment Menu inside our 'payment-menu' container. payex.hostedView.paymentMenu({ container: 'payment-menu', culture: 'sv-SE' }).open(); }; // Append the Payment Menu script to the <head> var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Like before, you should replace the address here with // your own endpoint. request.open('POST', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // In this example, we send the entire Consumer Identified Event Argument // Object as JSON to the server, as it contains the consumerProfileRef. request.send(JSON.stringify(consumerIdentifiedEvent)); }, onShippingDetailsAvailable: function onShippingDetailsAvailable(shippingDetailsAvailableEvent) { console.log(shippingDetailsAvailableEvent); } }).open(); }; // Appending the script to the head var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Place in your own API endpoint here. request.open('POST', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // We send in the previously mentioned request here to the checkin endpoint. request.send(JSON.stringify({ operation: 'initiate-consumer-session', language: 'sv-SE', shippingAddressRestrictedToCountryCodes : ['NO', 'SE'] })); This should bring up the Payment Menu in a Seamless View looking like this, depending on whether the payer is logged in (top two) or a guest user (bottom two). Payments done in SEK will have radio buttons for choosing debit or credit card. When the the payment is completed, the Payment Menu script will be signaled and a full redirect to the completeUrl sent in with the Payment Order will be performed. When the completeUrl on your server is hit, you can inspect the status on the stored paymentorder.id on the server, and then perform capture. If the payment is a Sale or one-phase purchase, it will be automatically captured. A third scenario is if the goods are sent physically to the payer; then you should await capture until after the goods have been sent. You may open and close the payment menu using .open() and .close() functions. You can also invoke .refresh() to update the Payment Menu after any changes to the order. Below, you will see a complete overview of the payment menu process. Notice that there are two ways of performing the payment: Consumer perform payment out of iframe. Consumer perform payment within iframe. sequenceDiagram participant Consumer participant Merchant participant SwedbankPay as Swedbank Pay rect rgba(138, 205, 195, 0.1) activate Consumer note left of Consumer: Payment Menu Consumer ->>+ Merchant: Initiate Purchase deactivate Consumer Merchant ->>+ SwedbankPay: POST /psp/paymentorders (paymentUrl, payer) deactivate Merchant SwedbankPay -->>+ Merchant: rel:view-paymentorder deactivate SwedbankPay Merchant -->>- Consumer: Display Payment Menu on Merchant Page activate Consumer Consumer ->> Consumer: Initiate Payment Menu Seamless View (open iframe) Consumer -->>+ SwedbankPay: Show Payment UI page in iframe deactivate Consumer SwedbankPay ->>+ Consumer: Do payment logic deactivate SwedbankPay opt Consumer perform payment out of iFrame Consumer ->> Consumer: Redirect to 3rd party Consumer ->>+ 3rdParty: Redirect to 3rdPartyUrl URL deactivate Consumer 3rdParty -->>+ Consumer: Redirect back to paymentUrl (merchant) deactivate 3rdParty Consumer ->> Consumer: Initiate Payment Menu Seamless View (open iframe) Consumer ->>+ SwedbankPay: Show Payment UI page in iframe deactivate Consumer SwedbankPay ->> Consumer: Do payment logic end SwedbankPay -->> Consumer: Payment status deactivate SwedbankPay alt If payment is completed activate Consumer Consumer ->> Consumer: Event: onPaymentCompleted Consumer ->>+ Merchant: Check payment status deactivate Consumer Merchant ->>+ SwedbankPay: GET <paymentorder.id> deactivate Merchant SwedbankPay ->>+ Merchant: rel: paid-paymentorder deactivate SwedbankPay opt Get PaymentOrder Details (if paid-paymentorder operation exist) activate Consumer deactivate Consumer Merchant ->>+ SwedbankPay: GET rel: paid-paymentorder deactivate Merchant SwedbankPay -->> Merchant: Payment Details deactivate SwedbankPay end end opt If payment is failed activate Consumer Consumer ->> Consumer: Event: OnPaymentFailed Consumer ->>+ Merchant: Check payment status deactivate Consumer Merchant ->>+ SwedbankPay: GET {paymentorder.id} deactivate Merchant SwedbankPay -->>+ Merchant: rel: failed-paymentorder deactivate SwedbankPay opt Get PaymentOrder Details (if failed-paymentorder operation exist) activate Consumer deactivate Consumer Merchant ->>+ SwedbankPay: GET rel: failed-paymentorder deactivate Merchant SwedbankPay -->> Merchant: Payment Details deactivate SwedbankPay end end activate Merchant Merchant -->>- Consumer: Show Purchase complete opt PaymentOrder Callback (if callbackUrls is set) activate Consumer deactivate Consumer SwedbankPay ->> Merchant: POST Payment Callback end end Now that you have completed the Payment Menu integration, you can move on to finalizing the payment in the After Payment section. Checkin Capture", - "tags": "", - "url": "/checkout/v2/payment-menu.html" + "url": "/checkout/v2/features/technical-reference/payment-menu-events.html" },{ "title": "Payment Menu", "text": "", @@ -878,36 +873,41 @@ var tipuesearch = {"pages": [{ "text": "", "tags": "", "url": "/checkout/v3/tailored/payment-menu.html" + },{ + "title": "Payment Menu", + "text": "Step 3: Create Payment Order Once the consumer has been identified, the next step is to initiate the payment using consumerProfileRef retrieved in the previous step. We start by performing a POST request towards the paymentorder resource with the payer information (such as consumerProfileRef) we obtained in the checkin process described above. This information will appear prefilled in the Payment Menu. If you are sending a guest user POST request, simply leave out the consumerProfileRef from the input, and the payer will be sent to an empty Payment Menu. Information like email, address and msisdn can still be added manually in the payer node. If added, it will appear prefilled in the Payment Menu. Remember to read up on our URL resource. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci. Pellentesque a maximus leo. Pellentesque tincidunt tristique turpis a tincidunt. Fusce a risus facilisis, interdum est sed, auctor erat. Pellentesque eu dolor vitae urna posuere sagittis. Cras viverra tempor massa. Aliquam nec est est. Suspendisse dictum risus dui, sed efficitur urna tempus vitae. Etiam vehicula fringilla diam, eu elementum enim maximus vitae. Proin leo sem, luctus vel auctor sit amet, suscipit eget ex. Integer id libero purus. Etiam est eros, volutpat aliquet nibh eget, semper volutpat sapien. Vivamus laoreet eros a risus vulputate vehicula. Curabitur blandit lorem in facilisis tempor. Donec porttitor placerat tincidunt. Morbi vestibulum, neque quis maximus posuere, quam dolor pharetra purus, non bibendum orci leo vel arcu. Vivamus vel accumsan neque. Suspendisse potenti. Proin quis pharetra turpis. Nam gravida bibendum mi at porttitor. Curabitur condimentum erat quis lorem congue, ac ultrices massa rutrum. Donec semper nisi metus, et dapibus nisl malesuada at. Aenean quis porta metus. Vestibulum gravida vulputate gravida. Integer sed rutrum diam. Phasellus tempus at dolor eget aliquet. Fusce et sodales augue. Nunc malesuada lorem purus, et aliquam sapien gravida non. Proin ac gravida mi. Sed et commodo ligula, ut eleifend orci. Request Nunc tincidunt eros eget tempus interdum. Fusce lobortis, urna a rutrum molestie, tortor sapien vestibulum tortor, hendrerit viverra enim erat vel magna. Phasellus gravida vel felis at tincidunt. Integer a dui ac arcu varius malesuada at in lectus. Aenean viverra pulvinar orci in lacinia. Praesent vel massa ut sapien tincidunt rutrum. Maecenas sit amet lectus facilisis lacus ultricies mattis et vitae nulla. Ut maximus sed augue vitae sagittis. Duis cursus velit non turpis vestibulum consequat. In mauris orci, efficitur at nulla at, dictum luctus lorem. Praesent eget accumsan enim. Nulla facilisis, massa elementum venenatis fringilla, dui nulla mollis tellus, a interdum orci diam sed magna. Aenean nec elementum nisi. Sed nunc magna, scelerisque at orci at, dictum lacinia eros. Morbi tempus faucibus risus, a auctor purus semper a. Praesent eget feugiat libero. Response The response back should look something like this (abbreviated for brevity): Response 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 HTTP/1.1 201 Created Content-Type: application/json { \"paymentorder\": { \"id\": \"/psp/paymentorders/\" }, \"operations\": [ { \"href\": \"/paymentmenu/core/scripts/client/px.paymentmenu.client.js?token=&culture=sv-SE\", \"rel\": \"view-paymentorder\", \"method\": \"GET\", \"contentType\": \"application/javascript\" } ] } Field Type Description paymentorder object The payment order object. └➔ id string Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl. operations array The array of possible operations to perform, given the state of the payment order. The paymentorder object is abbreviated since it’s just the id and operations we are interested in. Store the id of the Payment Order in your system to look up status on the completed payment later. Then find the view-paymentorder operation and embed its href in a <script> element. That script will then load the Seamless View for the Payment Menu. We will look into how to hook that up next. info orderReference must be sent as a part of the POST request to paymentorders and must represent the order ID of the webshop or merchant website. Step 4: Display the Payment Menu To load the Payment Menu from the JavaScript URL obtained in the back end API response, it needs to be set as a script element’s src attribute. You can cause a page reload and do this with static HTML, or you can avoid the page refresh by invoking the POST to create the payment order through Ajax and then create the script element with JavaScript, all inside the event handler for onConsumerIdentified. The HTML code will be unchanged in this example. For the guest Payment Menu, lines 23-44 in the JavaScript should be your main focus. They contain what you need to display the Payment Menu without Checkin. JavaScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 var request = new XMLHttpRequest(); request.addEventListener('load', function () { // We will assume that our own backend returns the // exact same as what SwedbankPay returns. response = JSON.parse(this.responseText); var script = document.createElement('script'); // This assumes the operations from the response of the POST of the // payment order is returned verbatim from the server to the Ajax: var operation = response.operations.find(function (o) { return o.rel === 'view-consumer-identification'; }); script.setAttribute('src', operation.href); script.onload = function () { payex.hostedView.consumer({ // The container specifies which id the script will look for // to host the checkin component container: 'checkin', onConsumerIdentified: function onConsumerIdentified(consumerIdentifiedEvent) { // When the consumer is identified, we need to perform an AJAX request // to our server to forward the consumerProfileRef in a server-to-server // POST request to the Payment Orders resource in order to initialize // the Payment Menu. var request = new XMLHttpRequest(); request.addEventListener('load', function () { response = JSON.parse(this.responseText); // This is identical to how we get the 'view-consumer-identification' // script from the check-in. var script = document.createElement('script'); var operation = response.operations.find(function (o) { return o.rel === 'view-paymentorder'; }); script.setAttribute('src', operation.href); script.onload = function () { // When the 'view-paymentorder' script is loaded, we can initialize the // Payment Menu inside our 'payment-menu' container. payex.hostedView.paymentMenu({ container: 'payment-menu', culture: 'sv-SE' }).open(); }; // Append the Payment Menu script to the <head> var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Like before, you should replace the address here with // your own endpoint. request.open('POST', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // In this example, we send the entire Consumer Identified Event Argument // Object as JSON to the server, as it contains the consumerProfileRef. request.send(JSON.stringify(consumerIdentifiedEvent)); }, onShippingDetailsAvailable: function onShippingDetailsAvailable(shippingDetailsAvailableEvent) { console.log(shippingDetailsAvailableEvent); } }).open(); }; // Appending the script to the head var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Place in your own API endpoint here. request.open('POST', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); // We send in the previously mentioned request here to the checkin endpoint. request.send(JSON.stringify({ operation: 'initiate-consumer-session', language: 'sv-SE', shippingAddressRestrictedToCountryCodes : ['NO', 'SE'] })); This should bring up the Payment Menu in a Seamless View looking like this, depending on whether the payer is logged in (top two) or a guest user (bottom two). Payments done in SEK will have radio buttons for choosing debit or credit card. When the the payment is completed, the Payment Menu script will be signaled and a full redirect to the completeUrl sent in with the Payment Order will be performed. When the completeUrl on your server is hit, you can inspect the status on the stored paymentorder.id on the server, and then perform capture. If the payment is a Sale or one-phase purchase, it will be automatically captured. A third scenario is if the goods are sent physically to the payer; then you should await capture until after the goods have been sent. You may open and close the payment menu using .open() and .close() functions. You can also invoke .refresh() to update the Payment Menu after any changes to the order. Below, you will see a complete overview of the payment menu process. Notice that there are two ways of performing the payment: Consumer perform payment out of iframe. Consumer perform payment within iframe. sequenceDiagram participant Consumer participant Merchant participant SwedbankPay as Swedbank Pay rect rgba(138, 205, 195, 0.1) activate Consumer note left of Consumer: Payment Menu Consumer ->>+ Merchant: Initiate Purchase deactivate Consumer Merchant ->>+ SwedbankPay: POST /psp/paymentorders (paymentUrl, payer) deactivate Merchant SwedbankPay -->>+ Merchant: rel:view-paymentorder deactivate SwedbankPay Merchant -->>- Consumer: Display Payment Menu on Merchant Page activate Consumer Consumer ->> Consumer: Initiate Payment Menu Seamless View (open iframe) Consumer -->>+ SwedbankPay: Show Payment UI page in iframe deactivate Consumer SwedbankPay ->>+ Consumer: Do payment logic deactivate SwedbankPay opt Consumer perform payment out of iFrame Consumer ->> Consumer: Redirect to 3rd party Consumer ->>+ 3rdParty: Redirect to 3rdPartyUrl URL deactivate Consumer 3rdParty -->>+ Consumer: Redirect back to paymentUrl (merchant) deactivate 3rdParty Consumer ->> Consumer: Initiate Payment Menu Seamless View (open iframe) Consumer ->>+ SwedbankPay: Show Payment UI page in iframe deactivate Consumer SwedbankPay ->> Consumer: Do payment logic end SwedbankPay -->> Consumer: Payment status deactivate SwedbankPay alt If payment is completed activate Consumer Consumer ->> Consumer: Event: onPaymentCompleted Consumer ->>+ Merchant: Check payment status deactivate Consumer Merchant ->>+ SwedbankPay: GET <paymentorder.id> deactivate Merchant SwedbankPay ->>+ Merchant: rel: paid-paymentorder deactivate SwedbankPay opt Get PaymentOrder Details (if paid-paymentorder operation exist) activate Consumer deactivate Consumer Merchant ->>+ SwedbankPay: GET rel: paid-paymentorder deactivate Merchant SwedbankPay -->> Merchant: Payment Details deactivate SwedbankPay end end opt If payment is failed activate Consumer Consumer ->> Consumer: Event: OnPaymentFailed Consumer ->>+ Merchant: Check payment status deactivate Consumer Merchant ->>+ SwedbankPay: GET {paymentorder.id} deactivate Merchant SwedbankPay -->>+ Merchant: rel: failed-paymentorder deactivate SwedbankPay opt Get PaymentOrder Details (if failed-paymentorder operation exist) activate Consumer deactivate Consumer Merchant ->>+ SwedbankPay: GET rel: failed-paymentorder deactivate Merchant SwedbankPay -->> Merchant: Payment Details deactivate SwedbankPay end end activate Merchant Merchant -->>- Consumer: Show Purchase complete opt PaymentOrder Callback (if callbackUrls is set) activate Consumer deactivate Consumer SwedbankPay ->> Merchant: POST Payment Callback end end Now that you have completed the Payment Menu integration, you can move on to finalizing the payment in the After Payment section. Checkin Capture", + "tags": "", + "url": "/checkout/v2/payment-menu.html" },{ "title": "Abort", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", "url": "/checkout/v2/features/core/payment-order-abort.html" },{ - "title": "Capture", + "title": "PaymentOrders Capture", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/core/payment-order-capture.html" + "url": "/checkout/v3/dsca/features/core/payment-order-capture.html" },{ "title": "PaymentOrders Capture", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/core/payment-order-capture.html" + "url": "/checkout/v3/standard/features/core/payment-order-capture.html" },{ "title": "PaymentOrders Capture", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/core/payment-order-capture.html" + "url": "/checkout/v3/basic/features/core/payment-order-capture.html" },{ "title": "PaymentOrders Capture", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", "url": "/checkout/v3/tailored/features/core/payment-order-capture.html" },{ - "title": "PaymentOrders Capture", + "title": "Capture", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/core/payment-order-capture.html" + "url": "/checkout/v2/features/core/payment-order-capture.html" },{ "title": "Update Payment Order", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -922,17 +922,17 @@ var tipuesearch = {"pages": [{ "title": "Payment State", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/payment-state.html" + "url": "/checkout/v3/dsca/features/technical-reference/payment-state.html" },{ "title": "Payment State", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/payment-state.html" + "url": "/checkout/v3/standard/features/technical-reference/payment-state.html" },{ "title": "Payment State", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/payment-state.html" + "url": "/checkout/v3/basic/features/technical-reference/payment-state.html" },{ "title": "Payment State", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -942,22 +942,22 @@ var tipuesearch = {"pages": [{ "title": "Payment State", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/payment-state.html" + "url": "/checkout/v2/features/technical-reference/payment-state.html" },{ "title": "PaymentUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/payment-url.html" + "url": "/checkout/v3/dsca/features/technical-reference/payment-url.html" },{ "title": "PaymentUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/payment-url.html" + "url": "/checkout/v3/standard/features/technical-reference/payment-url.html" },{ "title": "PaymentUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/payment-url.html" + "url": "/checkout/v3/basic/features/technical-reference/payment-url.html" },{ "title": "PaymentUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -967,32 +967,32 @@ var tipuesearch = {"pages": [{ "title": "PaymentUrl", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/payment-url.html" + "url": "/checkout/v2/features/technical-reference/payment-url.html" },{ "title": "Post Purchase", - "text": "The purchase should now be complete. But what if the purchase is cancelled or the payer wants to return goods? For these instances, we have cancel and reversal.", + "text": "The purchase should now be complete. But what if the purchase is cancelled or the payer wants to return goods? For these scenarios, we have cancel and reversal.", "tags": "", - "url": "/products/checkout-v3-dev/payments-only/post-purchase.html" + "url": "/products/checkout-v3-dev/starter/post-purchase.html" },{ "title": "Post Purchase", - "text": "The purchase should now be complete. But what if the purchase is cancelled or the payer wants to return goods? For these scenarios, we have cancel and reversal.", + "text": "The purchase should now be complete. But what if the purchase is cancelled or the payer wants to return goods? For these instances, we have cancel and reversal.", "tags": "", - "url": "/products/checkout-v3-dev/starter/post-purchase.html" + "url": "/products/checkout-v3-dev/payments-only/post-purchase.html" },{ "title": "Prices", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/prices.html" + "url": "/checkout/v3/dsca/features/technical-reference/prices.html" },{ "title": "Prices", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/prices.html" + "url": "/checkout/v3/standard/features/technical-reference/prices.html" },{ "title": "Prices", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/prices.html" + "url": "/checkout/v3/basic/features/technical-reference/prices.html" },{ "title": "Prices", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1002,22 +1002,22 @@ var tipuesearch = {"pages": [{ "title": "Prices", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/prices.html" + "url": "/checkout/v2/features/technical-reference/prices.html" },{ "title": "Problems", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/problems.html" + "url": "/checkout/v3/dsca/features/technical-reference/problems.html" },{ "title": "Problems", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/problems.html" + "url": "/checkout/v3/standard/features/technical-reference/problems.html" },{ "title": "Problems", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/problems.html" + "url": "/checkout/v3/basic/features/technical-reference/problems.html" },{ "title": "Problems", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1027,22 +1027,22 @@ var tipuesearch = {"pages": [{ "title": "Problems", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/problems.html" + "url": "/checkout/v2/features/technical-reference/problems.html" },{ "title": "Purchase", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/purchase.html" + "url": "/checkout/v3/dsca/features/technical-reference/purchase.html" },{ "title": "Purchase", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/purchase.html" + "url": "/checkout/v3/standard/features/technical-reference/purchase.html" },{ "title": "Purchase", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/purchase.html" + "url": "/checkout/v3/basic/features/technical-reference/purchase.html" },{ "title": "Purchase", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1052,22 +1052,22 @@ var tipuesearch = {"pages": [{ "title": "Purchase", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/purchase.html" + "url": "/checkout/v2/features/technical-reference/purchase.html" },{ "title": "Recur", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/optional/recur.html" + "url": "/checkout/v3/dsca/features/optional/recur.html" },{ "title": "Recur", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/optional/recur.html" + "url": "/checkout/v3/standard/features/optional/recur.html" },{ "title": "Recur", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/optional/recur.html" + "url": "/checkout/v3/basic/features/optional/recur.html" },{ "title": "Recur", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1077,7 +1077,7 @@ var tipuesearch = {"pages": [{ "title": "Recur", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/optional/recur.html" + "url": "/checkout/v2/features/optional/recur.html" },{ "title": "Redirect", "text": "", @@ -1092,17 +1092,17 @@ var tipuesearch = {"pages": [{ "title": "Reversal", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/core/reversal.html" + "url": "/checkout/v3/dsca/features/core/reversal.html" },{ "title": "Reversal", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/core/reversal.html" + "url": "/checkout/v3/standard/features/core/reversal.html" },{ "title": "Reversal", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/core/reversal.html" + "url": "/checkout/v3/basic/features/core/reversal.html" },{ "title": "Reversal", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1112,22 +1112,22 @@ var tipuesearch = {"pages": [{ "title": "Reversal", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/core/reversal.html" + "url": "/checkout/v2/features/core/reversal.html" },{ "title": "Seamless View Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/technical-reference/seamless-view-events.html" + "url": "/checkout/v3/dsca/features/technical-reference/seamless-view-events.html" },{ "title": "Seamless View Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/technical-reference/seamless-view-events.html" + "url": "/checkout/v3/standard/features/technical-reference/seamless-view-events.html" },{ "title": "Seamless View Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/technical-reference/seamless-view-events.html" + "url": "/checkout/v3/basic/features/technical-reference/seamless-view-events.html" },{ "title": "Seamless View Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1137,17 +1137,17 @@ var tipuesearch = {"pages": [{ "title": "Seamless View Events", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/technical-reference/seamless-view-events.html" + "url": "/checkout/v2/features/technical-reference/seamless-view-events.html" },{ "title": "Seamless View", - "text": "The Starter Seamless View integration consists of three main steps. Creating the payment order and checkin, displaying the payment menu, delivery options and checkin module in an iframe, and finally capturing the funds. In addition, there are other post purchase options you need. We get to them later on. If you want to get an overview before proceeding, you can look at the sequence diagram. It is also available in the sidebar if you want to look at it later. Let´s get going with the two first steps of the integration. Step 1: Create Payment Order And Checkin When the purchase is initiated, you need to create a payment order. Start by performing a POST request towards the paymentorder resource with payer information and a completeUrl. We have added productName to the payment order request in this integration. You can find it in the paymentorder field. This is required if you want to use Checkout v3. If it isn´t included in your request, you won’t get the correct operations in the response. When productName is set to checkout3, requireConsumerInfo and digitalProducts will be set to false by default. For the Starter integration, you must set requireConsumerInfo to true. If digitalProducts is set to false, you also need to add shippingAddressRestrictedToCountryCodes along with ISO standard country codes. Supported features for this integration are subscriptions (recur and unscheduled MIT), instrument mode and split settlement (subsite). There is also a guest mode option for the payers who don’t wish to store their information. When using Starter, this is triggered when the payer chooses not to store credentials during checkin. In some instances you need the possibility to abort purchases. This could be if a payer does not complete the purchase within a reasonable timeframe. For those instances we have abort. You can only use abort if the payer has not completed an authorize or a sale. Step 2: Display Checkin, Delivery Options And Payment Menu Among the operations in the POST paymentOrders response, you will find view-checkout. This is what you need to display the checkin and payment module. Response 1 2 3 4 5 6 7 8 9 10 11 { \"paymentOrder\": { \"operations\": [ { \"method\": \"GET\", \"href\": \"https://ecom.externalintegration.payex.com/payment/core/js/px.payment.client.js?token=dd728a47e3ec7be442c98eafcfd9b0207377ce04c793407eb36d07faa69a32df&culture=sv-SE\", \"rel\": \"view-checkout\", \"contentType\": \"application/javascript\" }, ] } Load The Javascript Embed the href from the example above in a <script> element. That script will then load the Seamless View. To load the Checkout from the JavaScript URL obtained in the backend API response, it needs to be set as a script element’s src attribute. You can cause a page reload and do this with static HTML, or you can avoid the page refresh by invoking the POST to create the payment order through Ajax, and then create the script element with JavaScript. The HTML code will be unchanged in this example. JavaScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 var request = new XMLHttpRequest(); request.addEventListener('load', function () { response = JSON.parse(this.responseText); var script = document.createElement('script'); var operation = response.operations.find(function (o) { return o.rel === 'view-checkout'; }); script.setAttribute('src', operation.href); script.onload = function () { // When the 'view-checkout' script is loaded, we can initialize the // Payment Menu inside our 'payment-menu' container. // To open the Checkin window.payex.hostedView.checkout({ container: { checkin: \"checkin\", paymentMenu: \"paymentMenu\", }, culture: 'nb-No', // If payer is identified onPayerIdentified: function onPayerIdentified(payerIdentified) { console.log(payerIdentified); }, // If payer chooses \"Not you?\" onPayerUnidentified: function onPayerUnidentified(payerUnidentified) { console.log(payerUnidentified); }, onEventNotification: function onEventNotification(eventNotification) { console.log(eventNotification); }, }).open(\"checkin\"); }; // Append the Checkout script to the <head> var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Like before, you should replace the address here with // your own endpoint. request.open('GET', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); request.send(); When you get notified about the event onPayerIdentified, you need to do a GET on the paymentOrder. By expanding the payer field, you should get all the info you need to calculate shipping costs. You can now update the paymentOrder with a PATCH if you need to, using the patch from operations in the paymentOrder response. Response 1 2 3 4 5 6 7 8 9 HTTP/1.1 200 OK Content-Type: application/json { \"method\": \"PATCH\", \"href\": \"/paymentorders/\", \"rel\": \"update-order\", \"contentType\": \"application/json\" } JavaScript 1 2 3 4 5 6 7 8 //to open the Payment Menu window.payex.hostedView.checkout({ container: { checkin: \"checkin\", paymentMenu: \"paymentMenu\", }, culture: 'nb-No', }).open(\"paymentmenu\"); HTML 1 2 3 4 5 6 7 8 9 10 11 <html> <head> <title>Swedbank Pay Checkout is Awesome!</title> </head> <body> <div id=\"checkin\"></div> <div id=\"payment-menu\"></div> <!-- Here you can specify your own javascript file --> <script src=\"<Your-JavaScript-File-Here>\"></script> </body> </html> How It Looks First you will see a Checkin module where the payer can enter their email and phone number. A known payer will be sent directly to the payment menu shown further below. If we detect that the payer is new, we give them the option to store their details or proceed without storing. If that happens, these checkin steps will appear. After choosing yes or no, the payer must enter their SSN. With digital products, the payer will be sent directly to delivery options after they select to store their details (see below). For mixed goods, the SSN input view will expand and the payer must enter their shipping address. Payers choosing not to store credentials (guests) must also enter their shipping address. After checking in, the payer’s contact details and shipping address are shown for mixed goods. You can now perform the GET on the payment order and display the available delivery option(s) to the payer. You are in charge of how the delivery options are displayed. This is how they appear in our demoshop. For digital products only contact details will be shown. When the payer chooses a delivery option, you can PATCH the payment order and open the payment menu. The payer can then proceed with the purchase. Once a purchase is complete, you can perform a GET towards the paymentOrders resource to see the purchase state. Events When integrating Seamless View, especially with Starter where it’s the only option, we strongly recommend that you implement the onPaid event, as it will give you the best setup. Even with this implemented, you need to check the payment status towards our APIs, as the payer can make changes in the browser at any time. When implementing Starter, you also need to subscribe to the event onPayerUnidentified when you implement onPayerIdentified. This is important because the “Remember Me” feature (to be released soon) won’t work without it.", + "text": "", "tags": "", - "url": "/products/checkout-v3-dev/starter/seamless-view.html" + "url": "/checkout/v3/basic/seamless-view.html" },{ "title": "Seamless View", - "text": "", + "text": "The Starter Seamless View integration consists of three main steps. Creating the payment order and checkin, displaying the payment menu, delivery options and checkin module in an iframe, and finally capturing the funds. In addition, there are other post purchase options you need. We get to them later on. If you want to get an overview before proceeding, you can look at the sequence diagram. It is also available in the sidebar if you want to look at it later. Let´s get going with the two first steps of the integration. Step 1: Create Payment Order And Checkin When the purchase is initiated, you need to create a payment order. Start by performing a POST request towards the paymentorder resource with payer information and a completeUrl. We have added productName to the payment order request in this integration. You can find it in the paymentorder field. This is required if you want to use Checkout v3. If it isn´t included in your request, you won’t get the correct operations in the response. When productName is set to checkout3, requireConsumerInfo and digitalProducts will be set to false by default. For the Starter integration, you must set requireConsumerInfo to true. If digitalProducts is set to false, you also need to add shippingAddressRestrictedToCountryCodes along with ISO standard country codes. Supported features for this integration are subscriptions (recur and unscheduled MIT), instrument mode and split settlement (subsite). There is also a guest mode option for the payers who don’t wish to store their information. When using Starter, this is triggered when the payer chooses not to store credentials during checkin. In some instances you need the possibility to abort purchases. This could be if a payer does not complete the purchase within a reasonable timeframe. For those instances we have abort. You can only use abort if the payer has not completed an authorize or a sale. Step 2: Display Checkin, Delivery Options And Payment Menu Among the operations in the POST paymentOrders response, you will find view-checkout. This is what you need to display the checkin and payment module. Response 1 2 3 4 5 6 7 8 9 10 11 { \"paymentOrder\": { \"operations\": [ { \"method\": \"GET\", \"href\": \"https://ecom.externalintegration.payex.com/payment/core/js/px.payment.client.js?token=dd728a47e3ec7be442c98eafcfd9b0207377ce04c793407eb36d07faa69a32df&culture=sv-SE\", \"rel\": \"view-checkout\", \"contentType\": \"application/javascript\" }, ] } Load The Javascript Embed the href from the example above in a <script> element. That script will then load the Seamless View. To load the Checkout from the JavaScript URL obtained in the backend API response, it needs to be set as a script element’s src attribute. You can cause a page reload and do this with static HTML, or you can avoid the page refresh by invoking the POST to create the payment order through Ajax, and then create the script element with JavaScript. The HTML code will be unchanged in this example. JavaScript 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 var request = new XMLHttpRequest(); request.addEventListener('load', function () { response = JSON.parse(this.responseText); var script = document.createElement('script'); var operation = response.operations.find(function (o) { return o.rel === 'view-checkout'; }); script.setAttribute('src', operation.href); script.onload = function () { // When the 'view-checkout' script is loaded, we can initialize the // Payment Menu inside our 'payment-menu' container. // To open the Checkin window.payex.hostedView.checkout({ container: { checkin: \"checkin\", paymentMenu: \"paymentMenu\", }, culture: 'nb-No', // If payer is identified onPayerIdentified: function onPayerIdentified(payerIdentified) { console.log(payerIdentified); }, // If payer chooses \"Not you?\" onPayerUnidentified: function onPayerUnidentified(payerUnidentified) { console.log(payerUnidentified); }, onEventNotification: function onEventNotification(eventNotification) { console.log(eventNotification); }, }).open(\"checkin\"); }; // Append the Checkout script to the <head> var head = document.getElementsByTagName('head')[0]; head.appendChild(script); }); // Like before, you should replace the address here with // your own endpoint. request.open('GET', '<Your-Backend-Endpoint-Here>', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); request.send(); When you get notified about the event onPayerIdentified, you need to do a GET on the paymentOrder. By expanding the payer field, you should get all the info you need to calculate shipping costs. You can now update the paymentOrder with a PATCH if you need to, using the patch from operations in the paymentOrder response. Response 1 2 3 4 5 6 7 8 9 HTTP/1.1 200 OK Content-Type: application/json { \"method\": \"PATCH\", \"href\": \"/paymentorders/\", \"rel\": \"update-order\", \"contentType\": \"application/json\" } JavaScript 1 2 3 4 5 6 7 8 //to open the Payment Menu window.payex.hostedView.checkout({ container: { checkin: \"checkin\", paymentMenu: \"paymentMenu\", }, culture: 'nb-No', }).open(\"paymentmenu\"); HTML 1 2 3 4 5 6 7 8 9 10 11 <html> <head> <title>Swedbank Pay Checkout is Awesome!</title> </head> <body> <div id=\"checkin\"></div> <div id=\"payment-menu\"></div> <!-- Here you can specify your own javascript file --> <script src=\"<Your-JavaScript-File-Here>\"></script> </body> </html> How It Looks First you will see a Checkin module where the payer can enter their email and phone number. A known payer will be sent directly to the payment menu shown further below. If we detect that the payer is new, we give them the option to store their details or proceed without storing. If that happens, these checkin steps will appear. After choosing yes or no, the payer must enter their SSN. With digital products, the payer will be sent directly to delivery options after they select to store their details (see below). For mixed goods, the SSN input view will expand and the payer must enter their shipping address. Payers choosing not to store credentials (guests) must also enter their shipping address. After checking in, the payer’s contact details and shipping address are shown for mixed goods. You can now perform the GET on the payment order and display the available delivery option(s) to the payer. You are in charge of how the delivery options are displayed. This is how they appear in our demoshop. For digital products only contact details will be shown. When the payer chooses a delivery option, you can PATCH the payment order and open the payment menu. The payer can then proceed with the purchase. Once a purchase is complete, you can perform a GET towards the paymentOrders resource to see the purchase state. Events When integrating Seamless View, especially with Starter where it’s the only option, we strongly recommend that you implement the onPaid event, as it will give you the best setup. Even with this implemented, you need to check the payment status towards our APIs, as the payer can make changes in the browser at any time. When implementing Starter, you also need to subscribe to the event onPayerUnidentified when you implement onPayerIdentified. This is important because the “Remember Me” feature (to be released soon) won’t work without it.", "tags": "", - "url": "/checkout/v3/basic/seamless-view.html" + "url": "/products/checkout-v3-dev/starter/seamless-view.html" },{ "title": "Search", "text": "", @@ -1167,17 +1167,17 @@ var tipuesearch = {"pages": [{ "title": "Settlement & Reconciliation", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/core/settlement-reconciliation.html" + "url": "/checkout/v3/dsca/features/core/settlement-reconciliation.html" },{ "title": "Settlement & Reconciliation", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/core/settlement-reconciliation.html" + "url": "/checkout/v3/standard/features/core/settlement-reconciliation.html" },{ "title": "Settlement & Reconciliation", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/core/settlement-reconciliation.html" + "url": "/checkout/v3/basic/features/core/settlement-reconciliation.html" },{ "title": "Settlement & Reconciliation", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1187,7 +1187,7 @@ var tipuesearch = {"pages": [{ "title": "Settlement & Reconciliation", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/core/settlement-reconciliation.html" + "url": "/checkout/v2/features/core/settlement-reconciliation.html" },{ "title": "Secrets in payments", "text": "Don’t render this Payments have plenty of secrets due to it being secure and mostly encrypted. Only the end user and their bank can really see much data if any. We in between mostly see tokens.", @@ -1212,17 +1212,17 @@ var tipuesearch = {"pages": [{ "title": "Verify", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v2/features/optional/verify.html" + "url": "/checkout/v3/dsca/features/optional/verify.html" },{ "title": "Verify", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/dsca/features/optional/verify.html" + "url": "/checkout/v3/standard/features/optional/verify.html" },{ "title": "Verify", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/standard/features/optional/verify.html" + "url": "/checkout/v3/basic/features/optional/verify.html" },{ "title": "Verify", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", @@ -1232,7 +1232,7 @@ var tipuesearch = {"pages": [{ "title": "Verify", "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat, nisl vel facilisis sollicitudin, libero augue laoreet massa, quis imperdiet eros turpis ut arcu. Maecenas vitae fringilla sem. Nunc libero libero, eleifend a pulvinar id, imperdiet sed massa. Donec dictum tortor sed orci consequat elementum. Sed sollicitudin finibus libero eu maximus. Aliquam bibendum ipsum id arcu aliquam, vitae laoreet sapien pretium. Mauris non commodo neque. Sed vel leo orci.", "tags": "", - "url": "/checkout/v3/basic/features/optional/verify.html" + "url": "/checkout/v2/features/optional/verify.html" },{ "title": "", "text": "", @@ -1252,7 +1252,7 @@ var tipuesearch = {"pages": [{ "title": "", "text": "", "tags": "", - "url": "/resources/redirect-from" + "url": "/checkout/other-features" },{ "title": "", "text": "", @@ -1267,7 +1267,7 @@ var tipuesearch = {"pages": [{ "title": "", "text": "", "tags": "", - "url": "/checkout/other-features" + "url": "/resources/redirect-from" },{ "title": "", "text": "", diff --git a/checkout/other-features.html b/checkout/other-features.html index 7f2486d09..cb29ff080 100644 --- a/checkout/other-features.html +++ b/checkout/other-features.html @@ -2,10 +2,10 @@