Migrating from Checkout V2 to V3
Checkout V3 improves upon V2 through alignment of polling and callback responses, improvement of field names, and expanding models related to logistics options to permit more advanced features. This guide takes you through the things you need to change in your existing V2 integration to support Checkout V3.
Configuration has been added to
InitiateSessionRequest and the following fields have been moved into it:
elements field replaces the former
ContactFields and Address`Fields flags with an enum. They are equivalent according to the following table.
We have also added a new field Countries which allows merchants to specify which countries they support.
callbackUrlPrefix has been replaced by
callbackUrl so that you send in the whole URL to where you want the "Payment Completed" callback.
Strongly typed fields
The following are now strongly typed:
The permitted values for these fields used to be case-insensitive. They are now case-sensitive.
logisticsOption object is now changed to better accommodate more advanced Checkout features. It is now a polymorphic object whose type is determined by which logistics carrier is used. Refer to Swagger for more details.
Polling and callback
The response object from polling and the callback object are now identical.
userDetails has been removed.
requireUserInfo is set to
true in session initiation, user info will instead be provided in its own dedicated response object
paymentDetails.State is now
Authorized with a z instead of
Authorised with a
Renaming of region to city
billingDetails.region has been renamed to
shippingDetails.region has been renamed to
Standardized country name
shippingDetails.country were previously derived from the free-text field filled in by the customer. We have now changed this to always be two-letter codes that adhere to the ISO-3166-1 Alpha-2 standard.
The cancel session endpoint has been removed.