{
    "version": "https://jsonfeed.org/version/1",
    "title": "Swan Docs Blog",
    "home_page_url": "https://docs.swan.io/changelog",
    "description": "Swan Docs Blog",
    "items": [
        {
            "id": "https://docs.swan.io/changelog/16-july-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"new-features\">New features<a href=\"https://docs.swan.io/changelog/16-july-2026#new-features\" class=\"hash-link\" aria-label=\"Direct link to New features\" title=\"Direct link to New features\">​</a></h2>\n<p>💳 You can now stop a physical card from renewing automatically, without canceling it. Call the new <code>cancelPhysicalCardRenewal</code> mutation while the card is in the <code>ToRenew</code> status. The card remains active until its expiry date, then expires rather than being renewed and reissued.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/16-july-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>📦 You can now add multiple cards to Apple Pay or Google Pay with the new <code>addDigitalCards</code> mutation. It works like <code>addDigitalCard</code>, but it requires only a single consent flow for the entire batch.</p>",
            "url": "https://docs.swan.io/changelog/16-july-2026",
            "title": "16 July 2026",
            "summary": "New features",
            "date_modified": "2026-07-16T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/18-june-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/18-june-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>🔗 You can now control <a href=\"https://docs.swan.io/topics/onboarding/#links\">public onboarding links</a> separately for creating and updating accounts. If you've already turned on public links, both are on by default — adjust them anytime in your Dashboard under <strong>Onboarding</strong> &gt; <strong>Public links</strong>.</p>\n<p>🔄 All accounts closed before 2 April 2026 now use the <a href=\"https://docs.swan.io/topics/accounts/closure/#closure-reason-codes\">2026 closure reason codes</a>. All your accounts use the same codes, so you can run data analysis across your full history.</p>\n<p>🔄 All capital deposits canceled before 2 April 2026 now use the <a href=\"https://docs.swan.io/topics/capital-deposits/#cancelation-reason-codes\">2026 cancelation reason codes</a>. As with closures, all your capital deposits use the same codes, so you can run data analysis across your full history.</p>\n<p>📩 You can now see how your onboarding and Know Your Customer (KYC) email notifications are configured, from your Dashboard under <strong>Settings</strong> &gt; <strong>Notifications</strong>. The following notifications are now visible:</p>\n<ul>\n<li><strong>Your account terms and conditions</strong> — always on; can't be deactivated or edited for compliance reasons.</li>\n<li><strong>First transfer</strong> — contact Swan to change it.</li>\n<li><strong>Request supporting documents</strong> — contact Swan to change it.</li>\n<li><strong>Request supporting documents reminders</strong> — contact Swan to change it.</li>\n</ul>\n<p>🔍 You can now filter <a href=\"https://docs.swan.io/topics/accounts/ibans/#virtual\">virtual IBANs</a> by status — <code>Enabled</code> or <code>Canceled</code> — with the <code>status</code> filter on <a href=\"https://api-reference.swan.io/objects/virtual-ibanentry-connection/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>virtualIbanEntries</code></a> in the <a href=\"https://api-reference.swan.io/queries/account/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>account</code></a> query. This makes it easy to surface only <code>Enabled</code> IBANs, even when an account has many virtual IBANs.</p>\n<p>📋 You can now create a <a href=\"https://docs.swan.io/topics/capital-deposits/\">capital deposit</a> case for companies whose legal name is longer than 100 characters. The limit on the <code>companyName</code>, <code>accountName</code>, and <code>name</code> fields has increased to 255 characters (previously 100), matching standard French registry formats. No changes needed on your end.</p>\n<p>🔄 The conditions for an account to move from <code>Closing</code> to <code>Closed</code> status are changing. Before an account can close, all of the following must be true:</p>\n<ul>\n<li>The <code>Booked</code> balance is zero.</li>\n<li>The last incoming <a href=\"https://docs.swan.io/topics/payments/credit-transfers/sepa/\">SEPA Credit Transfer</a> was more than 30 days ago.</li>\n<li>The last outgoing SEPA Credit Transfer was more than 30 days ago (previously 5 days).</li>\n<li>No incoming or outgoing transaction is in <code>Upcoming</code> or <code>Pending</code> status, for any payment type (new).</li>\n</ul>\n<p>Because of these changes, accounts may stay in <code>Closing</code> status longer than before. If your integration tracks closure timing, adjust your expectations accordingly.</p>\n<p>🔄 Incoming credit transfers to a <code>Closing</code> account are now accepted when the booked balance is negative. This helps settle outstanding debts before the account is <code>Closed</code>. Transfers to <code>Closing</code> accounts with a zero or positive balance are still returned to the sender, as before.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/18-june-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"upcoming-breaking-changes\">Upcoming breaking changes<a href=\"https://docs.swan.io/changelog/18-june-2026#upcoming-breaking-changes\" class=\"hash-link\" aria-label=\"Direct link to Upcoming breaking changes\" title=\"Direct link to Upcoming breaking changes\">​</a></h3>\n<p>⚠️ The <code>DormantAccount</code> closure reason is <strong>deprecated</strong>. <a href=\"https://api-reference.swan.io/enums/close-account-reason-type/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>Inactivity</code></a> replaces it, with the description: \"Prolonged inactivity according to local regulatory definitions or internal policy.\" All accounts that previously used the <code>DormantAccount</code> closure reason are now using <code>Inactivity</code>.</p>\n<p>If your integration filters, displays, or processes closure reasons by code, update it to handle the new code <code>Inactivity</code> and remove any reference to <code>DormantAccount</code>. See the <a href=\"https://docs.swan.io/topics/accounts/closure/#closure-reason-codes\">updated closure reason codes</a> and <a href=\"https://docs.swan.io/topics/accounts/closure/#deprecated-reasons\">deprecated reason codes</a> for the full mapping.</p>",
            "url": "https://docs.swan.io/changelog/18-june-2026",
            "title": "18 June 2026",
            "summary": "Improvements",
            "date_modified": "2026-06-18T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/7-may-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/7-may-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>🧭 Starting <strong>June 4</strong>, <a href=\"https://docs.swan.io/topics/payments/credit-transfers/sepa/guide-schedule-so/\">Standing Orders</a> execute on their <code>lastExecutionDate</code> value. For example, a Standing Order with <code>lastExecutionDate</code> set to January 10 now runs on January 10 itself.</p>\n<p>🛡️ Starting <strong>May 25</strong>, Single Device Authentication rolls out gradually to all OAuth2 flows. A 6-digit verification code replaces the clickable SMS link across all partner integrations, <a href=\"https://docs.swan.io/changelog/26-february-2026/#improvements\">matching the approach already live on Swan's web banking</a>. This closes a remaining authentication fraud vector for partners using their own <code>client_id</code>.</p>\n<p>For your end users signing in or signing up from desktop:</p>\n<ul>\n<li>They receive a 6-digit verification code by SMS, replacing the previous clickable link.</li>\n<li>They enter the code on desktop to complete the flow.</li>\n</ul>\n<p>For <a href=\"https://docs.swan.io/topics/users/identifications/\">identification</a>, two text messages are sent: one with a redirection link, and one to trigger identification on mobile.</p>\n<p>No code changes are required, but please update your support documentation, guides, and flow screenshots accordingly.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/7-may-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"upcoming-breaking-changes\">Upcoming breaking changes<a href=\"https://docs.swan.io/changelog/7-may-2026#upcoming-breaking-changes\" class=\"hash-link\" aria-label=\"Direct link to Upcoming breaking changes\" title=\"Direct link to Upcoming breaking changes\">​</a></h3>\n<p>⚠️ On <strong>June 4</strong>, Swan renames <code>Card</code>-prefixed merchant types and mutations to <code>OnlineCard</code> equivalents for <a href=\"https://docs.swan.io/topics/merchants/online/cards/\">accepting online card payments</a>. The deprecated names are removed on this date; update your queries and mutations before then.</p>\n<p>This rename clarifies the distinction between online card acceptance and in-person card acceptance (terminals, Tap to Pay). It only affects partners accepting payments through <a href=\"https://docs.swan.io/topics/merchants/profiles/guide-request/\">merchant profiles</a>. Card issuing is unchanged.</p>\n<p><strong>Queries:</strong></p>\n<ul>\n<li><a href=\"https://api-reference.swan.io/objects/card-merchant-payment-method/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>CardMerchantPaymentMethod</code></a> → <a href=\"https://api-reference.swan.io/objects/online-card-merchant-payment-method/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>OnlineCardMerchantPaymentMethod</code></a>. Affects all queries that resolve <code>CardMerchantPaymentMethod</code> from <code>MerchantProfile.merchantPaymentMethods</code> or <a href=\"https://api-reference.swan.io/interfaces/merchant-payment-method/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>MerchantPaymentMethod</code></a>.</li>\n<li><a href=\"https://api-reference.swan.io/objects/card-transaction/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>CardTransaction</code></a> → <a href=\"https://api-reference.swan.io/objects/online-card-transaction/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>OnlineCardTransaction</code></a>. The <a href=\"https://api-reference.swan.io/enums/payment-product/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>PaymentProduct</code></a> enum gains a new <code>OnlineCard</code> value.</li>\n<li><a href=\"https://api-reference.swan.io/objects/card-merchant-payment/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>CardMerchantPayment</code></a> → <a href=\"https://api-reference.swan.io/objects/online-card-merchant-payment/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>OnlineCardMerchantPayment</code></a>.</li>\n</ul>\n<p><strong>Mutations and simulations:</strong></p>\n<ul>\n<li><a href=\"https://api-reference.swan.io/mutations/request-merchant-payment-methods/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>requestMerchantPaymentMethods</code></a> now requires <code>OnlineCard</code> instead of <code>Card</code>.</li>\n<li><code>simulateMerchantPaymentMethodRequestOutcome</code> now requires the <code>OnlineCardMerchantPaymentMethod</code> typename.</li>\n<li><code>simulateIncomingCardAuthorization</code> → <code>simulateIncomingOnlineCardAuthorization</code>.</li>\n<li><code>simulateIncomingCardBooking</code> → <code>simulateIncomingOnlineCardBooking</code>.</li>\n</ul>",
            "url": "https://docs.swan.io/changelog/7-may-2026",
            "title": "7 May 2026",
            "summary": "Improvements",
            "date_modified": "2026-05-07T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/23-april-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"new-features\">New features<a href=\"https://docs.swan.io/changelog/23-april-2026#new-features\" class=\"hash-link\" aria-label=\"Direct link to New features\" title=\"Direct link to New features\">​</a></h2>\n<p>📅 On <strong>May 21, 2026</strong>, public onboarding URLs will switch to the <a href=\"https://docs.swan.io/topics/onboarding/\">current onboarding API</a> for all new onboardings. The previous public onboarding interface will be retired.</p>\n<p>If you use public onboarding URLs without any prefilling, no action is needed. If you prefill onboarding fields through the API before redirecting to the onboarding URL, refer to the <a href=\"https://docs.swan.io/topics/onboarding/overview/guide-migrate/\">migration guide</a> or reach out to your Swan contact to plan your migration.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/23-april-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>✏️ <strong>Custom details for the <code>Other</code> purpose</strong>: when a supporting document with the purpose <code>Other</code> is requested, a new <code>purposeDetails</code> field on the <a href=\"https://api-reference.swan.io/objects/supporting-document-purpose/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>SupportingDocumentPurpose</code> object</a> specifies what document is needed (for example, \"Company structure chart\"). Query <code>purposeDetails</code> under <code>requiredSupportingDocumentPurposes</code> and display the description to your account holders to guide their upload. See the <a href=\"https://docs.swan.io/topics/accounts/documents/#document-purposes-and-types\">supporting documents guide</a> for details.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/23-april-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"upcoming-breaking-changes\">Upcoming breaking changes<a href=\"https://docs.swan.io/changelog/23-april-2026#upcoming-breaking-changes\" class=\"hash-link\" aria-label=\"Direct link to Upcoming breaking changes\" title=\"Direct link to Upcoming breaking changes\">​</a></h3>\n<p>⏱️ On <strong>May 20, 2026</strong>, the <a href=\"https://docs.swan.io/topics/users/consent/guide-configure-notifications\">consent notification endpoint</a> timeout will be reduced from 3 seconds to 2 seconds. This change applies to consent flows (sensitive operations), not OAuth2 flows such as login or authentication. The shorter timeout gives Swan enough time to fall back to text message within the 3.5-second 3-D Secure (3DS) window.</p>\n<p>If your integration uses in-app consent notifications, make sure your endpoint responds within 2 seconds. Aim for 1.5 to 1.8 seconds to leave margin. If your response is slower, Swan falls back to text message. No action is required if you don't use in-app consent notifications.</p>\n<p>⚠️ On <strong>September 30, 2026</strong>, the <a href=\"https://docs.swan.io/preview/new-onboarding/legacy-onboarding/\">previous onboarding API</a> will be shut down and all previous endpoints will no longer be available. The <a href=\"https://docs.swan.io/topics/onboarding/\">current onboarding API</a> has been generally available since March 2026. If you're still using the previous API, migrate before this date. Refer to the <a href=\"https://docs.swan.io/topics/onboarding/overview/guide-migrate/\">migration guide</a> or reach out to your Swan contact to plan your transition.</p>",
            "url": "https://docs.swan.io/changelog/23-april-2026",
            "title": "23 April 2026",
            "summary": "New features",
            "date_modified": "2026-04-23T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/9-april-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"new-features\">New features<a href=\"https://docs.swan.io/changelog/9-april-2026#new-features\" class=\"hash-link\" aria-label=\"Direct link to New features\" title=\"Direct link to New features\">​</a></h2>\n<p>🔔 <a href=\"https://docs.swan.io/topics/cards/physical/guide-activate#activation-reminder-notifications\">Physical cards</a> that haven't been activated after their estimated delivery date now trigger automatic reminder emails to cardholders. Reminders are sent at configurable intervals until the card is activated. Configure this from your <strong>Dashboard &gt; Settings &gt; Notifications</strong>.</p>\n<p>🧑‍🤝‍🧑 <a href=\"https://docs.swan.io/topics/accounts/memberships/admin-change\">Changing account administrator</a> is now easier to handle for your customers. The dedicated request form determines which supporting documents are required based on company type and reason for change, so requesters upload the right documents on the first attempt. Share the guided form directly with your customers.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/9-april-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>📫 Swan now requires email address verification when creating a new project in Sandbox. This limits impersonation risk and reinforces security across all projects.</p>\n<p>🛡️ The Web Banking sign-up flow has been updated to strengthen protections against social engineering and fraud. Users now complete sign-up on desktop by entering a 6-digit SMS verification code and their personal information. They then switch to mobile to complete identification via a link sent to their device.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/9-april-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"upcoming-breaking-changes\">Upcoming breaking changes<a href=\"https://docs.swan.io/changelog/9-april-2026#upcoming-breaking-changes\" class=\"hash-link\" aria-label=\"Direct link to Upcoming breaking changes\" title=\"Direct link to Upcoming breaking changes\">​</a></h3>\n<p>📆 On <strong>April 30</strong>, the deprecated <code>InternalCreditTransfer</code> value will be removed from the <a href=\"https://api-reference.swan.io/enums/payment-product/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>PaymentProduct</code></a> enum. Remove any references to this value from your transaction queries and filtering before this date.</p>",
            "url": "https://docs.swan.io/changelog/9-april-2026",
            "title": "9 April 2026",
            "summary": "New features",
            "date_modified": "2026-04-09T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/26-march-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"new-features\">New features<a href=\"https://docs.swan.io/changelog/26-march-2026#new-features\" class=\"hash-link\" aria-label=\"Direct link to New features\" title=\"Direct link to New features\">​</a></h2>\n<p>📅 You can now configure <a href=\"https://docs.swan.io/topics/cards/#limits\">card spending limits</a> with calendar-based periods, in addition to rolling periods. Calendar-based limits reset on a fixed schedule instead of a rolling window. This makes it easier for finance teams to align card budgets with their accounting periods. Configure calendar limits using the new <code>mode</code> field in <a href=\"https://api-reference.swan.io/inputs/spending-limit-input/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>SpendingLimitInput</code></a> with options for daily, weekly, or monthly recurrence.</p>\n<p>🖼️ A new <a href=\"https://docs.swan.io/topics/onboarding/\">no-code onboarding</a> interface is now in beta and available from your Dashboard. It delivers a cleaner and more consistent onboarding experience, improves data collection for better risk assessment and regulatory compliance, and removes the need to build and maintain the interface yourself. For a visual overview of the new onboarding flow, <a href=\"https://www.figma.com/design/xw0hsIEt9cX5nOe9Lr7K5y/Onboarding-V2?node-id=1-120\" target=\"_blank\" rel=\"noopener noreferrer\">browse the Figma prototype</a>.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/26-march-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>🧭 The data in your Dashboard Insights tab is updated for <strong>Overview</strong>, <strong>Credit Transfers</strong>, <strong>All Transactions</strong>, and <strong>Cards</strong>.</p>\n<ul>\n<li><strong>Overview:</strong> Account metrics now use account holder logic for a more accurate count of distinct businesses you serve. Card contracts now count from the enablement date rather than the creation date.</li>\n<li><strong>All Transactions:</strong> Average transactions per account holder now replace the previous per-account figures.</li>\n</ul>\n<p>Starting <strong>April 2</strong>, churned account holder data in the <strong>Overview</strong> tab will also reflect the new account closure reasons.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/26-march-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"reminders\">Reminders<a href=\"https://docs.swan.io/changelog/26-march-2026#reminders\" class=\"hash-link\" aria-label=\"Direct link to Reminders\" title=\"Direct link to Reminders\">​</a></h3>\n<p>👀 Starting <strong>April 2</strong>, Swan provides more granular <a href=\"https://docs.swan.io/topics/accounts/closure/\">closure reason codes</a> to help you understand why an account was closed. The new reasons are visible via the API and on your Dashboard.</p>\n<ul>\n<li>Three <a href=\"https://api-reference.swan.io/enums/close-account-reason-type/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>CloseAccountReasonType</code></a> values will be replaced with more granular codes: <code>PartnerReason</code>, <code>Inactivity</code>, and <code>CapitalDepositReason</code>. These were previously used for account opening refusals, capital deposit cancellations, and account closures.</li>\n<li>Accounts closed before <strong>April 2</strong> keep their original reason codes. Refer to the <a href=\"https://docs.swan.io/changelog/26-february-2026/#upcoming-breaking-changes\">deprecated reason codes</a> for the full mapping.</li>\n</ul>\n<p>👀 Starting <strong>April 2</strong>, <a href=\"https://docs.swan.io/topics/capital-deposits/\"><code>CapitalDepositCaseCanceledStatusInfo</code></a> gains a cancellation reason code when the case status is <code>Canceled</code>. You can also subscribe to the <code>CapitalDepositCaseEvent.Canceled</code> webhook to receive notifications when a capital deposit case is canceled.</p>\n<p>Capital deposit cases canceled before <strong>April 2</strong> have a <code>null</code> cancellation reason at the capital deposit level. For those cases, refer to the account-level deprecated closure reason <code>CapitalDepositReason</code>.</p>",
            "url": "https://docs.swan.io/changelog/26-march-2026",
            "title": "26 March 2026",
            "summary": "New features",
            "date_modified": "2026-03-26T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/12-march-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"new-features\">New features<a href=\"https://docs.swan.io/changelog/12-march-2026#new-features\" class=\"hash-link\" aria-label=\"Direct link to New features\" title=\"Direct link to New features\">​</a></h2>\n<p>🧭 The new <a href=\"https://docs.swan.io/topics/onboarding/\">Onboarding API</a> is now live in beta. It improves data collection for better risk assessment and regulatory compliance, and delivers a cleaner developer experience with structured inputs, typed responses, and updated mutations and queries. Documentation is updated to reflect all new validations.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/12-march-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>🔎 <a href=\"https://docs.swan.io/topics/capital-deposits/\"><code>CapitalDepositDocumentRefusedStatusInfo</code></a> now includes an optional <code>reason</code> string field with a free-text explanation of why a document was refused. You can view the exact explanation on your Dashboard, alongside the existing <code>reasonCode</code> value.</p>\n<p>🔍 <a href=\"https://docs.swan.io/topics/onboarding/account-holders/\">Account holders</a> can now be <a href=\"https://api-reference.swan.io/inputs/account-holder-filter-input/\" target=\"_blank\" rel=\"noopener noreferrer\">filtered</a> by their Know Your Customer (KYC) <a href=\"https://api-reference.swan.io/enums/verification-requirement-type/\" target=\"_blank\" rel=\"noopener noreferrer\">verification requirements</a>, both in the Dashboard and through the API. Supported filters include <code>FirstTransferRequired</code>, <code>SupportingDocumentsRequired</code>, <code>UboDetailsRequired</code>, <code>LegalRepresentativeDetailsRequired</code>, <code>OrganizationDetailsRequired</code>, <code>TaxIdRequired</code>, and <code>Other</code>.</p>\n<p>👀 Starting <strong>April 2</strong>, <a href=\"https://docs.swan.io/topics/capital-deposits/\"><code>CapitalDepositCaseCanceledStatusInfo</code></a> gains a cancellation reason code when the case status is <code>Canceled</code>. You can also subscribe to the <code>CapitalDepositCaseEvent.Canceled</code> webhook to receive notifications when a capital deposit case is canceled.</p>\n<p>Capital deposit cases canceled before <strong>April 2</strong> have a <code>null</code> cancellation reason at the capital deposit level; for those cases, refer to the account-level deprecated closure reason <code>CapitalDepositReason</code>.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/12-march-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<p>⚠️ Starting <strong>April 2</strong>, three <a href=\"https://api-reference.swan.io/enums/close-account-reason-type/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>CloseAccountReasonType</code></a> values are replaced with more granular codes. The deprecated values are <code>PartnerReason</code>, <code>Inactivity</code>, and <code>CapitalDepositReason</code>, previously used for account opening refusals, capital deposit cancellations, and account closures.</p>\n<p>Accounts closed before <strong>April 2</strong> keep their original reason codes. Refer to the <a href=\"https://docs.swan.io/changelog/26-february-2026/#upcoming-breaking-changes\">deprecated reason codes</a> for the full mapping.</p>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"reminders\">Reminders<a href=\"https://docs.swan.io/changelog/12-march-2026#reminders\" class=\"hash-link\" aria-label=\"Direct link to Reminders\" title=\"Direct link to Reminders\">​</a></h3>\n<p>📩 Our new white-labelled email notifications are now live in Production Live. If you have automations in place, check your KYC operations now in Production Sandbox. Affected notifications:</p>\n<ul>\n<li>Your account terms and conditions</li>\n<li>First transfer</li>\n<li>Request supporting documents</li>\n<li>Request supporting documents reminders</li>\n<li>Your account is opened</li>\n<li>Join your banking space</li>\n</ul>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"coming-up\">Coming up<a href=\"https://docs.swan.io/changelog/12-march-2026#coming-up\" class=\"hash-link\" aria-label=\"Direct link to Coming up\" title=\"Direct link to Coming up\">​</a></h2>\n<p>🏛️ In April, we’re rolling out a new white‑labelled portal for periodic KYC reviews (“re‑KYC”). It lets account admins confirm or update customer details in a multilingual interface, with pre-filled information and automated email reminders.</p>\n<p>💻 A new desktop sign-up flow for Web Banking is coming soon. Authentication and personal information will be completed on desktop: users receive a 6-digit verification code by SMS, enter the code, create a passcode, then enter personal information before switching to mobile to complete identification. This keeps authentication on a single device, reducing exposure to phishing and social engineering attacks. No changes are required on your side.</p>",
            "url": "https://docs.swan.io/changelog/12-march-2026",
            "title": "12 March 2026",
            "summary": "New features",
            "date_modified": "2026-03-12T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/26-february-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"new-features\">New features<a href=\"https://docs.swan.io/changelog/26-february-2026#new-features\" class=\"hash-link\" aria-label=\"Direct link to New features\" title=\"Direct link to New features\">​</a></h2>\n<p>📩 Following the <a href=\"https://docs.swan.io/changelog/18-december-2025/#important-update\">December 18 postponement</a>, the new white-labelled email notifications will be activated in Production Live starting <strong>March 12</strong>.\nThey're now available for testing in Production Sandbox, so you can assess the impact on your KYC operations if you have automations in place.</p>\n<p>Our new white-labelled email notifications:</p>\n<ul>\n<li>Your account terms and conditions</li>\n<li>First transfer</li>\n<li>Request supporting documents</li>\n<li>Request supporting documents reminders</li>\n<li>Your account is opened</li>\n<li>Join your banking space</li>\n</ul>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/26-february-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>🔐 The sign-in flow for Web Banking on desktop was updated on <strong>February 18</strong>.\nUsers now receive a 6-digit verification code by SMS, and enter both the code and their passcode on desktop, instead of clicking a link and entering their passcode on mobile.\nThis update improves security by making it harder for unauthorized users to access accounts.</p>\n<p>🔑 We've added <a href=\"https://docs.swan.io/developers/using-api/idempotency\">idempotency</a> to several mutations, so you can more safely accept payments and fund accounts without risking duplicates:</p>\n<ul>\n<li><a href=\"https://docs.swan.io/topics/merchants/online/idd/guide-initiate/\"><code>initiateMerchantPaymentCollection</code></a> for <a href=\"https://docs.swan.io/topics/merchants/online/idd/\">Internal Direct Debit</a>.</li>\n<li><a href=\"https://docs.swan.io/topics/merchants/online/sdd/guide-initiate/\"><code>initiateSepaDirectDebitMerchantPayment</code></a> for incoming <a href=\"https://docs.swan.io/topics/merchants/online/sdd/\">SEPA Direct Debit</a>.</li>\n<li><a href=\"https://docs.swan.io/topics/accounts/funding/guide-initiate-request/\"><code>initiateFundingRequest</code></a> for <a href=\"https://docs.swan.io/topics/accounts/funding/\">account funding</a>.</li>\n</ul>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/26-february-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"upcoming-breaking-changes\">Upcoming breaking changes<a href=\"https://docs.swan.io/changelog/26-february-2026#upcoming-breaking-changes\" class=\"hash-link\" aria-label=\"Direct link to Upcoming breaking changes\" title=\"Direct link to Upcoming breaking changes\">​</a></h3>\n<p>⚠️ Starting <strong>April 2</strong>, the following <a href=\"https://api-reference.swan.io/enums/close-account-reason-type/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>CloseAccountReasonType</code></a> values will be deprecated to provide more granular reason codes for account opening refusals, capital deposit cancellations, and account closures:</p>\n<ul>\n<li><code>PartnerReason</code>: use <code>RequestedByHolder</code> instead.</li>\n<li><code>Inactivity</code>: use <code>DormantAccount</code> instead.</li>\n<li><code>CapitalDepositReason</code>: use any of the new specific reason codes instead.</li>\n</ul>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"reminders\">Reminders<a href=\"https://docs.swan.io/changelog/26-february-2026#reminders\" class=\"hash-link\" aria-label=\"Direct link to Reminders\" title=\"Direct link to Reminders\">​</a></h3>\n<p>🌍 On <strong>March 31</strong>, <code>accountId</code> becomes mandatory in <a href=\"https://api-reference.swan.io/queries/international-beneficiary-dynamic-forms/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>internationalBeneficiaryDynamicForms</code></a> and <a href=\"https://api-reference.swan.io/queries/international-credit-transfer-transaction-details-dynamic-form/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>internationalCreditTransferTransactionDetailsDynamicForm</code></a>. It's available now as optional; update your integration before this date.</p>\n<p>📆 On <strong>April 1</strong>, the following fields will be removed from <a href=\"https://api-reference.swan.io/queries/account-statement/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>accountStatement</code></a>, <a href=\"https://api-reference.swan.io/objects/account/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>Account.statements</code></a>, and <a href=\"https://api-reference.swan.io/mutations/generate-account-statement/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>generateAccountStatement</code></a>:</p>\n<ul>\n<li><code>fees</code>: replaced by <code>feeCredits</code> and <code>feeDebits</code>.</li>\n<li><code>status</code>: replaced by <code>statusInfo</code>.</li>\n<li><code>url</code> in <code>type</code>: moved to <code>statusInfo</code>.</li>\n</ul>",
            "url": "https://docs.swan.io/changelog/26-february-2026",
            "title": "26 February 2026",
            "summary": "New features",
            "date_modified": "2026-02-26T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/12-february-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/12-february-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>📄 Starting <strong>February 26</strong>, B2B received direct debit mandates will return to <code>ConsentInitiationPending</code> status instead of <code>Canceled</code> when consent is refused or expires. This will allow end users to retry activating the mandate using the <a href=\"https://api-reference.swan.io/mutations/enable-received-direct-debit-mandate/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>enableReceivedDirectDebitMandate</code></a> mutation.</p>",
            "url": "https://docs.swan.io/changelog/12-february-2026",
            "title": "12 February 2026",
            "summary": "Improvements",
            "date_modified": "2026-02-12T00:00:00.000Z",
            "tags": []
        },
        {
            "id": "https://docs.swan.io/changelog/29-january-2026",
            "content_html": "<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"important-update\">Important update<a href=\"https://docs.swan.io/changelog/29-january-2026#important-update\" class=\"hash-link\" aria-label=\"Direct link to Important update\" title=\"Direct link to Important update\">​</a></h2>\n<p>📎 Swan is regenerating all bank details PDFs created before November 4, 2025, to reflect Swan SAS's new address. Bank details generated after this date already contain the new address.</p>\n<p>This applies to both main and virtual IBANs. Subscribe to the <code>Account.Updated</code> webhook to synchronize your system. This webhook is triggered only when main IBAN bank details are regenerated. Query your virtual IBANs separately to synchronize them as well.</p>\n<p>The process happens in two stages:</p>\n<ul>\n<li>Starting <strong>Friday, January 30</strong>, regeneration begins in Production Sandbox.</li>\n<li>Starting <strong>Monday, February 2</strong>, regeneration begins in Production Live, pending successful completion of Production Sandbox. It should take one week to complete.</li>\n</ul>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"improvements\">Improvements<a href=\"https://docs.swan.io/changelog/29-january-2026#improvements\" class=\"hash-link\" aria-label=\"Direct link to Improvements\" title=\"Direct link to Improvements\">​</a></h2>\n<p>🧭 SEPA Credit Transfers received without a customer-provided reference now display as empty strings in Web Banking and the API, instead of showing <code>NotProvided</code>.</p>\n<p>📖 <a href=\"https://docs.swan.io/topics/payments/credit-transfers/sepa/guide-initiate-ct/#identify-initiator\">Identify which user initiated a credit transfer</a> by querying the payment before consent is granted, or by storing user details at the time of initiation.</p>\n<p>🔧 The <code>reference</code> field for standing orders has been updated to align with SEPA scheme requirements: the underscore character (<code>_</code>) is no longer accepted. New regex pattern: <code>^[A-Za-z0-9-?.+\\/:,'() ]{1,35}$</code>.</p>\n<h2 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"api-updates\">API updates<a href=\"https://docs.swan.io/changelog/29-january-2026#api-updates\" class=\"hash-link\" aria-label=\"Direct link to API updates\" title=\"Direct link to API updates\">​</a></h2>\n<h3 class=\"anchor anchorWithStickyNavbar_LWe7\" id=\"upcoming-breaking-changes\">Upcoming breaking changes<a href=\"https://docs.swan.io/changelog/29-january-2026#upcoming-breaking-changes\" class=\"hash-link\" aria-label=\"Direct link to Upcoming breaking changes\" title=\"Direct link to Upcoming breaking changes\">​</a></h3>\n<p>👮 Starting <strong>February 5</strong>, new rejections apply to the <a href=\"https://api-reference.swan.io/mutations/open-account/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>openAccount</code></a> mutation to prevent fraud patterns involving successive opening and closing of <a href=\"https://docs.swan.io/topics/accounts/multiple-accounts/\">multiple accounts</a> to bypass the <a href=\"https://docs.swan.io/topics/accounts/multiple-accounts/#account-creation-limit\">account creation limit</a>:</p>\n<ul>\n<li>All accounts now count toward the maximum limit regardless of status (<code>Opened</code>, <code>Suspended</code>, <code>Closing</code>, or <code>Closed</code>). Previously, only <code>Opened</code> accounts counted. This change affects the existing <code>AccountHolderAccountsCreationLimitRejection</code>.</li>\n<li>If one or more of the account holder's accounts is <code>Suspended</code>, Swan rejects opening multiple accounts with <code>AccountHolderAccountsSuspendedStatusNotEligibleRejection</code>.</li>\n</ul>\n<p>🚫 Starting <strong>February 26</strong>, the following rules apply to <a href=\"https://docs.swan.io/topics/accounts/#account-type-level\">limited accounts</a>:</p>\n<ul>\n<li>Incoming SEPA Credit Transfers (instant or regular) exceeding <strong>€50</strong> are automatically rejected.</li>\n<li>The maximum cumulative balance is <strong>€150</strong>.</li>\n<li>Any incoming SEPA Credit Transfer, regardless of amount, that would cause the balance to exceed this limit is also rejected.</li>\n<li>Any incoming SWIFT transfer, regardless of amount, is automatically rejected.</li>\n</ul>\n<p>This change mainly affects the first incoming transfer made while the account holder is still completing verification. During verification, the account remains limited, and any transfer exceeding these limits is automatically rejected.</p>\n<p>Capital deposit accounts are unaffected, except that all transfers sent on SWIFT are now rejected for these accounts as well.</p>",
            "url": "https://docs.swan.io/changelog/29-january-2026",
            "title": "29 January 2026",
            "summary": "Important update",
            "date_modified": "2026-01-29T00:00:00.000Z",
            "tags": []
        }
    ]
}