Changelog
Additions and updates to Pay Theory's API and SDKs
October 22, 2026
Added to JS SDK
transactacceptsidempotencyKey. A retry with the same key returns the first response instead of charging twice. See Idempotency.- Each hosted field's state in
stateObserverhasiframeLoaded. It turnstrueonce that field's iframe loads, so you can show fields before the SDK is ready. tokenizePaymentMethodwithexpandedResponse: truereturnsFAILEDwithfailure_codeandfailure_textwhen the processor rejects the payment method. Before, this was anERRORstring. WithoutexpandedResponse, nothing changes.- The SDK publishes TypeScript declarations,
paytheory-sdk.d.ts, on the same host as the SDK. See TypeScript.
Deprecated in JS SDK
- The confirmation flow:
transactwithconfirmation: true,confirm,cancel,tokenizeObserverandcaptureObserver. To show the service fee before charging, read it fromstateObserverand pass it asfee. See Deprecations.
Added to API
createTransactionandcreateAuthorizationacceptidempotency_key. Retrying the same request with the same key returns the first response, including a decline, instead of creating a second payment. A changed request returnsIDEMPOTENCY_KEY_PAYLOAD_MISMATCH.- The
idempotencyLookupquery returns a key's status (IN_PROGRESSorCOMPLETED), the linked transaction or authorization, and when the record expires. - Merchants have
max_transaction_amount, one limit in cents for card and ACH payments, including service fees. Pay Theory rejects a payment above it before processing, and marks a recurring payment above itMERCHANT_MAX_AMOUNT_EXCEEDED.
January 27, 2026
Added to API
-
Instructional Funding - New instructional funding API surface area
availableFundsBalancequery withAvailableFundsBalancefields (hold/reserve balances, window status)instructionquery andInstructionobject for daily settlement instructionsfundingTransfersquery andFundingTransferobject for settlement batch transferscreateSettlementInstructionmutation to submit daily instruction amounts
-
Sandbox Mutations - New sandbox-only mutations for testing in sandbox environments
createSandboxAchReturnto generate ACH returnscreateSandboxDisputeandupdateSandboxDisputeStatusto create and move disputesprepareSandboxSettlementBatchandcreateSandboxSettlementto simulate settlements
Added to Webhooks
- New event types:
AVAILABLE_FUNDS_BALANCEandFUNDING_TRANSFER DELETEDsubtype documented (where supported) with payload examples
Added to Docs
- Instructional Funding guide with an example flow and related API links
- Testing page updated with sandbox mutation links for lab environments
August 14, 2025
Added to JS SDK
- PayTheory Messenger SDK - New module for digital wallet transaction processing
PayTheoryMessengerclass for handling Apple Pay™, Google Pay™, and Paze transactionsinitialize()function to establish secure messenger connectiongetApplePaySession()function for Apple Pay merchant validationprocessWalletTransaction()function for processing wallet payments with support for:- Apple Pay™ payment tokens
- Google Pay™ payment tokens
- Paze digital wallets
- Transaction metadata and billing information
on()function for event listener registration supporting events:ready- Messenger initialization completetransaction_complete- Transaction successtransaction_error- Transaction failureiframe_unloaded- Messenger iframe unloaded
destroy()function for cleanup and resource management- Static wallet type constants:
PayTheoryMessenger.applePay,PayTheoryMessenger.googlePay,PayTheoryMessenger.paze
Added to API
-
createWalletTransactionmutation added for processing digital wallet payments- Supports Apple Pay™, Google Pay™, and other wallet types via
wallet_typeparameter - Accepts encrypted
digital_wallet_payloadfrom wallet providers - Returns standard transaction response with wallet-specific details
- Supports Apple Pay™, Google Pay™, and other wallet types via
-
createWalletAuthorizationmutation added for wallet payment authorizations- Creates authorization holds for digital wallet transactions
- Same parameters as
createWalletTransactionbut for auth-only flows - Returns authorization object for later capture
March 6, 2025
Added to API
- Split Transactions - New comprehensive split functionality for distributing transaction funds
splitsquery added to retrieve split transactions with filtering and paginationSplitobject schema introduced with fields for:amount- Split amount in centsaccount_code- Customer defined account codereference- Customer defined referencemerchant- Associated merchant objectpayment_method- Payment method used for transactionsettlement_batch- Settlement batch number when settledmetadata- Custom JSON metadata storage
SPLITadded as a new value to theMetadataAssociateenum for metadata management
February 12, 2025
Added to API
-
validatePaymentMethodOwnershipquery added to verify payment method ownership- Validates whether a provided card or bank account number matches a specific payment method
- Returns boolean confirmation of ownership match
- Requires PCI L1 compliance for usage
-
updateMerchantSettingsmutation added for merchant configuration management- Allows updating merchant contact information (email, phone)
- Supports social media links (Facebook, Instagram, LinkedIn, TikTok, Twitter)
- Enables website URL configuration
- Uses
MerchantSettingsInputwith all fields optional for partial updates
November 20, 2024
Added to API
createBatchCapturemutation added to API. Only works in sandbox environments. Captures allPENDINGtransactions for a merchant in a batch and shortly after creates a settlement for the merchant.metadataadded to Merchant schema- Can be passed in when calling
createMerchant - Can be managed with the
updateMetadataanddeleteMetadatamutations - Can be requested in the
merchantandmerchantsqueries - Can be used to filter the
merchantsquery
- Can be passed in when calling
skip_validationadded to thecreatePaymentMethodmutation. If set to true, the payment method will be created without validation.
Added to JS SDK
skipValidationadded to thetokenizePaymentMethodfunction. If set to true, the payment method will be created without validation.
October 4, 2024
Added to API
country_codewas added to the Merchant and ListMerchant objectcanadian_eftwas added to the PaymentMethodInput for creating Canadian Bank accountsissuing_country_codewas added to the PaymentMethodToken schemaflag_for_reviewkey added to Transaction schema
September 29, 2024
Added to API
country_codewas added to the Merchant and ListMerchant objectcanadian_eftwas added to the PaymentMethodInput for creating Canadian Bank accountsissuing_country_codewas added to the PaymentMethodToken schemaflag_for_reviewkey added to Transaction schemamerchantobject of type ListMerchant was added to the Transaction schemaupdateTransactionInReviewmutation added to allow someone to approve or decline flagged transactionsone_time_use_tokenadded to the createTransaction mutation to make it so that we immediately disable token after making the transactioncreateReversalmutation added to API. Returns object withis_voidandtransaction_idin the response so you can tell if a payment was refunded, voided, or partially voidedbarcodequery added to API so you can fetch a single cash barcode from our systemcreateBarcodemutation added to API allowing cash barcodes to be created directly in the API without use of the SDK
Added to JS SDK
countryadded to the payTheoryFields function to tell the SDK what fields to look for when initializing the Bank Fields. Defaults to USA but also accepts CANoneTimeUseTokenadded to the transact function parameters to make it so that we immediately disable token after making the transaction- New div IDs added for initializing the CAN bank fields:
- bank-account-number -
pay-theory-bank-account-number - bank-account-name -
pay-theory-bank-account-name - bank-account-type -
pay-theory-bank-account-type - bank-institution-number -
pay-theory-bank-institution-number - bank-transit-number -
pay-theory-bank-transit-number
- bank-account-number -
Changed
avs_statusnow included in the Authorization and Transaction schemabank_account_type,bank_code,barcode_id, andcard_typenow included in the PaymentMethodToken schema- CardType enum with the following types added to schema:
BUSINESS_CREDIT,BUSINESS_DEBIT,CREDIT_CARD,DEBIT_CARD,PREPAID_CARD void_amountargument is deprecated in thecreateVoidForAuthorizationmutation as only full voids are supportedcreateRefundmutation is deprecated. Recommend usingcreateReversalcall now- All successful transactions from the SDK/API will now have the state/status of
PENDINGinstead of the potential of bothPENDINGorSUCCEEDEDPENDINGtransactions are now able to be voided to prevent funds from moving before settle