All notable changes to the Payment Gateway documentation will be documented on this page.
2026-09-30
Fixed
- Webhooks now says the SHA-512 digest is lowercase hex of the raw request body, and a new "Which key signs a webhook" section lists which events are signed with your merchant key and which with the Finrelay key, and how the JWT's
subclaim tells them apart. The page previously said every transaction-related event used the merchant key. - On phones, the menu now opens over the whole screen, so its last items are no longer cut off at the bottom, and the current tab is listed like the others.
- Overview and Obtain Access Token now show the real token lifetime: 300 seconds on UAT and 60 seconds in production. They previously showed 3600. Read
expires_infrom each token response rather than hard-coding it.
Changed
- The empty Transaction API overview page now redirects to Transaction Status API.
- The webhook verification flow on Webhooks is now a short sequence diagram in the same style as the other diagrams.
- The transaction lifecycle on Supported transaction statuses is redrawn: it reads left to right from
CREATED, the five final statuses are grouped on the right, each status is in its colour and a legend explains them. The "Transaction Transition Rules" diagram, which showed the same transitions, is folded into it.
2026-09-29
Fixed
- Webhooks, Transaction Processed Webhook, Handling Declines, API Integration and Transaction Management now use your payment gateway's name throughout, and Webhooks lists your gateway's support address.
- Embedded Fields now names
PaymentComponent()as the one function that starts the payment component. - The link to the Paysafe Direct API Integration on the Paysafe customization page now stays on this site.
2026-09-28
Changed
- New design for every documentation site. It has a one-row header with the tabs and search (open it with ⌘K or Ctrl K), and code samples sit in dark panels with a language bar and a copy button. Tables, callouts, status values, sequence diagrams and API reference blocks are restyled to match; diagrams now colour each participant by who runs it and carry a legend. Each site keeps its own brand colours, typeface and logo.
- Dark mode on every site. It follows the system setting, and the button in the header switches it.
- Pages no longer have a left navigation or an "On this page" column, so text, code samples and diagrams use the full width. Instead, a bar at the top of every page lists the sections of the current tab, with links to the pages of the current section. On phones the menu still lists every page. Diagrams now span the text column.
- Headings, tables and notes no longer carry icons, and headings no longer show the ¶ link beside them. Links to sections still work as before.
- Navigation regrouped into six tabs that follow an integration from start to finish: Get started, Integrate, Payment methods, Payouts, Operate and Changelog. Payment methods groups its pages into Alternative, Cards, Wallets and Redirects, the same categories as its method browser. Every page keeps its address.
- New landing sections at the top of Overview, Hosted Payment Page, Embedded Fields, API Integration, Alternative payments, Non-card Payouts and Transaction Management. They cover who does what in the flow, an interactive preview of what the customer sees, the steps with code in cURL and Node.js, and where to go next. The existing content of each page follows unchanged.
- Every other page now opens with its own hero, including every payment method, payout and operations page, the Get started pages and this changelog. It states what the page helps you do, gives a short summary and links to the page's key sections. Most heroes also show who does what, the test values or the environment URLs.
- Alternative payments now opens with a Payment methods browser.
- It replaces "Choose a method", "Create a payment" and the "More payment methods" links.
- Pick Alternative, Cards, Wallets or Redirects to see each of its methods in turn: how it works, its fields and a request example. The Jump to links scroll to a method on the page, or open the category's other pages.
- Cards also has a Test tab with the test cards and simulated 3DS flows.
- A new Processing flows section shows the Payments and OCT flows.
-
Sequence diagrams are redrawn on every page:
- numbered steps;
- "IF" and "OR" branches;
- step banners;
- a legend that tells requests from responses.
Their text can now be selected and found with the browser's search. - Every landing page's code panel shows the endpoint in its header. The second hero button jumps to a section on the same page. Each landing page ends with links to the previous and next tab and to its API reference. - Moving between pages no longer reloads the whole site, and pages, buttons, tabs, switches and previews animate as they change. Clicking a card, button or link that opens another page first scrolls smoothly back to the top, and Back returns to where you were. The tabs and Jump to links at the top of a page, and in the Payment methods browser, open the next page without scrolling. You stay at its hero, which describes the page you picked, or at its content if you had scrolled past the hero. On wide screens, hero bands with a diagram share one height, so the tabs below them stay in place as you switch pages. Movement is left out when the operating system asks for reduced motion. -
llms.txtandllms-full.txtfollow the new navigation and now also list the Authentication Simulator and Account Funding Transactions pages.llms-full.txtincludes each landing page's summary and fills in the brand's hosts and URLs in code samples.
Fixed
- The links to "Saving Cards for Future Payments" and "Creating a Customer" on API Integration now open those sections.
- The Transaction Status API link on Neogated (BLIK) now opens the Transaction Status API page.
- A missing page now shows a "Page not found" message with links back to the overview and the changelog.
- The flow diagram in the 3D Secure card payment recipe now numbers every step and shows the full request-authentication path.
2026-09-16
Added
- New optional
originator_urlrequest field on Authorize, Payments, Hosted Payment Page and the Embedded Fields session request: the URL of the website or page on which the customer started the purchase. It must be anhttp/httpsURL (a#fragment is allowed); if omitted or empty, the website configured on the terminal is used. The value stays on the transaction when it is retried or routed to another payment provider, and is forwarded to providers that require the originating website.
2026-09-15
Added
- New Deleting a Saved Card section on the API Integration page, documenting
DELETE /api/payment-methods/{payment_method_id}— the previously undocumented endpoint for removing a stored card. It covers the requiredpayment_method:detachpermission, the200response carrying the payment method withstatus: "DELETED", the fact that the call is idempotent and needs noIdempotency-Key, and the403and422responses. - An explanation of what deletion actually does: the card can no longer be charged, it is removed from the customer, the record is retained and still retrievable as
DELETEDfor reconciliation and disputes, and the deletion cannot be undone. Permanent erasure of the stored card data (for example a GDPR erasure request) is noted as a separate operation handled through support. - Guidance on implementing a "remove card" action in a merchant application: the call carries merchant API credentials and must be made from the merchant backend, never from a client application — the publishable client key cannot delete payment methods.
- New Charging a Deleted Card error case, showing the
INVALID_REQUEST_PAYMENT_METHOD_INACTIVErejection returned when a transaction references a deleted payment method, and Workflow 3: Customer Removes a Saved Card.
2026-08-28
Removed
- The Paydor and Kynta documentation sites have been retired.
docs.paydor.comanddocs.kynta.comare no longer built or published, and all Paydor- and Kynta-specific environment values, endpoints and examples have been removed from the documentation.
2026-08-27
Added
- New Altitude Pay documentation site at https://docs.altitudepay.solutions, carrying the Altitude Pay brand — logo, favicon, the Altitude violet accent and the Figtree typeface, matching the Altitude Pay dashboard and login page.
- Altitude Pay environment values on the Environments page: the UAT and Production OIDC Token URLs (realms
qore-uatandqore-prod, shared with the Qore Payments platform) and API URLs. - Altitude Pay endpoints across the rest of the documentation — the token and session endpoints and the
embedded-fields.jsscript tag on Embedded Fields, the challenge notification URLs on 3D Secure, the base URLs on Transaction Management, the Google Pay request example and gateway identifier on Google Pay, and thellms.txtURLs on AI-Assisted Integration.
Fixed
- The example token request on the Hosted Payment Page page no longer shows one specific brand's UAT authentication host in its comment; it now points to the Environments page for the OIDC Token URL of your own environment.
2026-08-20
Added
- New Adhere to Google policies step in Activation Prerequisites on the Google Pay page, linking both the Google Pay and Wallet API Acceptable Use Policy and the Google Pay API Terms of Service. Previously only the Acceptable Use Policy was referenced.
- New explanation of the Google Pay
gatewayintegration type in Google Pay API Configuration, stating that the Payment Gateway performs all token decryption on the merchant's behalf, and describing how to setgatewayandgatewayMerchantIdin thetokenizationSpecificationobject, with a link to Google's gateway ID reference. - New Apple Pay page, giving Apple Pay its own entry under References. It covers Apple Pay tokenization (DPAN, cryptogram, ECI) and why Apple Pay is treated as a fully authenticated
CRYPTOGRAM_3DStransaction, Apple's branding and acceptable-use obligations, activation prerequisites, the supported card brands, and the two available integration methods — Wallet Redirect where the PSP renders the Apple Pay sheet, and Network Token for merchants who decrypt thePKPaymentTokenthemselves.
Changed
- The Hosted Payment Page section of the Google Pay page now opens by explaining that the hosted checkout integration simplifies offering Google Pay to customers.
- The Wallet Redirect, Network Token, Google Pay and API Integration pages now cross-link to the new Apple Pay page.
Fixed
- Corrected the Hosted Payment Page request contract: the required
return_urlfield did not exist and has been replaced with the three actual required redirect fields,success_url,cancel_urlanderror_url;descriptionis now listed as required (1–100 characters);referenceis documented as capped at 40 characters; and the previously undocumentedlanguagefield andoptionsobject (number_of_instalments,skip_three_ds,cvv_less) have been added. The "Backend Setup" section now notes that its example targets the separate/api/sessionsendpoint used by Embedded Fields, not/api/hosted-payment-page. - Fixed incorrect Keycloak realm names on the Embedded Fields page for Paydor, Kynta and Qore Payments, which previously pointed to Finrelay's
uat/productionrealms instead of each brand's own realm (paydor-uat/paydor-prod,kynta-uat/kynta-prod,qore-uat/qore-prod). - Fixed the same realm mismatch in the Production rows for Paydor and Kynta on the Environments page.
build-all.ps1now builds the Qore Payments site and generates itsllms.txt; it previously only built Finrelay, Paydor, Kynta and AdriaPay.
2026-09-06
Added
- New Bank Redirect (Interac & Open Banking) page documenting the
interac-redirectandopenbanking-redirectpayment method types. It covers the Hosted Payment Page, Embedded Fields and Direct API flows, the embedded-fields stub script keys, and flow diagrams for both the HPP and API paths. It states that both run on the payment transaction type — the terminal needsTRX_TYPE_PAYMENTand they are initiated throughPOST /api/transactions/payment, not the cardauthorizeendpoint. - The Bank Redirect page states that the outcome is asynchronous:
authorizealways returnsPENDING, the transaction-processed webhook is the source of truth, and a payment the customer abandons is not cancelled automatically — it staysPENDINGuntil the bank reports an outcome, so the Transaction Status API should be used to check where it stands. - Documented the limitations of both methods: purchase only, no stored payment method or recurring use, and no 3-D Secure step — the customer's bank performs its own authentication.
2026-08-19
Added
- New Billing Address section on the Google Pay page, explaining how to request a billing address via
billingAddressRequiredandbillingAddressParametersin the Google Pay API request, with a request example and a link to Google'sBillingAddressParametersreference. - New Google Pay branding note on the Google Pay page: merchants offering Google Pay must use the official Google Pay logo and button assets in compliance with the Google Pay Android and web brand guidelines, without modifications to asset colors, proportions, or appearance.
Changed
- The Google Pay introduction now uses Google's standard description — Google Pay™ lets users pay with their cards stored in their Google Account — and the page title carries the ™ mark.
2026-08-13
Added
- New Supported Languages section on the Hosted Payment Page page. It lists the four available languages, explains how to set the default language per merchant in the Merchant Portal (Accounts → Merchants → Hosted Payment Page customizations → Language), covers the language selector customers can use on the payment page, and documents the fallback to English.
- Added Romanian (
ro-RO) and Swedish (sv-SE) to the Supported Locales table for Embedded Fields. - New Initialization Options table on the Embedded Fields page, documenting
clientKey,sessionId,environmentandlocale. Previously these were only shown inline in code samples. Notes that whenlocaleis omitted the customer's browser language is used if it is supported, otherwise English.
Changed
- The Customization section on the Hosted Payment Page page now names the available customizations, including the display language, and links to the new Supported Languages section.
2026-06-11
Added
- New Simplified Authentication Simulator reference page under 3D Secure, documenting the test-card-driven 3DS simulator (frictionless, interactive redirect approve/decline, form-submit authenticated/declined, and frictionless-authenticated-with-insufficient-funds) and the metadata escape hatch for unmapped cards.
Changed
- Made the Simplified Authentication Simulator the default, recommended option for testing 3DS. The 3D Secure page and the 3DS Card Payment recipe now lead with the test cards and reframe the metadata-driven
simulated_flowsimulator as the advanced option.
2026-06-02
Added
- Added iDEAL (
paysafe-redirect-idl) to the Paysafe Redirect Supported Payment Methods list and the Direct API Integration examples, and addedpaysafe-redirect-idlto the Paysafe Redirect authorize OpenAPI schema.
Fixed
- Added the missing PaySafe Wallet (
paysafe-redirect-wlt) code to the Paysafe Redirect authorize OpenAPI schema so thepayment_method.typeenum matches the documented Supported Payment Methods list. - Corrected an invalid payment method code in the Paysafe Redirect authorize OpenAPI response example (
paysafe-redirect-pcs→paysafe-redirect-psc, PaySafeCard).
2026-05-26
Fixed
- Corrected the Qore Payments production OIDC realm in Environments from
productiontoqore-prod.
2026-05-20
Added
- Added a Supported Transaction Types section to the Transaction Management page, listing all initial transaction types (
PURCHASE,AUTHORIZE,OCT,PAYOUT,PAYMENT) and management transaction types (CAPTURE,REFUND,VOID) with descriptions.
Changed
- Clarified across Payments, Payments — Direct API Integration, Payouts, Payouts — Direct API Integration, OCT, Hosted Payment Page, and Embedded Fields that the
amountfield must be an integer in minor units. Decimal or fractional values (for example100.00or the string"100.00") are rejected at request validation with a clear error.
2026-05-18
Changed
- Updated all request/response examples across API Integration, Hosted Payment Page, Embedded Fields, 3D Secure, Google Pay, and Webhooks to use
PURCHASEinstead ofAUTHORIZEas the exampletransaction_type.
2026-05-15
Added
- New Wallet Redirect (Google Pay & Apple Pay) reference page covering the
google-pay-redirectandapple-pay-redirectpayment method types: how the PSP-hosted wallet flow works, HPP / Embedded Fields / Direct API behavior, theauthorizerequest and response shape, and how it differs from the native Google Pay integration.
2026-05-12
Changed
- Updated the Direct API Integration request schema:
description,country,customer_ip,return_url,error_url, andcancel_urlare now required. Added the newerror_urlandcancel_urlfields for redirecting the customer after failed or canceled payments (previously a singlereturn_urlcovered all outcomes).
2026-04-27
Added
- New API Integration Guidelines page in Getting Started covering recommended request hygiene (mandatory
User-Agentheader, HTTPS, correctContent-Type, clean payloads) and how to troubleshoot a 403 with an empty response body.
Changed
- Documented the required recipient
customerfields on the OCT request:first_name,last_name,email,phone,address,city,country, andpostal_codeare all required. Added a Customer Fields table with field-level notes (E.164 phone format, ISO 3166-1 alpha-2 country code) and a JSON example, and updated the OCT OpenAPI schema to mark these fields as required.
2026-04-24
Added
- Documented the optional
customer_ipfield on the card Authorize request. Pass the end customer's IPv4/IPv6 address so fraud and 3DS risk checks see their IP rather than your backend's; if omitted, the gateway falls back to the IP of the incoming HTTP request
Changed
- Aligned the
customer_ipdescription on the Payments, Payouts, and OCT request schemas with the Authorize page — noting IPv4/IPv6 support, the fallback to the HTTP request IP, and when to set it explicitly
2026-04-23
Added
- Added field format requirements table to the Encryption Example page, documenting accepted plain-text formats for card number, CVV, expiration month, and expiration year before encryption.
- Added Card Payment Data Fields reference table to the API Integration page.
Changed
- Clarified that
encrypted_expiration_yearaccepts both 2-digit (26) and 4-digit (2026) year formats in the Encryption Example page, API Integration page, and OpenAPI spec. - Clarified
phone/customer_phone_numberfield descriptions across Embedded Fields, Hosted Payment Page, and Neogated Direct API Integration pages: phone numbers must be in E.164 format (e.g.,+12125551234) and are validated using Google libphonenumber'sisPossibleNumbercheck, which verifies the number is a plausible length for its country code.
2026-04-21
Changed
- Environments page now shows the complete OIDC token URL (e.g.
https://auth.example.com/realms/production/protocol/openid-connect/token) instead of separate OIDC URL and Realm fields, and groups UAT and Production values into distinct sections for easier reference
2026-04-20
Changed
- Moved Handling Declines into its own subsection under References (at
references/handling-declines/index.html)
Added
- Added Handling Declines reference page documenting the full list of
processing_codevalues returned by the gateway (families0xxx,1xxx,2xxx,3xxx,4xxx), the distinction between gateway-normalized fields (processing_code,response_message) and raw PSP fields (payment_provider_response_code,payment_provider_response_message), and recommended retry/handling behavior per code family
2026-04-17
Added
- Account Funding Transaction (AFT) documentation — how to include
options.fundingparameters for VISA and Mastercard funding transactions on PURCHASE and AUTHORIZE - Documented custom 3DS challenge notification URL (
options.three_ds.notification_url) for Direct API integrations, including validation rules, the ACS callback flow, and the requiredauthentication-completedfollow-up call
2026-04-16
Added
- Added
payment_method_expiryfield to the Transaction Processed Webhook — an ISO-8601 date representing the last day of the payment method's expiry month (e.g.,2027-12-31), nullable - Added AI-Assisted Integration page under Getting Started with brand-specific
llms.txtandllms-full.txtURLs and usage examples for Claude, Cursor, GitHub Copilot, and other AI tools - Added
<link rel="alternate">meta tags to every page's<head>for automatic discovery ofllms.txtandllms-full.txtby AI agents and crawlers - Added tip callout on the homepage pointing to the AI-Assisted Integration page
2026-04-15
Added
- New Recipes section with step-by-step 3DS card payment integration guide
- Encryption example now includes Node.js and Java examples (runnable single-file snippets)
- Access token example in recipe includes curl, Node.js, and Java tabs
- Introduced documentation changelog
Fixed
- Fixed redirect URLs for 3DS authentication flows
2026-04-13
Added
- Simulator documentation for card and 3DS flows
2026-04-10
Changed
- Removed
x-api-keyfrom hosted payment page docs
2026-04-08
Fixed
- Corrected maximum retry limits for 3DS authentication
Added
- Documentation for 3DS fallback behavior and repeated authentication
2026-04-01
Fixed
- Use exact 3DS action type values (
THREE_DS_2_FINGERPRINT,THREE_DS_2_CHALLENGE)
2026-03-31
Changed
- Replaced
/api/oauth2/login/tokenwith OIDC client credentials in HPP example
Added
- Payment (deposit) documentation
- 3D Secure integration documentation
2026-03-19
Added
- Payout documentation with INR bank transfer support
- Google Pay integration docs and PDF generation
Changed
- Added integration type limitation warning to OCT docs
- Added note that HPP and Embedded Fields are not supported for OCT transactions
- Added note that HPP and Embedded Fields are not supported for payouts
- Removed
/api/tokenendpoints from docs
Fixed
- Removed
{.md-button}from Google Pay PDF download link - Added
pymdownx.emojiextension for Material icon rendering
2026-03-16
Added
- Neogated (BLIK) payment method documentation
- Google Pay integration documentation
2026-03-13
Added
- OCT (Original Credit Transaction) documentation
2026-03-08
Fixed
- Updated
submitPaymentcustomer postal code field fromziptopostalCode
2026-03-04
Added
- Network Token payment method documentation
Changed
- Updated Network Token docs for ECI and source field changes
Fixed
- Removed erroneous redirect for API integration page
2026-01-29
Changed
- Updated Embedded Fields documentation with brand-specific initialization notes, component types, lifecycle management, and supported locales
2026-01-13
Changed
- Updated Embedded Fields documentation with current integration details
2026-01-12
Added
- Field Configuration documentation for Embedded Fields
2025-11-10
Added
- Support for
return_url_targetparameter in Paysafe redirect
2025-10-21
Added
- API integration documentation for card tokenization and saved cards
2025-10-20
Added
- Documentation for saving and using saved cards in HPP
Changed
- Updated tokenization requirements and
customer_idbehavior
2025-10-15 — Initial version
Added
- Initial documentation import