Checkout API v72 introduces validations to the values that you send in API requests, and removes the additionalData parameters for enhanced scheme data. To upgrade to this version, you must make sure that the data you send meets our validations, and that you send enhanced scheme data in the enhancedSchemeData object. These are breaking changes, so you must update your integration before using v72.
Requirements
| Requirement | Description |
|---|---|
| Integration type | An online payments integration that uses Checkout API. |
| API credential roles | Make sure that you have the following role:
|
| Customer Area roles | Make sure that you have one of the following roles:
|
Validate the data that you send
Check that the values that you send in each parameter in the following table meets the validations.
| Parameter | Validation requirement |
|---|---|
billingAddress.postalCode |
Maximum length: 10 characters. |
billingAddress.stateOrProvinceCode |
Maximum length: 10 characters. |
captureDelayHours |
Maximum value: 672. This maximum value corresponds to 28 (twenty-eight) days. |
dateOfBirth |
Format requirement: Must be in ISO-8601 format with the date ( YYYY-MM-DD). Example: 2005-03-01 (March 1, 2025). |
deliveryAddress.postalCode |
Maximum length: 10 characters. |
deliveryAddress.stateOrProvinceCode |
Format requirement:
Maximum length:
|
entityType |
Possible values:
|
metadata |
Maximum lengths:
|
reference |
Maximum length: 80 characters. |
returnUrl |
Format requirement:
Maximum length:
|
shopperEmail |
Format requirements:
Maximum length:
|
shopperIP |
Maximum length: 256 characters. |
shopperName.firstName |
Maximum length: 100 characters. |
shopperName.lastName |
Maximum length: 100 characters. |
socialSecurityNumber |
Maximum length: 50 characters. |
telephoneNumber |
Maximum length: 64 characters. |
Use new parameters for enhanced scheme data
Checkout API v72 removes the additionalData parameters for enhanced scheme data. To keep sending enhanced scheme data, you must use the parameters in the enhancedSchemeData object. A v72 payment request that includes the additionalData parameters for enhanced scheme data returns a validation error.
To update your requests:
- In your payment and capture requests, replace each
additionalDataparameter with theenhancedSchemeDataparameter for your industry, as shown in the following tables. - Make a test payment and check that you get a successful response.
For temporary services, you must send two objects: enhancedSchemeData.levelTwoThree for the customer reference and tax fields, and enhancedSchemeData.temporaryServices for all other fields.
Airline
additionalData parameter |
enhancedSchemeData parameter |
|---|---|
additionalData.airline.passenger_name |
enhancedSchemeData.airline.passengerName |
additionalData.airline.computerized_reservation_system |
enhancedSchemeData.airline.computerizedReservationSystem |
additionalData.airline.airline_code |
enhancedSchemeData.airline.code |
additionalData.airline.ticket_number |
enhancedSchemeData.airline.ticket.number |
additionalData.airline.flight_date |
enhancedSchemeData.airline.flightDate |
additionalData.airline.issue_date |
enhancedSchemeData.airline.ticket.issueDate |
additionalData.airline.customer_reference_number |
enhancedSchemeData.airline.customerReferenceNumber |
additionalData.airline.ticket_issue_address |
enhancedSchemeData.airline.ticket.issueAddress |
additionalData.airline.airline_designator_code |
enhancedSchemeData.airline.designatorCode |
additionalData.airline.travel_agency_code |
enhancedSchemeData.airline.travelAgency.code |
additionalData.airline.travel_agency_name |
enhancedSchemeData.airline.travelAgency.name |
additionalData.airline.agency_plan_name |
enhancedSchemeData.airline.agency.planName |
additionalData.airline.agency_invoice_number |
enhancedSchemeData.airline.agency.invoiceNumber |
additionalData.airline.boarding_fee |
enhancedSchemeData.airline.boardingFee |
additionalData.airline.document_type |
enhancedSchemeData.airline.documentType |
additionalData.airline.leg1.depart_airport |
enhancedSchemeData.airline.legs.departureAirportCode |
additionalData.airline.leg1.flight_number |
enhancedSchemeData.airline.legs.flightNumber |
additionalData.airline.leg1.carrier_code |
enhancedSchemeData.airline.legs.carrierCode |
additionalData.airline.leg1.fare_base_code |
enhancedSchemeData.airline.legs.fareBasisCode |
additionalData.airline.leg1.class_of_travel |
enhancedSchemeData.airline.legs.classOfTravel |
additionalData.airline.leg1.stop_over_code |
enhancedSchemeData.airline.legs.stopOverCode |
additionalData.airline.leg1.destination_code |
enhancedSchemeData.airline.legs.destinationAirportCode |
additionalData.airline.leg1.date_of_travel |
enhancedSchemeData.airline.legs.dateOfTravel |
additionalData.airline.leg1.depart_tax |
enhancedSchemeData.airline.legs.departureTax |
additionalData.airline.passenger1.first_name |
enhancedSchemeData.airline.passengers.firstName |
additionalData.airline.passenger1.last_name |
enhancedSchemeData.airline.passengers.lastName |
additionalData.airline.passenger1.traveller_type |
enhancedSchemeData.airline.passengers.travellerType |
additionalData.airline.passenger1.phone_number |
enhancedSchemeData.airline.passengers.phoneNumber |
additionalData.airline.passenger1.date_of_birth |
enhancedSchemeData.airline.passengers.dateOfBirth |
Car rental
additionalData parameter |
enhancedSchemeData parameter |
|---|---|
additionalData.carRental.rentalAgreementNumber |
enhancedSchemeData.carRental.rentalAgreementNumber |
additionalData.carRental.renterName |
enhancedSchemeData.carRental.renterName |
additionalData.carRental.returnCity |
enhancedSchemeData.carRental.returnInfo.city |
additionalData.carRental.returnStateProvince |
enhancedSchemeData.carRental.returnInfo.stateOrProvince |
additionalData.carRental.returnCountry |
enhancedSchemeData.carRental.returnInfo.countryCode |
additionalData.carRental.returnLocationId |
enhancedSchemeData.carRental.returnInfo.locationId |
additionalData.carRental.returnDate |
enhancedSchemeData.carRental.returnInfo.date |
additionalData.carRental.checkOutDate |
enhancedSchemeData.carRental.pickupInfo.date |
additionalData.carRental.locationCity |
enhancedSchemeData.carRental.pickupInfo.city |
additionalData.carRental.locationStateProvince |
enhancedSchemeData.carRental.pickupInfo.stateOrProvince |
additionalData.carRental.locationCountry |
enhancedSchemeData.carRental.pickupInfo.countryCode |
additionalData.carRental.customerServiceTollFreeNumber |
enhancedSchemeData.carRental.customerServicePhoneNumber |
additionalData.carRental.rate |
enhancedSchemeData.carRental.rentalRate |
additionalData.carRental.rateIndicator |
enhancedSchemeData.carRental.rateType |
additionalData.carRental.rentalClassId |
enhancedSchemeData.carRental.rentalClassId |
additionalData.carRental.daysRented |
enhancedSchemeData.carRental.rentalDays |
additionalData.carRental.taxExemptIndicator |
enhancedSchemeData.carRental.taxExempt |
additionalData.carRental.fuelCharges |
enhancedSchemeData.carRental.rentalSurcharges.fuel |
additionalData.carRental.insuranceCharges |
enhancedSchemeData.carRental.rentalSurcharges.insurance |
additionalData.carRental.oneWayDropOffCharges |
enhancedSchemeData.carRental.rentalSurcharges.oneWayDropOff |
additionalData.carRental.noShowIndicator |
enhancedSchemeData.carRental.noShow |
additionalData.travelEntertainmentAuthData.market |
No longer needed |
additionalData.travelEntertainmentAuthData.duration |
No longer needed |
Level 2/3
additionalData parameter |
enhancedSchemeData parameter |
|---|---|
additionalData.enhancedSchemeData.customerReference |
enhancedSchemeData.levelTwoThree.customerReferenceNumber |
additionalData.enhancedSchemeData.totalTaxAmount |
enhancedSchemeData.levelTwoThree.totalTaxAmount |
additionalData.enhancedSchemeData.freightAmount |
enhancedSchemeData.levelTwoThree.freightAmount |
additionalData.enhancedSchemeData.dutyAmount |
enhancedSchemeData.levelTwoThree.dutyAmount |
additionalData.enhancedSchemeData.orderDate |
enhancedSchemeData.levelTwoThree.orderDate |
additionalData.enhancedSchemeData.shipFromPostalCode |
enhancedSchemeData.levelTwoThree.shipFromPostalCode |
additionalData.enhancedSchemeData.destinationCountryCode |
enhancedSchemeData.levelTwoThree.destination.countryCode |
additionalData.enhancedSchemeData.destinationPostalCode |
enhancedSchemeData.levelTwoThree.destination.postalCode |
additionalData.enhancedSchemeData.destinationStateProvinceCode |
enhancedSchemeData.levelTwoThree.destination.stateOrProvince |
additionalData.enhancedSchemeData.itemDetailLine1.productCode |
enhancedSchemeData.levelTwoThree.itemDetailLines.productCode |
additionalData.enhancedSchemeData.itemDetailLine1.description |
enhancedSchemeData.levelTwoThree.itemDetailLines.description |
additionalData.enhancedSchemeData.itemDetailLine1.quantity |
enhancedSchemeData.levelTwoThree.itemDetailLines.quantity |
additionalData.enhancedSchemeData.itemDetailLine1.unitOfMeasure |
enhancedSchemeData.levelTwoThree.itemDetailLines.unitOfMeasure |
additionalData.enhancedSchemeData.itemDetailLine1.unitPrice |
enhancedSchemeData.levelTwoThree.itemDetailLines.unitPrice |
additionalData.enhancedSchemeData.itemDetailLine1.commodityCode |
enhancedSchemeData.levelTwoThree.itemDetailLines.commodityCode |
additionalData.enhancedSchemeData.itemDetailLine1.discountAmount |
enhancedSchemeData.levelTwoThree.itemDetailLines.discountAmount |
additionalData.enhancedSchemeData.itemDetailLine1.totalAmount |
enhancedSchemeData.levelTwoThree.itemDetailLines.totalAmount |
Lodging
additionalData parameter |
enhancedSchemeData parameter |
|---|---|
additionalData.lodging.checkInDate |
enhancedSchemeData.lodging.checkInDate |
additionalData.lodging.checkOutDate |
enhancedSchemeData.lodging.checkOutDate |
additionalData.lodging.customerServiceTollFreeNumber |
enhancedSchemeData.lodging.customerServicePhoneNumber |
additionalData.lodging.propertyPhoneNumber |
enhancedSchemeData.lodging.propertyPhoneNumber |
additionalData.lodging.folioNumber |
enhancedSchemeData.lodging.folio.number |
additionalData.lodging.folioCashAdvances |
enhancedSchemeData.lodging.folio.cashAdvances |
additionalData.lodging.room1.rate |
enhancedSchemeData.lodging.rooms.rate |
additionalData.lodging.room1.numberOfNights |
enhancedSchemeData.lodging.rooms.numberOfNights |
additionalData.lodging.fireSafetyActIndicator |
enhancedSchemeData.lodging.fireSafetyCompliance |
additionalData.lodging.foodBeverageCharges |
enhancedSchemeData.lodging.foodBeverageCharges |
additionalData.lodging.prepaidExpenses |
enhancedSchemeData.lodging.prepaidExpenses |
additionalData.lodging.totalTax |
enhancedSchemeData.lodging.totalTax |
additionalData.lodging.totalRoomTax |
enhancedSchemeData.lodging.totalRoomTax |
additionalData.lodging.specialProgramCode |
enhancedSchemeData.lodging.lodgingChargeType |
additionalData.lodging.noShowIndicator |
enhancedSchemeData.lodging.noShow |
additionalData.travelEntertainmentAuthData.market |
No longer needed |
additionalData.travelEntertainmentAuthData.duration |
No longer needed |
Temporary services
additionalData parameter |
enhancedSchemeData parameter |
|---|---|
additionalData.enhancedSchemeData.customerReference |
enhancedSchemeData.levelTwoThree.customerReferenceNumber |
additionalData.enhancedSchemeData.totalTaxAmount |
enhancedSchemeData.levelTwoThree.totalTaxAmount |
additionalData.enhancedSchemeData.employeeName |
enhancedSchemeData.temporaryServices.employeeName |
additionalData.enhancedSchemeData.jobDescription |
enhancedSchemeData.temporaryServices.jobDescription |
additionalData.enhancedSchemeData.tempStartDate |
enhancedSchemeData.temporaryServices.startDate |
additionalData.enhancedSchemeData.tempWeekEnding |
enhancedSchemeData.temporaryServices.endDate |
additionalData.enhancedSchemeData.requestName |
enhancedSchemeData.temporaryServices.serviceRequestor |
additionalData.enhancedSchemeData.regularHoursWorked |
enhancedSchemeData.temporaryServices.hoursWorked |
additionalData.enhancedSchemeData.regularHoursRate |
enhancedSchemeData.temporaryServices.hourRate |