# Versioning and change log This log details any breaking and non-breaking API changes we have released for our Payments service. Prerequisite Make yourself familiar with our [API principles](/products/reference/api-principles) to ensure a resilient integration. ## Versioning log Note Version 4 is the first major version used by merchants. #### Version 7 (20 February 2024) details summary New endpoints We have created a [migration guide](/products/card-payments/v7-migration-guide) which consolidates the changes for an easier upgrade from version 6 to version 7. #### Version 6 (14 November 2019) details summary Reasons for entering into a repeat payment agreement - header change to "Content-Type: application/vnd.worldpay.payments-v6+json" - new mandatory field `intent` for all [recurring resources](/products/card-payments/v6/authorise-a-recurring-payment) - removed `code` and `type` from [error messages](/products/reference/worldpay-error-responses) #### Version 5 (14 August 2019) details summary 3DS2 support - header change to "Content-Type: application/vnd.worldpay.payments-v5+json" - new mandatory field `type` - new mandatory field `version` - `xid` to `transactionId` #### Version 4 (05 February 2019) details summary New mandatory field - Header change to "Content-Type: application/vnd.worldpay.payments-v0.4+json" - New mandatory field `entityReference` ## Change log (non-breaking changes) Fast refunds allow for refunds to credit a cardholder's account within 30 minutes, where the account accepts fast funds disbursements. #### Fast refunds (11 November 2025) details summary More details [Fast refunds](/products/card-payments/features/fast-refunds) allow for refunds to credit a cardholder's account within 30 minutes, where the account accepts fast funds disbursements. #### Multiple features (05 November 2025) details summary More details You can now submit the `fastRefund` object in your full or partial [refund](/products/card-payments/manage-payments##fully-refund-a-payment) request. This allows for refunds to be credited to a cardholder's account within 30 minutes, where the account accepts fast funds disbursements. To enable this feature, please speak to your Implementation Manager. * **Specify UnionPay as your customer’s preferredCardBrand** When taking payment with a co-branded card, you can now specify `unionPay` as your customer’s [`preferredCardBrand`](/products/card-payments/openapi/other/recurring#other/recurring/t=request&path=instruction/routing/preferredcardbrand). * **New unionPay element in response** You now receive `unionPay` in your [response](/products/card-payments/openapi/other/authorize#other/authorize/t=response&c=201&path=&d=0/paymentinstrument/cardbrand) when processing a UnionPay payment. * **Update to challengePreference field** We have updated the `challengePreference` field to enable you to indicate `noChallengeRequestedTRAPerformed` in your [payment request](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=authentication/threeds/challengepreference). This update meets new standards required for Cartes Bancaires processing. #### New object in post payment actions (27 October 2025) details summary More details You can now submit a `reference` in your [refund](/products/card-payments/openapi/manage-payments/refund#manage-payments/refund/t=request&path=reference), [settle](/products/card-payments/openapi/manage-payments/settle#manage-payments/settle/t=request&path=reference) and [cancelation](/products/card-payments/openapi/manage-payments/cancel#manage-payments/cancel/t=request&path=reference) request. This allows you to identify a payment throughout its lifecycle. #### New object in authentication object (22 October 2025) details summary More details You can now include a [`customerData` object](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=authentication/customerdata) in your `authentication` object. This allows you to submit additional customer details necessary to meet local authentication, as required by country-specific regulations. Currently, the `customerData` object is used solely for domestic Toss Pay payments in South Korea. #### Additional fields in request (22 September 2025) details summary More details You can now submit: * [`emailAddress`](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=customer/emailaddress) - allowing your customer to receive an email with the transaction outcome (if configured) * [`ipAddress`](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=customer/ipaddress) - as required for certain jurisdictions and/or MCCs * `phoneNumber` - added for future enhancements for Amex #### Surcharge and convenience fees (18 September 2025) details summary More details You can now submit a [`surchargeAmount`](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=instruction/value/surchargeamount) and [`convenienceAmount`](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=instruction/value/convenienceamount) in your authorization, settlement and refund requests within the `value` object. This allows you to report the amount charged for card processing or online booking fees to remain compliant with scheme mandates. Ensure that the surcharge or convenience fee complies with local regulations and card network rules before applying. #### Partial authorization (16 July 2025) details summary More details You can now enable partial authorization by setting the [`acceptPartialAuthorization` object](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=instruction/value/acceptpartialamount) to `true`. This allows you to accept a partial payment if the full amount is not available, and then charge the remaining balance using a different payment method through a new authorization request. #### Split funding (15 July 2025) details summary More details You can now send a `splitFundingReference` in your [settlement](/products/card-payments/openapi/manage-payments/partialsettlement#manage-payments/partialsettlement/t=request&path=merchant/marketplace) and [refund requests](/products/card-payments/openapi/manage-payments/partialrefund#manage-payments/partialrefund/t=request&path=marketplace). Available for marketplaces and other merchant types, a `splitFundingReference` allows you to split acquiring funding into your secondary bank account. #### Payment facilitator sub-merchant URL (14 July 2025) details summary More details You can now send `paymentFacilitator.subMerchant.url` field in your [authorization request](/products/card-payments/authorize-a-payment). #### Debit network returned in response (10 June 2025) details summary More details You now receive a `paymentInstrument.debitNetwork` field in your [authorization response](/products/card-payments/openapi/other/authorize). This field advises which debit network the transaction was routed through. Receiving this field requires additional configuration, please contact your Implementation Manager. #### Sender date of birth for funds transfers (AFTs) (28 April 2025) details summary More details You can now send `sender.dateOfBirth` in your [funds transfer](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=instruction/fundstransfer) (AFT) requests which is required for some cross border funding transactions. #### Command ID and payment ID in responses (24 April 2025) details summary More details We now return a `commandId` and a `paymentId` in the following responses: * [CIT authorization response](/products/card-payments/openapi/other/authorize#other/authorize/response&c=201) * [MIT authorization response](/products/card-payments/openapi/other/recurring#other/recurring/response&c=201) * [settle](/products/card-payments/openapi/manage-payments/settle#manage-payments/settle/response&c=202) * [partial settle](/products/card-payments/openapi/manage-payments/partialsettlement#manage-payments/partialsettlement/response&c=202) * [refund](/products/card-payments/openapi/manage-payments/refund#manage-payments/refund/response&c=202) * [partial refund](/products/card-payments/openapi/manage-payments/partialrefund#manage-payments/partialrefund/response&c=202) The `paymentId` is a unique identifier for a payment that ties together payment lifecycle events. The `commandId` is a unique identifier for a single instance of an interaction with our API. This will support new future business type flows. #### Exemption fields in authorization request (22 April 2025) details summary More details In your [authorization request](/products/card-payments/authorize-a-payment#sca-exemptions), you can now include: * a 3rd party Transaction Risk Analysis (TRA) tool exemption * a 3DS `authenticationOutage` exemption (if returned by 3DS), to increase the chance of an authorized outcome (no liability shift is granted) Both require additional configuration and permission, please contact your Implementation Manager. #### Google Pay decrypted paymentInstrument (26 March 2025) details summary More details You can now use the "card/networkToken+googlepay" `paymentInstrument` in your [authorization request](/products/card-payments/authorize-a-payment) to process decrypted Google Pay payments. #### Additional funds transfer types (25 March 2025) details summary More details You can now send additional fund transfer [`type` and `purpose` values](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=instruction/fundstransfer) in the `fundsTransfer` object in your [authorization request](/products/card-payments/authorize-a-payment). This allow you to be compliant with card scheme requirements for fund transfers. #### Incremental authorization and partial cancellation support (25 February 2025) details summary More details You can now submit an [incremental authorization](/products/card-payments/openapi/other/authorize#other/authorize/t=request&path=instruction/value/estimated) for an estimated initial authorization. You can now also [cancel an authorization partially](/products/card-payments/manage-payments#partially-cancel-an-authorization) using a new next action link received in your authorization response. #### L2/L3 and airline data (22 November 2024) details summary More details You can now submit additional [L2/L3](/products/card-payments/authorize-a-payment#level-2-/-level-3-data) and [airline](/products/card-payments/authorize-a-payment#airline-itinerary-data) data in your authorization or settlement request. Supplying this information means you may benefit from reduced cost and more efficient processing. #### Preferred card brand in requests (04 December 2024) details summary More details You can now submit `preferredCardBrand` in your [authorization request](/products/card-payments/authorize-a-payment) to honor your customer's card brand choice for co-badged cards. #### New reason codes for repeat payments (MITs) (23 October 2024) details summary More details You can now submit the following additional values for `customerAgreement.type` in your [MIT request](/products/card-payments/repeat-payments): * `reauthorization` - use this where the original authorization has expired before funds could be sent for settlement * `resubmission` - use this where the original authorization was declined due to insufficient funds, but the customer has already received goods or services * `noShow` - use this to charge a customer who fails to attend a previously-made reservation (in line with a pre-agreed cancellation policy) e.g. a guaranteed reservation is made at a restaurant but the customer does not turn up * `delayedCharge` - use this to charge a customer for additional items after you have processed an original CIT payment (in line with previously agreed terms), e.g. charges for hotel mini-bar usage after the customer has checked-out and the original payment has been sent for settlement #### Account update requests (30 September 2024) details summary More details You can now request real-time account updates (Visa cards only) when using a previously [stored card using `instruction.requestAccountUpdater`](/products/card-payments/authorize-a-payment#store-a-card). If the supplied card has been updated, we will return updated card details in the `updatedPaymentInstrument` object in the authorization response. #### fundingType and salesTax in requests (09 September 2024) details summary More details You can now submit the `fundingType` and `salesTax` field in [payment requests for Latin America](/products/card-payments/authorize-a-payment#latin-america-latam-payments). #### Merchant Initiated Transactions (30 April 2024) details summary More details We have now added support for [Merchant Initiated Transactions](/products/card-payments/repeat-payments) (MIT) to Card Payments Version 7. #### Funds transfers (30 April 2024) details summary More details You can now submit funds transfers (otherwise known as Account Funding Transactions or AFTs) using the `instruction.fundsTransfer` object in your [authorization request](/products/card-payments/authorize-a-payment#optional-parameters). Non-purchase money movements from a Visa or Mastercard to another account should typically use this. #### Latin America installments (04 April 2024) details summary More details You can now submit Latin America installment payments using the `instruction.customerAgreement` object in your [authorization request](/products/card-payments/authorize-a-payment#optional-parameters). This allows your customers to opt to pay the full value in installments. #### Latin America document reference (04 April 2024) details summary More details You can now submit the `customer.documentReference` in your [authorization request](/products/card-payments/authorize-a-payment#optional-parameters). This is used in some Latin America regions to verify the identity of the cardholder using a tax or document reference. It is strongly recommended to include this for Brazil domestic processing. #### Recipient fields (MCC 6012) (04 April 2024) details summary More details You can now submit the `recipient` object in your [authorization request](/products/card-payments/authorize-a-payment#optional-parameters). If you are using MCC 6012 in Europe, you should include data about the recipient of financial services within this object. #### Consumer Bill Payment flag (04 April 2024) details summary More details You can now submit a `consumerBillPayment` flag in your [authorization request](/products/card-payments/authorize-a-payment#optional-parameters). If you are registered with Visa as a Consumer of the Bill Payment Service (CBPS), you must set this to `true` for any payments associated with the CBPS. #### 3DS support for Cartes Bancaires (10 January 2024) details summary More details We now provide additional values in the [authentication and 3DS verification responses](/products/3ds/web/authentication#authentication-responses) when the card brand is Cartes Bancaires. These additional values must then be applied in the [authorization request](/products/card-payments/v6/authorize-a-payment). details summary 2023 #### Raw code in refused responses (28 November 2023) details summary More details You can now receive a `rawCode` in all refusal responses. See [raw response codes](/products/reference/refusal-response/scheme-codes) for more information. #### Payment instrument returned for cards and tokens (06 November 2023) details summary More details You now receive a `paymentInstrument` object in authorized responses to your [authorization request](/products/card-payments/v6/authorize-a-payment), and Sent for Settlement responses to your [sale request](/products/card-payments/v6/migrate-cardonfile-sale) for `card/plain`, `card/token`, and `card/checkout`. #### Card network token support for authorization and migrate card on file authorization endpoint (v6) (06 November 2023) details summary More details You can now use our `card/networkToken` paymentInstrument with our [one time authorization](/products/card-payments/v6/authorize-a-payment) and [migrateCardOnFileAuthorize](/products/card-payments/v6/authorise-a-cardonfile-payment#card-on-file-without-verification-authorization-request) endpoints. #### Apple Pay decrypted support for authorization endpoint (v6) (06 November 2023) details summary More details You can now use our `card/networkToken+applepay` paymentInstrument with our [one time authorization](/products/card-payments/v6/authorize-a-payment) endpoint. #### New intent for card on file endpoints (06 July 2023) details summary More details You can now submit a new `intent` value of `subscription` in your [card on file](/products/card-payments/v6/authorise-a-cardonfile-payment) request. #### New action link in partial refund response (11 May 2023) details summary More details The [response of a partial refund request](/products/card-payments/v6/manage-payments#partially-refund-a-payment) returns a link to allow you to perform another partial refund. The json path to the link in the response is `$._links.payments:partialRefund.href`. #### New Mastercard test values (20 April 2023) details summary More details We have added a new set of Mastercard `refusalAdvice` [magic values](/products/card-payments/testing#refusal-advice-test-values). This enables to you to test the different refusal outcomes in your payment response. #### New payment facilitator fields (14 March 2023) details summary More details You can now supply payment facilitator subMerchant email and telephone number in your [authorization request](/products/card-payments/v6/authorize-a-payment). #### Payment facilitator field state validation change (14 March 2023) details summary More details The payment facilitator `state` field in the [authorization request](/products/card-payments/v6/authorize-a-payment) now supports 1-3 alphanumeric characters. details summary 2022 #### MOTO payments (v6) (29 November 2022) details summary More details You now have an option to specify a payment channel as `moto` to accept Mail Order Telephone Order (MOTO) payments with our [authorize](/products/card-payments/v6/authorize-a-payment#additional-parameter-descriptions), [migrateCardOnFileAuthorize](/products/card-payments/v6/authorise-a-cardonfile-payment#optional-parameter-description) and [migrateCardOnFileSale](/products/card-payments/v6/migrate-cardonfile-sale#additional-optional-fields) endpoints. #### riskProfile in card on file (with verification) payment requests (v6) (04 July 2022) details summary More details You can now submit your `riskProfile` to our [card on file (with verification)](/products/card-payments/v6/authorise-a-cardonfile-payment#card-on-file-authorization-with-verification) endpoint in your payment requests. You then receive an exemption result and reason in the response. Use it to apply the [SCA exemption](/products/sca-exemptions) in the payment request and update the [FraudSight](/products/fraudsight) data model to benefit future payments. details summary 2021 #### Card network token for card on file sale endpoint (v6) (09 November 2021) details summary More details You can now use our `card/networkToken` paymentInstrument in our [`payments:migrateCardOnFileSale](/products/card-payments/v6/migrate-cardonfile-sale) endpoint. #### Optional scheme reference parameter for token requests (v6) (10 September 2021) details summary More details You can now submit the scheme `reference` in your [migrateCardOnFile token](/products/card-payments/v6/authorise-a-cardonfile-payment#card-on-file-without-verification-authorization-request) and [migrateCardOnFileSale token](/products/card-payments/v6/migrate-cardonfile-sale#additional-optional-fields) requests. This request parameter allows you to take a repeat payment with our APIs, linking to an agreement established with a different PSP. #### Additional exemption result for card on file payments (v6) (18 June 2021) details summary More details You now receive an exemption result and reason in your [card on file sale](/products/card-payments/v6/migrate-cardonfile-sale#-migratecardonfilesale-response) and [card on file authorization](/products/card-payments/v6/authorise-a-cardonfile-payment#card-on-file-without-verification-authorization-request) response if you have provided a `riskProfile` in your request. #### Additional exemption result for one off payments(v6) (25 May 2021) details summary More details You now receive an exemption result and reason in your [authorization response](/products/card-payments/v6/authorize-a-payment#response) if you have provided a `riskProfile` in your request. #### Additional risk factor result (v6) (09 April 2021) details summary More details You now receive a `verificationFailed` result in your [authorization response](/products/card-payments/v6/authorize-a-payment#response) if the issuer identifies a conflict. #### Cardholder name is now an optional field (v6) (09 March 2021) details summary More details The `paymentInstrument.cardHolderName` field is no longer mandatory in v6 payment requests. #### riskProfile in payment requests (v6) (21 January 2021) details summary More details You can now submit your `riskProfile` to our [migrate card on file (without verification)](/products/card-payments/v6/authorise-a-cardonfile-payment#card-on-file-without-verification-authorization-request) and [one time](/products/card-payments/v6/authorize-a-payment) endpoints in your payment requests. Use it to apply the [SCA exemption](/products/sca-exemptions) in the payment request and update the [FraudSight](/products/fraudsight) data model to benefit future payments. details summary 2020 #### Apple Pay decrypted for recurring (v6) (27 November 2020) details summary More details You can now use [Apple Pay decrypted](/products/card-payments/v6/authorise-a-recurring-payment#recurring-authorization-without-verfication) in our `payments:migrateRecurringAuthorize` endpoint to make a payment. #### Apple Pay decrypted for card on file (v6) (17 November 2020) details summary More details You can now use [Apple Pay decrypted](/products/card-payments/v6/authorise-a-cardonfile-payment#-migratecardonfile-authorization-example-request) in our `payments:migrateCardOnFileAuthorize` endpoint to make a payment. #### Additional element for mobile wallet requests (v6) (06 October 2020) details summary More details You can optionally supply `billingAddress` details in the `paymentInstrument` for [Mobile Wallet payment requests](/products/card-payments/v6/authorize-a-payment#optional-fields-in-an-authorization-request). #### Additional element for mobile wallet responses (v6) (22 September 2020) details summary More details We now return AVS results in `riskFactors` for our [mobile wallet payment responses](/products/card-payments/v6/authorize-a-payment#response). #### New optional request parameter for repeat payments (v6) (28 May 2020) details summary More details This request parameter allows you to take a repeat payment with our APIs, linking to an agreement established with a different PSP. - you can now submit the scheme `reference` in the requests for our [migrateRecurringAuthorize](/products/card-payments/v6/authorize-a-payment#-migraterecurring-authorization), [migrateCardOnFileAuthorize](/products/card-payments/v6/authorize-a-payment#-migratecardonfile-authorization) and [migrateCardOnFileSale](/products/card-payments/v6/migrate-cardonfile-sale) endpoints #### New action link in partialSettle response (v6) (20 May 2020) details summary More details - we are now returning a `payments:cancel` action link in the response for the [`partialSettle` request](/products/card-payments/v6/manage-payments#partially-settle-an-authorization) #### Additional allowed character for transactionReference (v6) (05 May 2020) details summary More details We have extended our [formatting](/products/reference/formatting) rules. - you can now submit "+" in the `transactionReference` field #### New paymentInstrument for card on file payments (v5 + v6) (24 April 2020) details summary More details This change caters for the new mandate (July 2020) to allow merchants with MCC 7995, 7800, 7801, 7802 and 9406 to submit CVC in card on file requests. - You can now submit the card/checkout `paymentInstrument` which allows you to submit CVC alongside a token for the [payments:cardonFileAuthorize](/products/card-payments/v6/authorise-a-cardonfile-payment), [payments:migrateCardOnFileSale](/products/card-payments/v6/migrate-cardonfile-sale) and [payments:migrateCardOnFileAuthorize](/products/card-payments/v6/authorize-a-payment#-migratecardonfile-authorization) endpoints #### Additional fields in wallet response (v6) (16 April 2020) details summary More details - [the response](/products/card-payments/v6/authorize-a-payment#response) for our wallet payment requests (Apple Pay/ Google Pay) now includes the `paymentInstrument` #### Additional action link (v6) (03 March 2020) details summary More details - `payments:reversal` action links now returned for [recurring](/products/card-payments/v6/take-a-sale#recurring-sale-response) and [card on file](/products/card-payments/v6/migrate-cardonfile-sale#-migratecardonfilesale-response) sale resources #### New optional field (v6) (11 February 2020) details summary More details - You can now submit `intent` for all [card on file resources](/products/card-payments/v6/authorise-a-cardonfile-payment) #### Additional fields in response (v6) (04 February 2020) details summary More details - We are returning `riskFactors` in our refused responses #### CVC for token requests (v6) 28 January 2020) details summary More details - You can now submit `cvc` for requests using tokens #### New optional field (v6) (16 January 2020) details summary More details - [`debtRepayment` indicator](/products/card-payments/v6/authorize-a-payment#optional-fields-in-an-authorization-request) which flags payments with purpose of repaying debt details summary 2019 #### Additional action links (v6) (21 November 2019) details summary More details - Subsequent authorization action links now included in successful [card on file and recurring payment responses](/products/card-verifications/v5/verifications#verifications-response) New links are: - [`payments:recurringAuthorize`](/products/card-payments/v6/authorise-a-recurring-payment) - [`payments:cardOnFileAuthorize`](/products/card-payments/v6/authorise-a-cardonfile-payment) - [`payments:recurringSale`](/products/card-payments/v6/take-a-sale) #### Extended error description for card expiry (v5) (13 November 2019) details summary More details - From `500` - `serviceUnavailable` to `400` - `expiredCard` #### Formatting update for transactionReference (v5) (15 October 2019) details summary More details The following characters are now allowed: - _/!@#$%()*=-.:;?[]-{}&~` - 0123456789 - ABCDEFGHIJKLMNOPQRSTUVWXYZ - abcdefghijklmnopqrstuvwxyz