# Release notes div input section ## July 2025 ### July 4, 2025 The Trustap API now supports users in Hong Kong with payouts in Hong Kong dollar, `HKD`. ## May 2025 ### May 19, 2025 The Trustap API now supports Turkish users with payouts in Turkish lira, `TRY`. section ## April 2025 ### April 2, 2025 The Trustap API now supports metadata. [Read our guide](/docs/guides/transactions/metadata) for more information. section ## March 2025 ### March 18, 2025 Previously, the Trustap API only supported submitting order issues during the complaint period. The Trustap API now supports submitting order issues when there is a problem in the delivery of the item. The Trustap API has been updated to give more reliable Royal Mail tracking results. section ## February 2025 ### February 28, 2025 Listing has been added to the list of deprecated endpoints. These endpoints are no longer supported. We do not recommend using these endpoints. section ## January 2025 ### January 28, 2025 The Trustap API now includes a new endpoint that supports creating a Stripe account session and retrieving that account client secret. See our [guide](/apis/openapi/personal/personal.getaccountsession) for more information. section ## December 2024 ### December 9, 2024 The Trustap API now supports the Swiss Franc, `CHF`. ### December 2, 2024 added The Trustap API no longer returns an error for some users when accessing [instant payouts](/apis/openapi/buyers-and-sellers/users.setinstantpayouts), resolving a previous issue. section ## November 2024 ### November 29, 2024 The Trustap API now has an updated [Shippo shipping rates](/apis/openapi/online-shipping/basic.getshipposhippingrates) endpoint that now returns rates in the same currency as the transaction. The Trustap API now has an updated [Shippo shipping rates](/apis/openapi/online-shipping/basic.getshipposhippingrates) endpoint response that includes the Shippo `shipment_id`. ### November 20, 2024 The Trustap API now has an updated [Shippo shipping rates](/apis/openapi/online-shipping/basic.getshipposhippingrates) endpoint that includes `currency`. The Trustap API has been updated to fix an issue where some users received an error when setting their [payment type](/apis/openapi/online-payment/basic.setpaymentmethodfortransaction). ### November 15, 2024 The Trustap API now includes [integrated shipping](/docs/guides/transactions/online/online-shipping). section ## October 2024 ### October 22, 2024 The Trustap API now includes a new endpoint that supports [balance payments](/apis/openapi/f2f-payment/p2p.paydepositwithbalancefortransaction) for face-to-face transactions. ### October 14, 2024 The Trustap API has been updated to improve the performance of transaction retrieval endpoints. The Trustap API now uses more [descriptive verification error messages](/apis/openapi/personal/getadditionalidentitydocumentverificationstatus). ### October 8, 2024 The Trustap API now supports payouts in Indian Rupee `INR`. ### October 1, 2024 The Trustap API now supports bank transfer as a payment method for online transactions. section ## September 2024 ### September 18, 2024 The Trustap API now supports transaction payment with a [user's balance](/apis/openapi/online-payment/basic.paywithbalancefortransaction) section ## August 2024 ### August 19, 2024 The Trustap API now supports splitting the buyer protection fee between a buyer and a seller. section ## July 2024 ### July 19, 2024 To support users' access to Stripe accounts, the Trustap API now includes a set of endpoints for interacting with Stripe. [See our reference guide](/apis/openapi/personal) for more information. ### July 4, 2024 The Trustap API has been updated. Bank transfer payments now include `sort_code`. section ## June 2024 ### June 20, 2024 The Trustap API no longer includes the option for `allow_last_4` in personal user verification. The Trustap API now includes a new endpoint to retrieve supported registration countries for a client. See our [reference guide](/apis/openapi/clients/client.getsupportedregistrationcountries) for more information. ### June 6, 2024 The Trustap API now supports payouts in Pakistan Rupee `PKR`. section ## May 2024 ### May 13, 2024 The Trustap API now supports payouts in United Arab Emirates Dirham `AED`. The Trustap API now supports payouts in Hungarian Forint `HUF`. section ## March 2024 ### March 14, 2024 The Trustap API webhooks have been updated to include events associated with [payment reviews](/docs/concepts/webhooks#event-codes). You can now receive webhook events when payment reviews are successful or have failed. ### March 4, 2024 The Trustap API now supports [webhooks](/docs/concepts/webhooks) when payment review is successful or has failed. section ## January 2024 ### January 23, 2024 The Trustap API now includes better error messaging for KYC when SSN upload fails. The Trustap API has been updated to include a new endpoint that returns a [user's balance](/apis/openapi/buyers-and-sellers/users.getbalances) in their currency. ### January 17, 2024 The Trustap API has been updated to include a new field `code` as a zip when a [facility](/apis/openapi/online-shipping/basic.getcarrierfacilityoptions) is `postal_office`. ### January 12, 2024 The Trustap API has been updated to include two new endpoints to support shipping. Read our guides on [pick_up_point](/apis/openapi/online-shipping/basic.setpickuppoint) and [delivery_point](/apis/openapi/online-shipping/basic.setdeliverypoint) to learn more. script // Wait for the document to be ready document.addEventListener('DOMContentLoaded', setupSearch); // Ensure the script runs on every Revel page load/transition if (document.readyState === 'complete' || document.readyState === 'interactive') { setupSearch(); } function setupSearch() { // Create a style element for highlighting if (!document.getElementById('search-highlight-style')) { const highlightStyle = document.createElement('style'); highlightStyle.id = 'search-highlight-style'; highlightStyle.textContent = ` .search-highlight { background-color: #ffff00; padding: 1px 2px; border-radius: 2px; font-weight: bold; } `; document.head.appendChild(highlightStyle); } // Find search input const searchInput = document.getElementById('release-notes-search'); if (!searchInput) return; // Create a persistent search function function performSearch() { const query = searchInput.value.toLowerCase().trim(); const entries = Array.from(document.querySelectorAll('.release-entry')); // First, remove any existing highlights removeAllHighlights(); if (!query) { // Show all entries if no query entries.forEach(entry => { entry.style.display = ''; }); return; } // Process each entry entries.forEach((entry) => { const entryHtml = entry.innerHTML; const entryText = entry.textContent.toLowerCase(); const matches = entryText.includes(query); if (matches) { entry.style.display = ''; // Apply highlighting highlightMatches(entry, query); } else { entry.style.display = 'none'; } }); } // Function to highlight matching text function highlightMatches(element, query) { // We need to work with text nodes to preserve HTML structure const walk = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false); const nodesToReplace = []; // Collect text nodes that contain the search query while (walk.nextNode()) { const node = walk.currentNode; const content = node.nodeValue.toLowerCase(); if (content.includes(query) && node.parentElement.nodeName !== 'SCRIPT' && node.parentElement.nodeName !== 'STYLE') { nodesToReplace.push(node); } } // Process collected nodes nodesToReplace.forEach(node => { const content = node.nodeValue; const parent = node.parentNode; // Create regex for case-insensitive matching with word boundaries const regex = new RegExp(`(${escapeRegExp(query)})`, 'gi'); // Replace text with highlighted version const replacementFragment = document.createDocumentFragment(); const parts = content.split(regex); parts.forEach(part => { if (part.toLowerCase() === query.toLowerCase()) { // This is a match - create highlighted span const span = document.createElement('span'); span.className = 'search-highlight'; span.textContent = part; replacementFragment.appendChild(span); } else if (part.length > 0) { // Regular text replacementFragment.appendChild(document.createTextNode(part)); } }); // Replace the original node with our fragment parent.replaceChild(replacementFragment, node); }); } // Function to remove all highlights function removeAllHighlights() { const highlights = document.querySelectorAll('.search-highlight'); highlights.forEach(highlight => { const parent = highlight.parentNode; if (parent) { // Replace the highlight span with its text content parent.replaceChild(document.createTextNode(highlight.textContent), highlight); // Normalize to merge adjacent text nodes parent.normalize(); } }); } // Helper function to escape special characters in regex function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } // Add event listener searchInput.addEventListener('input', performSearch); // Initial search if there's a value if (searchInput.value) { performSearch(); } } // This is crucial - register a script element that will survive navigation const scriptElement = document.createElement('script'); scriptElement.textContent = ` // Re-run search setup on every view transition document.addEventListener('astro:page-load', function() { if (typeof setupSearch === 'function') { setupSearch(); } }); // Also check periodically to ensure search is working setInterval(function() { const searchInput = document.getElementById('release-notes-search'); const entries = document.querySelectorAll('.release-entry'); if (searchInput && entries.length > 0 && !searchInput.hasAttribute('data-search-active')) { if (typeof setupSearch === 'function') { setupSearch(); } searchInput.setAttribute('data-search-active', 'true'); } }, 500); `; document.body.appendChild(scriptElement);