<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Increase Updates</title><description>Product updates, articles, and customer stories from Increase</description><link>https://increase.com</link><atom:link href="https://increase.com/updates.xml" rel="self" type="application/rss+xml"/><language>en</language><image><url>https://dashboard.increase.com/increase-logo.svg</url><title>Increase Updates</title><link>https://increase.com/updates</link></image><generator>Increase</generator><item><title>Seeing like a network: the merchant category code</title><link>https://increase.com/articles/seeing-like-a-network</link><guid isPermaLink="true">https://increase.com/articles/seeing-like-a-network</guid><description>The merchant category code is a 50-year-old lookup table that modern spend controls still depend on. This post explains how it works, where it leaks, and what replaces it.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Suppose you&apos;re building the financial infrastructure for a logistics network. You need to issue physical corporate cards to truck drivers so they can pay for fuel and maintenance. Or maybe you&apos;re engineering the payment flows for a delivery platform, issuing zero-balance cards to couriers to buy groceries for customers at the point of sale.&lt;/p&gt;&lt;p&gt;In both cases, you need to guarantee that each card buys what it was issued for, and nothing else.&lt;/p&gt;&lt;p&gt;At Increase, you enforce this programmatically via a synchronous webhook on &lt;a href=&quot;https://increase.com/documentation/real-time-decisions&quot;&gt;Real-Time Decisions&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;When a courier swipes, dips, or taps their card, the payment terminal generates an ISO 8583 &lt;code&gt;0100&lt;/code&gt; Authorization Request. This message traverses the card network on its way to us. We intercept it mid-flight and, while the terminal and network wait for an answer, send a real-time webhook to your server.&lt;/p&gt;&lt;p&gt;That thin webhook tells you an event happened and hands you an ID:&lt;/p&gt;&lt;pre data-language=&quot;json&quot;&gt;{
  &amp;quot;type&amp;quot;: &amp;quot;event&amp;quot;,
  &amp;quot;category&amp;quot;: &amp;quot;real_time_decision.card_authorization_requested&amp;quot;,
  &amp;quot;associated_object_type&amp;quot;: &amp;quot;real_time_decision&amp;quot;,
  &amp;quot;associated_object_id&amp;quot;: &amp;quot;real_time_decision_123abc&amp;quot;
}
&lt;/pre&gt;&lt;p&gt;You fetch the decision itself with a &lt;code&gt;GET&lt;/code&gt; to &lt;code&gt;/real_time_decisions/{id}&lt;/code&gt;, which returns the authorization details:&lt;/p&gt;&lt;pre data-language=&quot;json&quot;&gt;{
  &amp;quot;id&amp;quot;: &amp;quot;real_time_decision_123abc&amp;quot;,
  &amp;quot;category&amp;quot;: &amp;quot;card_authorization_requested&amp;quot;,
  &amp;quot;status&amp;quot;: &amp;quot;pending&amp;quot;,
  &amp;quot;card_authorization&amp;quot;: {
    &amp;quot;decision&amp;quot;: null,
    &amp;quot;presentment_amount&amp;quot;: 14550,
    &amp;quot;presentment_currency&amp;quot;: &amp;quot;USD&amp;quot;,
    &amp;quot;merchant_category_code&amp;quot;: &amp;quot;5411&amp;quot;,
    &amp;quot;merchant_acceptor_id&amp;quot;: &amp;quot;1234567890&amp;quot;,
    &amp;quot;merchant_descriptor&amp;quot;: &amp;quot;SAFEWAY STORE 0021&amp;quot;
  }
}
&lt;/pre&gt;&lt;p&gt;You have about four seconds to ingest this payload, evaluate it against your internal state machine, and &lt;code&gt;POST&lt;/code&gt; your verdict back to &lt;code&gt;/real_time_decisions/{id}/action&lt;/code&gt;:&lt;/p&gt;&lt;pre data-language=&quot;json&quot;&gt;{
  &amp;quot;card_authorization&amp;quot;: {
    &amp;quot;decision&amp;quot;: &amp;quot;approve&amp;quot;
  }
}
&lt;/pre&gt;&lt;p&gt;Once your action &lt;code&gt;POST&lt;/code&gt; completes, you return a &lt;code&gt;200 OK&lt;/code&gt; to the original webhook, and the transaction resumes.&lt;/p&gt;&lt;p&gt;One of the highest-signal fields for evaluating the authorization request is &lt;code&gt;merchant_category_code&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;You don&apos;t have to make every call live, either. Increase&apos;s API lets you pre-configure static &lt;a href=&quot;https://increase.com/documentation/api/cards#card-object.authorization_controls&quot;&gt;authorization controls&lt;/a&gt; on a card, allow-listing or blocking specific merchant category codes outright, so you can reserve Real-Time Decisions for the cases that genuinely need a judgment call.&lt;/p&gt;&lt;h2&gt;Seeing like a network&lt;/h2&gt;&lt;p&gt;In his book &lt;em&gt;Seeing Like a State&lt;/em&gt;, James C. Scott explores the concept of &amp;quot;legibility.&amp;quot; A state (or any complex organization) can&apos;t govern without first simplifying reality. To manage a dense, old-growth forest, for example, the state clears it and plants identical trees in straight rows. To calculate taxes, a 19th-century tariff regime declares that a tomato is a &amp;quot;vegetable,&amp;quot; not a fruit.&lt;/p&gt;&lt;p&gt;The global payment networks operate the same way. Governed by the International Organization for Standardization under ISO 18245, the Merchant Category Code (MCC) is Visa and Mastercard&apos;s instrument of legibility.&lt;/p&gt;&lt;p&gt;Modeling a messy, contradictory world is an impossible task; no taxonomy ever fits perfectly, and some are simply better than others. The MCC is serviceable, but its quirks run deep.&lt;/p&gt;&lt;p&gt;Originally designed in the 1970s to calculate tiered interchange fees (a jewelry store presents a higher fraud risk than a bakery, and is priced accordingly), the MCC maps global commerce onto a rigid numeric grid, keyed to a business&apos;s &lt;em&gt;primary consumer-facing activity&lt;/em&gt;. But how do you classify a 200,000-square-foot mega-mart that sells tires, prescriptions, milk, and life insurance? You oversimplify. To the network, a merchant is whatever it sells most of. The grid compresses reality into a four-digit integer, producing outcomes by turns comical and genuinely inconvenient.&lt;/p&gt;&lt;h2&gt;Hardcoded history&lt;/h2&gt;&lt;p&gt;The full ISO 18245 taxonomy reads like a fossil record of 20th-century commerce. The system encodes point-in-time business realities as permanent infrastructure.&lt;/p&gt;&lt;p&gt;Specific entities from the 1970s and 80s are hardcoded into the global grid. Major carriers get their own: United is &lt;code&gt;3000&lt;/code&gt;, American is &lt;code&gt;3001&lt;/code&gt;, each reserved exclusively for that airline. The networks maintain &lt;code&gt;3667&lt;/code&gt; purely to identify transactions at a single casino hotel: the Luxor in Las Vegas.&lt;/p&gt;&lt;p&gt;The grid is just as lopsided in the other direction. For every entity rich enough to earn its own code, whole swaths of commerce funnel through a single overloaded one. A corner café, a food truck, and a hotel banquet hall can all land under the same restaurant code, while a genuinely new kind of business picks among a half-dozen overlapping food-service options, none a clean fit. And the granularity is wildly uneven. The same grid that crams all of food service into a handful of codes keeps dedicated entries for furriers (&lt;code&gt;5681&lt;/code&gt;), wig shops (&lt;code&gt;5698&lt;/code&gt;), and snowmobile dealers (&lt;code&gt;5598&lt;/code&gt;).&lt;/p&gt;&lt;h2&gt;When the abstraction leaks&lt;/h2&gt;&lt;p&gt;The grid&apos;s real trouble is that it can&apos;t keep up. When new business models emerge, it buckles.&lt;/p&gt;&lt;p&gt;Authorizing a fleet card seems trivial: you allow-list MCC &lt;code&gt;5542&lt;/code&gt; (Automated Fuel Dispensers). But when electric vehicle charging networks scaled, they lacked a dedicated identifier. Some acquirers miscategorized EV chargers as generic utilities (&lt;code&gt;4900&lt;/code&gt;). If your fleet transitioned to EVs, your programmatic webhooks started declining legitimate charges or approving ambiguous ones.&lt;/p&gt;&lt;p&gt;A specific code for EV charging (&lt;code&gt;5552&lt;/code&gt;) was eventually introduced, but implementation remains fragmented. Updating an MCC isn&apos;t a cloud deployment; it often requires the acquiring bank to reclassify the merchant in its core systems and manually push a configuration change to a physical point-of-sale terminal in a parking lot. For an independent station owner, there&apos;s zero financial incentive to initiate this process just so a driver&apos;s corporate card categorizes the spend correctly.&lt;/p&gt;&lt;p&gt;This kind of mismatch reveals a deeper limitation. MCCs classify the &lt;em&gt;entity&lt;/em&gt;, not the &lt;em&gt;basket&lt;/em&gt;. By default, the ISO 8583 payload can&apos;t distinguish between a cart of groceries and a flat-screen television rung up at the same big-box store. The code tells you where the card was swiped, but nothing about what was actually bought.&lt;/p&gt;&lt;p&gt;Some transactions do carry richer, itemized data alongside the authorization, but it&apos;s supplemental, inconsistently supported, and a subject of its own; the base authorization still identifies the merchant, not the purchase. When you&apos;re writing authorization logic against the category code, you&apos;re making decisions based on who the merchant says they are, not what the cardholder is doing.&lt;/p&gt;&lt;h2&gt;From entity to intent: ISO 20022&lt;/h2&gt;&lt;p&gt;The MCC has been a durable piece of financial infrastructure for fifty years. But as global commerce shifts, its dominance is waning.&lt;/p&gt;&lt;p&gt;The structural threat isn&apos;t a new set of codes; it&apos;s the bypass of the card networks entirely. As Open Banking and direct account-to-account (A2A) payments scale via rails like the UK&apos;s Faster Payments, Europe&apos;s SEPA Instant, or the FedNow network, transactions no longer traverse Visa or Mastercard. They don&apos;t use ISO 8583 or carry an MCC.&lt;/p&gt;&lt;p&gt;To prevent a data void in spend categorization, the global financial system is migrating to the &lt;strong&gt;ISO 20022&lt;/strong&gt; messaging standard. This replaces legacy flat files with highly structured, extensible (if charmless) XML.&lt;/p&gt;&lt;p&gt;Imagine you&apos;re building the financial flows for that same logistics network, but ten years from now. Instead of a driver swiping a physical corporate card at a gas station, the connected fleet vehicle initiates a real-time A2A transfer over FedNow to settle the charging fee directly with the EV station.&lt;/p&gt;&lt;p&gt;When your webhook fires, you aren&apos;t checking a merchant&apos;s category code. ISO 20022 carries a dedicated Purpose Code that defines the &lt;em&gt;intent&lt;/em&gt; of the transfer. Inside a standard &lt;code&gt;pacs.008&lt;/code&gt; customer credit transfer payload, you parse the &lt;code&gt;&amp;lt;Purp&amp;gt;&lt;/code&gt; element:&lt;/p&gt;&lt;pre data-language=&quot;xml&quot;&gt;&amp;lt;Purp&amp;gt;
  &amp;lt;Cd&amp;gt;ENRG&amp;lt;/Cd&amp;gt;
&amp;lt;/Purp&amp;gt;
&lt;/pre&gt;&lt;p&gt;Values like &lt;code&gt;ENRG&lt;/code&gt; for energy, &lt;code&gt;AIRB&lt;/code&gt; for air transport, or &lt;code&gt;SALA&lt;/code&gt; for salary define intent natively in the payload. The classification moves from the &lt;em&gt;entity&lt;/em&gt; (who the merchant is) to the &lt;em&gt;intent&lt;/em&gt; (why the money is moving).&lt;/p&gt;&lt;p&gt;Note &lt;code&gt;AIRB&lt;/code&gt; (and resist the autocomplete to AirBnB): it names the &lt;em&gt;purpose&lt;/em&gt; of the payment, not the merchant behind it. Where the card networks split air travel across dedicated carrier codes like United&apos;s &lt;code&gt;3000&lt;/code&gt; and a generic catch-all (&lt;code&gt;4511&lt;/code&gt;), ISO 20022 simply carries a field that means &amp;quot;air travel.&amp;quot;&lt;/p&gt;&lt;p&gt;Migrations of core financial infrastructure are slow. The transition to ISO 20022 has been repeatedly delayed by central banks, and the volume of physical point-of-sale hardware ensures legacy mainframes will remain operational for decades. SWIFT held its November 2025 deadline to retire cross-border MT payment messages, but a long tail of message types and address formats runs into 2027. The transition will be measured in business cycles, not quarters.&lt;/p&gt;&lt;p&gt;Until that migration is complete, if you&apos;re building programmatic spend controls, you&apos;re living in the world of the MCC. That&apos;s a more workable place than it sounds. The taxonomy is messy, but it&apos;s also shared and public, so you can design for its edges deliberately instead of discovering them in production. Treat the category code as a strong hint rather than a verdict: keep your allow-lists in configuration, not code, so they change in minutes rather than a deploy; log the code and your decision on every authorization, so a miscategorized EV charger surfaces as a pattern instead of a support ticket; and fold in new codes like &lt;code&gt;5552&lt;/code&gt; as they come into use.&lt;/p&gt;&lt;p&gt;The highest-leverage move is making the taxonomy more legible to each other. The 50-year-old grid isn&apos;t going anywhere soon, but the tooling we wrap around it can be modern, shared, and a good deal more legible than the grid itself.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Mattt Zmuda</dc:creator><category>Article</category></item><item><title>Why we’re still talking about paper checks in 2026</title><link>https://increase.com/articles/check-updates</link><guid isPermaLink="true">https://increase.com/articles/check-updates</guid><description>We’re not going to sell you on the benefits of sending checks. If you’re sending checks in 2026, you’re doing it because you have to.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;We&apos;re not going to sell you on the benefits of sending checks. If you&apos;re sending checks in 2026, you&apos;re doing it because you have to.&lt;/p&gt;&lt;p&gt;Many healthcare, real estate, and insurance businesses still &lt;a href=&quot;https://www.atlantafed.org/research-and-data/publications/take-on-payments/2026/01/12/why-do-businesses-still-use-paper-checks&quot;&gt;rely on checks&lt;/a&gt; to send and receive funds. While the majority of our transactions are digital, Increase processed billions of dollars in old-fashioned paper checks in the past six months.&lt;/p&gt;&lt;p&gt;So we invested heavily in features that support platforms scaling check send: support for attachments, overnight shipping, delivery notifications, design customization, and fraud controls.&lt;/p&gt;&lt;p&gt;If you don&apos;t send checks at scale, congratulations! You can read the unmitigated pedantry that follows just for fun.&lt;/p&gt;&lt;h2&gt;Checks love company&lt;/h2&gt;&lt;p&gt;If you&apos;re going to the trouble of putting a check into an envelope, you may want other things in there too.&lt;/p&gt;&lt;p&gt;Attachments to checks can be useful for a range of use cases. Bill Pay platforms include remittance information for invoices. Healthcare platforms send explanations of benefits. Some companies send marketing materials along with each check to acquire counterparties as customers.&lt;/p&gt;&lt;h2&gt;Speed matters, even when you&apos;re sending paper checks&lt;/h2&gt;&lt;p&gt;When we initially built our &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt;check send API&lt;/a&gt;, we assumed our users would always prefer the cheapest mailing option and wouldn&apos;t be particularly sensitive to shipment times.&lt;/p&gt;&lt;p&gt;This turned out to be wrong! The CheckTransfer API now supports &lt;a href=&quot;https://increase.com/documentation/api/check-transfers#create-a-check-transfer.physical_check.shipping_method.fedex_overnight&quot;&gt;Fedex Overnight&lt;/a&gt; shipping.&lt;/p&gt;&lt;p&gt;Users often send checks when collecting bank details isn&apos;t possible or desirable. This includes refunds, rebates, settlements, class-action payouts and more. And sometimes those payments are urgent.&lt;/p&gt;&lt;h2&gt;It&apos;s nice to know where your paper check is&lt;/h2&gt;&lt;p&gt;Our users want to give their customers delivery update notifications. So we found ourselves integrating into the United States Postal Service and the FedEx APIs to get these for them. For USPS, that&apos;s the Informed Visibility® Mail Tracking &amp;amp; Reporting (IV-MTR).&lt;/p&gt;&lt;p&gt;You may have had the experience of receiving an in-transit notification a few days after the package is delivered. Delivery tracking update events use &lt;a href=&quot;https://postalpro.usps.com/informedvisibility/OperationCodesList&quot;&gt;operations codes&lt;/a&gt;, and there are a little less than 1000 different codes. (Fedex, mercifully, uses only a few dozen).&lt;/p&gt;&lt;p&gt;The result is a straightforward and readable timeline, so you can track every step of your paper check&apos;s journey to its destination. We now surface these tracking updates in the Dashboard.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/check-updates-timeline.png&quot; alt=&quot;Check timeline&quot;&gt;&lt;/p&gt;&lt;h2&gt;Customization requires going direct-to-printer&lt;/h2&gt;&lt;p&gt;To deliver much of the above, we invested in integrating into an industrial printer. Their preferred delivery format from us was a single, very large PDF, with all of a day&apos;s checks and attachments in a single file. (As you might expect, this created a side quest around file size optimization).&lt;/p&gt;&lt;p&gt;This unlocked an ability to customize appearance on a per-check basis. The American National Standards Institute&apos;s standard for checks specifies the font (&lt;a href=&quot;https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition&quot;&gt;E-13B&lt;/a&gt;), the placement of the magnetic ink character recognition line, and the paper used. But that leaves a fairly wide space for customization, which we&apos;re excited to support.&lt;/p&gt;&lt;h2&gt;Fraud controls are critical&lt;/h2&gt;&lt;p&gt;No matter how beautifully customized your paper checks may be, they quickly become a hassle if lost or stolen. This unfortunately does happen, and when it does, you&apos;ll need controls to block checks from being fraudulently deposited.&lt;/p&gt;&lt;p&gt;We now offer &lt;a href=&quot;https://increase.com/documentation/positive-pay&quot;&gt;fine-grained positive pay controls&lt;/a&gt; on every Check Transfer, allowing users to review attempted deposits before funds get withdrawn from an Increase account, and decline the deposit attempt for any reason.&lt;/p&gt;&lt;h2&gt;Designing for programmable paper checks&lt;/h2&gt;&lt;p&gt;At Increase, we default to building financial primitives with &lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;no abstractions&lt;/a&gt; for flexibility, transparency and reliability.&lt;/p&gt;&lt;p&gt;For this reason, we resisted investing in a printer integration. Our customers are large, sophisticated financial technology companies: maybe they&apos;d prefer to bring their own printer integration for checks?&lt;/p&gt;&lt;p&gt;They didn&apos;t.&lt;/p&gt;&lt;p&gt;So, where it made sense, we picked up as much of the toil as we could for printing and mail tracking. And by directly integrating into an industrial printer for printing, USPS/FedEx for tracking updates, and Check21 for money movement, we&apos;re able to offer API-powered paper checks that are programmable and flexible.&lt;/p&gt;&lt;p&gt;If you&apos;re sending checks at scale, let&apos;s chat! Reach us at &lt;a href=&quot;mailto:hello@increase.com&quot;&gt;hello@increase.com&lt;/a&gt;.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Sacha Perold</dc:creator><media:content url="https://increase.com/images/check-updates-og.png" medium="image" type="image/png"/><category>Article</category></item><item><title>2026 Q1 Newsletter</title><link>https://increase.com/newsletter/q1-2026</link><guid isPermaLink="true">https://increase.com/newsletter/q1-2026</guid><description>Changes for 2026 Q1, including the Entity Onboarding Sessions API, 3D Secure, Push Provisioning, Event polling, IP-restricted API keys, and a C# SDK.</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Here&apos;s what we shipped in the first quarter of 2026.&lt;/p&gt;&lt;h2&gt;Accounts and Entities&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;We launched our &lt;a href=&quot;https://increase.com/documentation/hosted-onboarding&quot;&gt;Entity Onboarding Sessions API&lt;/a&gt;, which lets you use our hosted authentication UI to collect your customers&apos; information during onboarding without having to build the KYC flow yourself.&lt;/li&gt;&lt;li&gt;Eligible platforms can now set the interest rate for each of their Accounts.&lt;/li&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/exports#create-an-export.voided_check&quot;&gt;create a voided check&lt;/a&gt; via the API, which is useful for sharing your account and routing numbers with a counterparty in a familiar format.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Money movement&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/cards#card-object.authorization_controls&quot;&gt;Card authorization controls&lt;/a&gt; now support per-card spending limits, with single-use and multi-use cards; per-transaction, per-week, per-month, and per-year limits, giving you fine-grained control over where and how each card can be used.&lt;/li&gt;&lt;li&gt;We launched &lt;a href=&quot;https://increase.com/documentation/3d-secure&quot;&gt;3D Secure&lt;/a&gt; for card authentications, letting you authenticate your cardholders at checkout to reduce fraud and disputes.&lt;/li&gt;&lt;li&gt;We launched &lt;a href=&quot;https://increase.com/documentation/push-provisioning&quot;&gt;Push Provisioning&lt;/a&gt;, letting your users add their card to Apple Pay and Google Pay directly from your website or native app without typing in a card number.&lt;/li&gt;&lt;li&gt;We&apos;re now fully reconciling and passing on all scheme fees from Visa, so the card-network fees on every card payment match the network&apos;s books exactly.&lt;/li&gt;&lt;li&gt;We now support attaching up to 999 pages to a single check, for use cases like remittance and lockbox payments where you need to mail substantial documentation alongside the check.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Developer experience&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;You can now restrict API keys to a list of IP addresses, reducing the scope of impact if a key is ever compromised.&lt;/li&gt;&lt;li&gt;You can see what an object looks like in the API directly from most Dashboard detail pages via the &amp;quot;Show API representation &amp;amp; events&amp;quot; link, which is handy when debugging an integration without dropping into a terminal.&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;https://increase.com/documentation/webhooks#event-polling&quot;&gt;Event polling API&lt;/a&gt; is now generally available - you can poll for new Events instead of listening via webhook, which substantially reduces end-to-end Event handling latency.&lt;/li&gt;&lt;li&gt;You can now manually trigger a webhook delivery for an Event from the Dashboard, which makes it easier to debug webhook handlers or replay after an outage on your side.&lt;/li&gt;&lt;li&gt;You can now subscribe an Event Subscription to multiple Event categories at creation time, instead of registering a separate subscription per category.&lt;/li&gt;&lt;li&gt;Increase SDKs are now available in &lt;a href=&quot;https://github.com/increase/increase-csharp&quot;&gt;C#&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Things we wrote and said&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;We were named to the &lt;a href=&quot;https://www.forbes.com/sites/brandonkochkodin/2026/02/19/the-future-of-business-to-business-banking-fintech-50-2026/&quot;&gt;Forbes Fintech 50&lt;/a&gt; list for 2026.&lt;/li&gt;&lt;li&gt;Our founder Darragh joined the &lt;a href=&quot;https://open.spotify.com/episode/3Npt82f5sk9sMgGF5r2TfG&quot;&gt;Fintech One-on-One Podcast&lt;/a&gt; to talk about bank infrastructure.&lt;/li&gt;&lt;li&gt;We wrote about &lt;a href=&quot;https://increase.com/articles/support-that-doesnt-scale&quot;&gt;what it&apos;s like to work with Increase&lt;/a&gt;, and why our engineers handle their own support rather than running a dedicated support team.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Support that doesn’t scale: what it’s like to work with Increase</title><link>https://increase.com/articles/support-that-doesnt-scale</link><guid isPermaLink="true">https://increase.com/articles/support-that-doesnt-scale</guid><description>At Increase, the engineers who build the system also support it. This post explains why we skip the traditional support team, and what that means for the customers working with us.</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;At Increase, we open a shared Slack Connect channel for each new customer (and prospective customer). Our engineering team is a part of the channel and whoever is on-call responds to customer questions directly. We don’t have a traditional support team; the same engineers who build the system also operate and support it.&lt;/p&gt;&lt;p&gt;A customer recently asked us about adding support for voided checks to our API to help demonstrate account ownership. At most companies, that request would have gone to someone in Support or Customer Success, then added to a queue of potential feature requests. In this case, the engineer who owns our Check Transfers product was able to gather additional context in real-time, iterate on the request with the customer, and push the &lt;a href=&quot;https://increase.com/documentation/api/exports#create-an-export.voided_check&quot;&gt;new API&lt;/a&gt; to production the following day.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“With Increase, we have high confidence that systems are running smoothly. And if something goes wrong, we can quickly drill down into the issue and act before it affects payroll. This level of control has been critical for us.” - Andrew Brown, CEO at Check&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This is a natural extension of our model of &lt;a href=&quot;https://increase.com/articles/how-we-work&quot;&gt;empowered owners&lt;/a&gt;, where the person responsible for a given feature (usually an engineer) is responsible for the full stack of ownership and decision-making, from the underlying network integration to the product design to the sales and support of that feature. We believe in giving our employees the context and the agency to fix, tinker, and build.&lt;/p&gt;&lt;p&gt;When you send us a note in our joint Slack channel about something that’s broken, needs improvement, or needs to be built, you’ll talk directly to an Increase engineer. We think this matters for a few reasons:&lt;/p&gt;&lt;h2&gt;Lack of translation&lt;/h2&gt;&lt;p&gt;When customer feedback travels through layers of support, account executives, product managers, and engineers, each step adds latency and subtracts fidelity. Talking directly to the owner gets our customers faster, better answers, and lets us move more efficiently as an organization. When a traditional support team is receiving questions and bug reports, they’re often incentivized to find workarounds for defects and bugs in the name of closing tickets. When the engineering owner is receiving them, they’re incentivized to fix the bugs and improve our documentation.&lt;/p&gt;&lt;h2&gt;Tight feedback loops&lt;/h2&gt;&lt;p&gt;Our product spans complex systems and serves demanding customers. Feedback is oxygen to us. If we ship a feature that generates pain or confusion for our customers, the person responsible for it will feel that pain viscerally and immediately. This acts as a self-regulating mechanism - engineers can’t afford the support burden that shipping subpar work will cause them.&lt;/p&gt;&lt;h2&gt;Nuanced conversations&lt;/h2&gt;&lt;p&gt;In many cases, the questions we receive involve a lengthy back-and-forth. The US depository system is powerful and complex. If you’re not talking to someone with a deep understanding of the systems at play, you may not get the answers or resolutions you need. It helps to talk to experts who operate in complex systems because they can connect the ways your use case fits into those systems.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“I appreciate your decision to have an engineer serve as the equivalent of an account manager. I know it&apos;s not an easy decision, but it makes a big difference for us. There&apos;s no customer &amp;lt;&amp;gt; AM &amp;lt;&amp;gt; engineer loop, and it feels like the answers come straight from the source of truth.” - Perry Zheng, founder and CEO, Cash Flow Portal&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Ultimately businesses come to Increase for access to speed, transparency, and reliability. We feel that should be as true when working with our team as it is when working with our machines.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Jamshed Vesuna</dc:creator><category>Article</category></item><item><title>Increase named to the 2026 Forbes Fintech 50</title><link>https://increase.com/articles/forbes-fintech-50-2026</link><guid isPermaLink="true">https://increase.com/articles/forbes-fintech-50-2026</guid><description>We&apos;re honored that Forbes named Increase to its annual Fintech 50 list for the second year in a row.</description><pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;We&apos;re honored that Forbes named Increase to its annual &lt;a href=&quot;https://www.forbes.com/lists/fintech50/&quot;&gt;Fintech 50 list&lt;/a&gt; for the second year in a row. And we&apos;re in great company, alongside customers like &lt;a href=&quot;https://stripe.com&quot;&gt;Stripe&lt;/a&gt; and &lt;a href=&quot;https://ramp.com&quot;&gt;Ramp&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Some reflections on recent milestones that got us here:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Increase now processes hundreds of billions in payments volume per year. We handle a growing number of API calls while maintaining latency of under 100 milliseconds.&lt;/li&gt;&lt;li&gt;We added powerful new rails for instant money movement: FedNow and Push-to-card transfers. Alongside Real-Time Payments, Increase now supports every US instant payment network.&lt;/li&gt;&lt;li&gt;We shipped improvements to our existing rails: &lt;a href=&quot;https://increase.com/articles/check-updates&quot;&gt;Check Transfers&lt;/a&gt; now offer attachments, overnight shipping, delivery notifications, design customization, and fraud controls. Our &lt;a href=&quot;https://increase.com/documentation/api/lockboxes#lockboxes&quot;&gt;Lockbox&lt;/a&gt; offering enables users to spin up unique locations to minimize latency. And we saw growing adoption of &lt;a href=&quot;https://increase.com/documentation/api/wire-drawdown-requests#wire-drawdown-requests&quot;&gt;Wire Drawdowns&lt;/a&gt; for use cases like payroll and bill payment.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We&apos;re most grateful for the ambitious companies building the next generation of banking, payments and card products on Increase. In their own words:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;With Increase, we have high confidence that systems run smoothly. And if something goes wrong, we can quickly drill down and act before it affects payroll. This level of control has been critical for us.&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;Increase has been a critical partner in helping us launch products that feel as modern and intuitive as the rest of Ramp&apos;s offerings. The flexibility and transparency is unmatched.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Thank you, Forbes, for the recognition. And now, back to work!&lt;/p&gt;&lt;p&gt;— The Increase team&lt;/p&gt;&lt;/article&gt;</content:encoded><category>Article</category></item><item><title>2025 Q4 Newsletter</title><link>https://increase.com/newsletter/q4-2025</link><guid isPermaLink="true">https://increase.com/newsletter/q4-2025</guid><description>Changes for 2025 Q4, including FedNow, Push-to-Card, Cards Disputes API, Push Provisioning, Check Transfer enhancements, PHP and Ruby SDKs, Dashboard and Status Page improvements, and LLM-friendly documentation.</description><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;December 31, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;FedNow is live. FedNow is an instant payment network that’s ergonomically similar to Real-Time Payments (RTP) but administered directly by the Federal Reserve.&lt;/li&gt;&lt;li&gt;We launched support for Push-to-Card transfers on Visa and Mastercard. You can now instantly send funds from an Increase account to the majority of US debit cards.&lt;/li&gt;&lt;li&gt;Our new &lt;a href=&quot;https://increase.com/documentation/api/card-disputes&quot;&gt;Cards Disputes API&lt;/a&gt; is live. It’s directly integrated to Visa Resolve Online (VROL) APIs and lets you pass structured data for every type of dispute Visa supports, optimizing your UX and win rates.&lt;/li&gt;&lt;li&gt;We launched &lt;a href=&quot;https://increase.com/documentation/push-provisioning&quot;&gt;Push Provisioning&lt;/a&gt;: your users can add their card to their Apple Pay wallet from your app without having to type (or know) their card number.&lt;/li&gt;&lt;li&gt;We added support for attachments, overnight shipping, and design customization to &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt;Check Transfers&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Increase SDKs are now available in &lt;a href=&quot;https://github.com/increase/increase-php&quot;&gt;PHP&lt;/a&gt; and &lt;a href=&quot;https://github.com/increase/increase-ruby&quot;&gt;Ruby&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;You can see what an object looks like in the API directly from the Dashboard.&lt;/li&gt;&lt;li&gt;You can see Increase’s live system metrics directly on our &lt;a href=&quot;https://status.increase.com&quot;&gt;Status Page&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;All our documentation is now LLM-friendly: copy or send any docs page to an LLM, and when robots browse our site they get markdown.&lt;/li&gt;&lt;li&gt;We wrote about &lt;a href=&quot;https://increase.com/articles/lending-fast-and-slow&quot;&gt;why platforms have unique data insights to deliver small business lending to their customers&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;We published a guide to embedding banking and payments into &lt;a href=&quot;https://increase.com/articles/vertical-saas&quot;&gt;Vertical SaaS&lt;/a&gt; companies.&lt;/li&gt;&lt;li&gt;Our founder Darragh talked about bank infrastructure on the Fintech One-on-One Podcast.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Lending, fast and slow</title><link>https://increase.com/articles/lending-fast-and-slow</link><guid isPermaLink="true">https://increase.com/articles/lending-fast-and-slow</guid><description>Small‑business lending bifurcated over the last decade.</description><pubDate>Tue, 14 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Small‑business lending bifurcated over the last decade.&lt;/p&gt;&lt;p&gt;If you run your business on a platform like Stripe or Square, and need a working capital line, you can get it fast. The big payment processors have eaten up a huge chunk of the market for short-duration, low-dollar lines. Merchants get a decision in seconds and funding next day.&lt;/p&gt;&lt;p&gt;But if you need a larger or longer duration loan, you&apos;re stuck in a much slower world. You&apos;re downloading your account statement then uploading it back again to the loan portal at the same bank. You&apos;re reading through pages of covenants. You may wait months.&lt;/p&gt;&lt;p&gt;How did fintechs win so much of the market for small business working capital — and why did it stop there?&lt;/p&gt;&lt;p&gt;We&apos;ve argued &lt;a href=&quot;https://increase.com/articles/vertical-saas&quot;&gt;elsewhere&lt;/a&gt; that vertical software is the new distribution model for financial services. This post covers why we think that&apos;s true with lending, especially.&lt;/p&gt;&lt;h2&gt;Extending credit with the data on-hand is fast&lt;/h2&gt;&lt;p&gt;Stripe, Shopify, and Square all play in this market. The offer shows up where you sell. You drag a slider to pick an amount, accept the fee, and money appears. Terms are short — 9 months on average — and amounts comparatively small, mostly well under $100k. Repayment happens automatically, ebbing and flowing with your sales.&lt;/p&gt;&lt;p&gt;It&apos;s worth calling out what a great user experience this is. I&apos;ve talked to founders who say they never would have applied for a loan, but seeing it teed up in front of them changed their mind.&lt;/p&gt;&lt;p&gt;The great part is the speed. You know you qualify before you apply. The trick is prequalifying merchants based on sales data — processing volume, payment history, customer mix, seasonality — and not considering anything they wouldn&apos;t be able to know ahead of time.&lt;/p&gt;&lt;p&gt;The downside of this tight credit box is eye-popping charge-off rates: 5, 10 or even 15%. Payment processors stay ahead of these with high interest rates and fees.&lt;/p&gt;&lt;h2&gt;Large loans require data that banks don&apos;t have on-hand&lt;/h2&gt;&lt;p&gt;Meanwhile, if you need capital to buy equipment, or real estate, or otherwise expand, you&apos;re dealing with a bank, and it is not fast.&lt;/p&gt;&lt;p&gt;You are not pre-qualified. You begin a weeks-long process, uploading every excruciating detail of yours and your company&apos;s financial life, without any promise of success.&lt;/p&gt;&lt;p&gt;Why is it this way? Because underwriting these deals is hard. Every banker knows they can give back ten years of gains in one bad quarter.&lt;/p&gt;&lt;p&gt;Heterogeneity doesn&apos;t help. One week underwriters review a new site for a craft brewery, the next week a renovation at an auto body shop. Different industries have different labor markets, regulatory risks, and collateral valuations. Generally, underwriters aren&apos;t actually adjusting the ratios they&apos;re looking for by industry: instead they adjust their thresholds portfolio-wide to be on the conservative side.&lt;/p&gt;&lt;p&gt;And underwriters look at &lt;em&gt;everything&lt;/em&gt;. Tax returns, financial statements, collateral, insurance, appraisals, and comparables. This rigor mostly pays off! Charge-off rates on business loans from banks hover around 0.5%.&lt;/p&gt;&lt;p&gt;This is not a great product experience. But it doesn&apos;t have to be. Business owners looking for expansion capital don&apos;t have a better option.&lt;/p&gt;&lt;h2&gt;A better option&lt;/h2&gt;&lt;p&gt;Let&apos;s say you have a property that you rent out on Airbnb. It&apos;s going well, and you&apos;d like to expand by adding a second unit.&lt;/p&gt;&lt;p&gt;You can see why &lt;em&gt;Airbnb&apos;s payments processor&lt;/em&gt; isn&apos;t in a good position to give you this loan. They can see your payment history, but not much beyond that.&lt;/p&gt;&lt;p&gt;The local community bank may do better! However, the underwriter would have to make guesses about unfamiliar areas. And you&apos;d have to commit to the application process itself.&lt;/p&gt;&lt;p&gt;The best-positioned party to underwrite this loan is Airbnb itself. They see your reviews, cancellations, calendar; your property&apos;s location, amenities, and comparables; how often travelers search for terms it matches; how long travelers linger over photos of the picture windows.&lt;/p&gt;&lt;p&gt;This is why we think industry-specific platforms, whether they&apos;re marketplaces or vertical SaaS, are so well set up to make embedded finance plays. They have the data and distribution. They understand their customers&apos; businesses. While these loans can and will remain mostly sold, they can do most of the data collection at the pre-qualification phase. The challenge for them is finding a partner with right technology, capital, and underwriting capacity.&lt;/p&gt;&lt;p&gt;At the end of the day, the lender that can squeeze the most risk out of the portfolio &lt;em&gt;and&lt;/em&gt; win on user experience is going to run away with the show. If you&apos;re building in this space, we&apos;d love to chat! Reach out at &lt;a href=&quot;mailto:sam@increase.com&quot;&gt;sam@increase.com&lt;/a&gt;.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Sam Ballantyne</dc:creator><media:content url="https://increase.com/images/lending-fast-and-slow-hero.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Agentic commerce — the Increase perspective</title><link>https://increase.com/articles/agentic-commerce</link><guid isPermaLink="true">https://increase.com/articles/agentic-commerce</guid><description>Agents based on large language models are doing more and more for us. Empowering them to make payments on our behalf is a live frontier.</description><pubDate>Thu, 18 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Agents based on large language models are doing more and more for us. Empowering them to make payments is a live frontier.&lt;/p&gt;&lt;p&gt;Agentic commerce is often cited as the breakthrough use case for stablecoin payments. See &lt;a href=&quot;https://www.coinbase.com/developer-platform/discover/launches/agentic-commerce&quot;&gt;Why Agentic Commerce Needs Crypto to Scale&lt;/a&gt; from Coinbase. Stripe&apos;s new &lt;a href=&quot;https://www.paradigm.xyz/2025/09/tempo-payments-first-blockchain&quot;&gt;Tempo blockchain&lt;/a&gt; is built with a similar motivation.&lt;/p&gt;&lt;p&gt;At Increase, we have a boring perspective: the existing rails are best.&lt;/p&gt;&lt;h2&gt;A consumer use case&lt;/h2&gt;&lt;p&gt;I recently took a summer vacation to the Alps. ChatGPT did much of the heavy lifting in finding hikes, hotels, restaurants, and train tickets. With due affection for the rigor and thoroughness that Europeans bring to building web forms, I would have loved to have ChatGPT book everything for me. It can&apos;t today, but soon it will. And when it does, I will want it to use my existing credit cards.&lt;/p&gt;&lt;p&gt;Partly this is for the rewards and benefits; the partner-specific benefits were one criterion I asked ChatGPT to consider in its research.&lt;/p&gt;&lt;p&gt;But beyond the rewards, the biggest reason is the protection of Visa&apos;s dispute machinery. As agents become targets for scammers, I want the full dispute apparatus of the card networks behind me.&lt;/p&gt;&lt;p&gt;I expect product innovation from card issuers and acquirers here. If I were building this, I might spin up per-purchase virtual cards with a nice user-facing approval flow. Just as cards fight to be top of wallet, they&apos;ll fight to be the card you give to ChatGPT.&lt;/p&gt;&lt;h2&gt;A commercial use case&lt;/h2&gt;&lt;p&gt;Businesses of all sizes receive a large volume of invoices. Validating these is toilsome: Did we really authorize this? Is this invoice early? Is this the negotiated amount? Is someone impersonating our vendor?&lt;/p&gt;&lt;p&gt;This kind of checklist is reasonable for an agent to track down; but when it comes time to move money, they&apos;ll likely use the same payment rails the operator would in the first place. Most of the time, that&apos;s cards or bank transfers. That&apos;s where payee preferences lie, and it&apos;s where dispute protection lives.&lt;/p&gt;&lt;p&gt;By the way, this is a real use case today. Ramp is doing some amazing work around agent-powered bill pay. If this is a problem you have, we highly recommend signing up: &lt;a href=&quot;https://ramp.com/bill-pay&quot;&gt;https://ramp.com/bill-pay&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;A speculative use case&lt;/h2&gt;&lt;p&gt;Cloudflare recently &lt;a href=&quot;https://blog.cloudflare.com/introducing-pay-per-crawl/&quot;&gt;announced&lt;/a&gt; a pay-per-crawl blocker:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Imagine asking your favorite deep research program to help you synthesize the latest cancer research or a legal brief… and then giving that agent a budget to spend to acquire the best and most relevant content.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;It&apos;s early days, but intuitively this use case feels real. Today, valuable data is monetized in an all-or-none fashion designed for human readers: newspaper subscriptions, Bloomberg terminals, trade journals.&lt;/p&gt;&lt;p&gt;A potential challenge for existing rails here is cost. One could argue that stablecoins are a better fit for the market-clearing price of many of these transactions. But as with any low-dollar usage-based product, I suspect that these kinds of payments are likely to be settled in batches as part of broad commercial relationships.&lt;/p&gt;&lt;h2&gt;Wrapping up&lt;/h2&gt;&lt;p&gt;Hypotheses should be falsifiable, so here&apos;s ours: payments initiated by agents are going to skyrocket over the next two years, but the funding mix won&apos;t look much different than it does today.&lt;/p&gt;&lt;p&gt;That agentic commerce &lt;em&gt;doesn&apos;t&lt;/em&gt; require reinventing money movement is a reason we expect it to take off. The existing rails work. What matters is giving agents programmable, low-level access to them and building the dispute protections and workflows that make them usable at scale.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Sam Ballantyne</dc:creator><media:content url="https://increase.com/images/agentic-commerce-hero.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Embedding financial services in vertical software</title><link>https://increase.com/articles/vertical-saas</link><guid isPermaLink="true">https://increase.com/articles/vertical-saas</guid><description>Embedding financial services in industry-specialized software is good for customers, good for software companies, and good for banks. But to do it well, you need direct access to banking fundamentals and a willingness to understand how money actually moves.</description><pubDate>Tue, 09 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Embedding financial services in industry-specialized software is good for customers, good for software companies, and good for banks. But to do it well, you need direct access to banking fundamentals and a willingness to understand how money actually moves.&lt;/p&gt;&lt;h2&gt;Vertical software as the new distribution model&lt;/h2&gt;&lt;p&gt;Traditionally, banks have specialized by geography. A community bank knows and understands its local customers deeply. But geography isn&apos;t always the right proxy for customer needs. A dentist in Portland, OR has more in common with a dentist in Portland, ME than with a dry cleaner next door.&lt;/p&gt;&lt;p&gt;Industry specialization has always existed in banking. J.P. Morgan financed railroads. &lt;a href=&quot;https://en.wikipedia.org/wiki/Ally_Financial&quot;&gt;GMAC&lt;/a&gt; was created to finance the auto industry. What&apos;s different now is that specialization increasingly comes from software, not banks. Vertical software platforms run tailored workflows for specific industries: dentists, insurance agents, contractors, nonprofits. And because those workflows often involve money, software platforms are naturally expanding into payments, bank accounts, lending, and more.&lt;/p&gt;&lt;p&gt;Think of a software platform for beauty businesses that not only manages appointment booking, but also handles embedded payroll and tailored loans for salons and spas. Or insurance software that started with accounting flows, and now handles client invoice payments and payouts to carriers.&lt;/p&gt;&lt;h2&gt;Why payments literacy matters&lt;/h2&gt;&lt;p&gt;Can a software company really be expected to understand banking? At Increase, we think yes.&lt;/p&gt;&lt;p&gt;Not everyone on your team needs to be a payments expert, but someone should be. Just as pizza software like Slice needs someone who understands oven throughput, vertical software teams embedding payments need someone who understands settlement timing, reconciliation, and network behavior. Your product will be stronger for it.&lt;/p&gt;&lt;p&gt;The good news: the lift to access and understand payment details isn&apos;t as heavy as it once was. With Increase, those details are exposed directly to you, rather than being hidden behind layers of middleware. Our direct connections to the Federal Reserve, Visa, and The Clearing House make financial primitives programmatically accessible. You can test, monitor, and refine payments flows just like any other system that matters to your business.&lt;/p&gt;&lt;h2&gt;Building on financial primitives&lt;/h2&gt;&lt;p&gt;Embedded finance starts with financial primitives: accounts, payments, lending. They&apos;re the building blocks. What matters is assembling them for the unique needs of your industry. For example:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A property management platform building on Increase can debit rent through &lt;a href=&quot;https://status.increase.com/#ach-submission-timeline&quot;&gt;same-day ACH&lt;/a&gt; in the morning, see funds settle midday, and pay contractors seconds later via &lt;a href=&quot;https://increase.com/documentation/api/real-time-payments-transfers&quot;&gt;Real-Time Payment&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;A nonprofit software platform can assign every inbound donation its own &lt;a href=&quot;https://increase.com/documentation/api/account-numbers&quot;&gt;Account Number&lt;/a&gt;, reconciling funds automatically down to the penny.&lt;/li&gt;&lt;li&gt;An agriculture software provider can programmatically send paper checks and expose &lt;a href=&quot;https://increase.com/documentation/originating-checks#originating-checks&quot;&gt;each lifecycle event&lt;/a&gt; — printed, mailed, deposited — giving farmers the transparency they expect. With direct, low-level access, the financial system becomes flexible enough to map to the workflows you already run.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Better outcomes with no abstractions&lt;/h2&gt;&lt;p&gt;Embedding financial services inside vertical software creates better outcomes across the board. Customers get integrated, reliable workflows. Software companies unlock new revenue streams and deeper retention. And banks gain distribution into industries that would otherwise remain fragmented or underserved.&lt;/p&gt;&lt;p&gt;If you&apos;re a vertical software platform launching embedded payments or financial services, you might be tempted by abstractions that hide complexity. But we&apos;ve seen again and again that real speed, flexibility, and reliability come from building on financial primitives with &lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;no abstractions&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;That&apos;s the work we&apos;re doing at Increase: giving vertical software platforms the modern banking core they need to build financial services that are seamless, resilient, and built for the industries they serve.&lt;/p&gt;&lt;p&gt;If you&apos;re building in this space, let&apos;s talk! Reach us at &lt;a href=&quot;mailto:hello@increase.com&quot;&gt;hello@increase.com&lt;/a&gt;.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Matt Hennessy</dc:creator><media:content url="https://increase.com/images/vertical-saas-og.png" medium="image" type="image/png"/><category>Article</category></item><item><title>2025 Q2 Newsletter</title><link>https://increase.com/newsletter/q2-2025</link><guid isPermaLink="true">https://increase.com/newsletter/q2-2025</guid><description>Changes for 2025 Q2, including API event log filtering, Event page improvements, Check Transfer enhancements, and more.</description><pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;May 30, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now filter API event logs in the Dashboard by the request path.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 9, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve made a number of improvements to the Event page in the Dashboard to give you more insight across your integration. You can now filter event logs by the associated object. We&apos;ve also added an event timeline that gives you more context surrounding the event, as well as more details about the request and response lifecycle.&lt;/li&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/inbound-wire-transfers#reverse-an-inbound-wire-transfer&quot;&gt; reverse an Inbound Wire Transfer &lt;/a&gt; . This is useful if you received a duplicate wire or the recipient of the wire transfer requested the funds be returned to the sender.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 18, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now include an attachment when sending a &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt; Check Transfer &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now send a Check Transfer using FedEx Overnight by setting the &lt;a href=&quot;https://increase.com/documentation/api/check-transfers#create-a-check-transfer.physical_check.shipping_method&quot;&gt; &lt;code&gt;shipping_method&lt;/code&gt;&lt;/a&gt; parameter.&lt;/li&gt;&lt;li&gt;You can now accept requests for late ACH returns in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 4, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now add &lt;a href=&quot;https://increase.com/documentation/api/entities#entity-object.corporation.beneficial_owners.individual.address&quot;&gt; international beneficial owners &lt;/a&gt; to a corporate Entity.&lt;/li&gt;&lt;li&gt;We now surface the cardholder name and device information on &lt;a href=&quot;https://increase.com/documentation/api/digital-wallet-tokens#digital-wallet-tokens&quot;&gt; Digital Wallet Tokens &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now view Digital Wallet Tokens in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Check partners with Increase to enable reliable, transparent payroll solutions</title><link>https://increase.com/customers/check</link><guid isPermaLink="true">https://increase.com/customers/check</guid><description>Check is a leading embedded payroll infrastructure, giving businesses the ability to integrate payroll directly into their platforms. Whether those platforms are designed for coffee shops or construction companies, Check ensures their payroll operations run efficiently – supporting thousands of businesses and hundreds of thousands of employees. Their mission is to simplify payroll, making it seamless, scalable, and accessible to platforms of all shapes and sizes. However, achieving this goal requires more than functional software—it depends on having high visibility into the underlying financial networks and access to faster payment methods, areas where traditional banking partnerships can fall short.</description><pubDate>Thu, 26 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/check-thumbnail.png" medium="image" type="image/png"/><category>Customer story</category></item><item><title>Building a bill pay program</title><link>https://increase.com/documentation/bill-payment-programs</link><guid isPermaLink="true">https://increase.com/documentation/bill-payment-programs</guid><description>Learn more about what goes into building a bill pay program with Increase.</description><pubDate>Thu, 24 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;h1&gt;How to build a bill pay program with Increase&lt;/h1&gt;&lt;p&gt;Every year, platforms like Ramp use Increase to move tens of billions of dollars through bill pay flows, making it one of the most common use cases we support. In this guide, we&apos;ll walk through the high level of what building a bill pay program consists of. Increase offers low-level APIs to access payment networks in the US, following a principle we call &lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;&amp;quot;no abstractions&amp;quot;&lt;/a&gt;. As a result, there are often several ways to build a particular flow of funds with us. This article suggests best practices, but there are places where you&apos;ll want to think about what&apos;s best for your business—we&apos;ll highlight some of these decision points below.&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;Onboarding your platform to Increase&lt;/h2&gt;&lt;h3&gt;Program setup&lt;/h3&gt;&lt;p&gt;Every platform begins with a Program. This is where Increase and our bank partners work with you to define what your money movement product will do—what kinds of accounts you need, what rails you&apos;ll move money over, and how the underlying bank will treat your business. This includes Increase performing Know Your Business (KYB) checks on your company. &lt;a href=&quot;https://increase.com/documentation/compliance-overview&quot;&gt;Learn more about compliance at Increase&lt;/a&gt;&lt;/p&gt;&lt;p&gt;There’s often a few weeks of contracting at the beginning of an integration. During that time, you can build and test your integration using our sandbox environment, or in production using your own corporate funds to see how money actually moves. This lets you make technical progress in parallel, and can significantly shorten the time to launch.&lt;/p&gt;&lt;h3&gt;Opening accounts&lt;/h3&gt;&lt;p&gt;Typically, we recommend creating individual bank accounts for each of your customers. This avoids the need to build and maintain your own ledger, simplifies ownership, and gives you maximum flexibility. Account creation is synchronous and unbounded—you can create as many as you need. You can also assign each account unique account numbers for easier tracking of inbound transfers. Most platforms validate external bank accounts via Plaid or microdeposits.&lt;/p&gt;&lt;p&gt;Increase also supports commingled For Benefit Of (FBO) accounts if that’s a requirement for your business. Instead of relying on Increase&apos;s combined payments and ledgering system, you&apos;d track balances separately, and submit an independent bookkeeping ledger.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://increase.com/documentation/platform-implementation#account-structure&quot;&gt;Learn more about account structures&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;Onboarding your users&lt;/h2&gt;&lt;h3&gt;Know Your Customer (KYC)&lt;/h3&gt;&lt;p&gt;You must operate a KYC program. Increase provides primitives, not policies, and as such you are responsible for fraud and risk controls. Most platforms use a third-party provider like &lt;a href=&quot;https://www.alloy.com/&quot;&gt;Alloy&lt;/a&gt;, and integrate directly with Increase to automatically ingest those results.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://increase.com/documentation/compliance-overview&quot;&gt;Learn more about KYC requirements&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;Creating entities&lt;/h3&gt;&lt;p&gt;Once you’ve verified your customer, you’ll create an Entity in Increase to represent them. This can be a business or an individual. This is a prerequisite to account creation. You can do this using the &lt;a href=&quot;https://increase.com/documentation/api/entities#create-an-entity&quot;&gt;Create Entity API&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Collecting bank account details&lt;/h3&gt;&lt;p&gt;If users will fund payments from their own bank accounts, you’ll need to collect account and routing numbers. Many platforms use &lt;a href=&quot;https://plaid.com&quot;&gt;Plaid&lt;/a&gt; or similar providers to validate account ownership and reduce issues during onboarding.&lt;/p&gt;&lt;h3&gt;Creating accounts&lt;/h3&gt;&lt;p&gt;After onboarding the Entity, &lt;a href=&quot;https://increase.com/documentation/api/accounts#create-an-account&quot;&gt;create an account&lt;/a&gt; for the customer in Increase.&lt;/p&gt;&lt;hr&gt;&lt;h2&gt;Initiating payments&lt;/h2&gt;&lt;p&gt;Most bill pay use-cases contain the same basic funds flow: fund the bill payment (typically from the customer’s external bank account) and then disburse it into the payee’s account.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-outbound-payment.png&quot; alt=&quot;Initiating payments&quot;&gt;&lt;/p&gt;&lt;h3&gt;Fund the bill payment&lt;/h3&gt;&lt;p&gt;Most platforms use ACH debits to pull funds from customer bank accounts. With Increase this is a single API call to the &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#create-an-ach-transfer&quot;&gt;Create ACH Transfer API&lt;/a&gt;. This works well but comes with the risk of returns—for example, due to insufficient funds or revocation. When a return happens, we recommend monitoring it via our API and notifying your operations team. Our API surfaces return codes that can help you investigate. You&apos;ll decide how to handle those cases in your product experience.&lt;/p&gt;&lt;p&gt;If you want to avoid returns entirely, you can ask users to push funds in via ACH credit or wire. This slows things down but reduces operational risk.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://increase.com/documentation/fedach#overview-of-fedach&quot;&gt;Learn more about FedACH returns&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Most platforms start by funding bill payments via the customer’s external account, but some platforms issue fully-featured bank accounts via Increase from which they directly initiate payments. This can speed up money movement, reduce costs, and create opportunities to monetize funds held on-platform.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://increase.com/products/bank-accounts&quot;&gt;Learn more about creating bank accounts for your customers&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;h3&gt;Disburse the bill payment&lt;/h3&gt;&lt;p&gt;Increase can push funds over every major payment rail in the US, including ACH (same-day or next-day), wires, checks, Real-Time Payments (RTP), and Visa Direct. While ACH is the standard rail for most payments companies, your choice of payout rail may vary depending on your industry and the needs of your vendors or customers. You can fund and disburse the bill payment on different rails.&lt;/p&gt;&lt;p&gt;Some platforms allow the payor or the payee to select a faster option in exchange for a fee. For example, you might use RTP or wire transfers (which settle in seconds) instead of ACH, or send a check via FedEx instead of first-class mail.&lt;/p&gt;&lt;p&gt;As in the previous section, initiating most payments on Increase is a single API call, such as:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#create-an-ach-transfer&quot;&gt;Create an ACH Transfer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/check-transfers#create-a-check-transfer&quot;&gt;Create a Check Transfer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#create-a-wire-transfer&quot;&gt;Create a Wire Transfer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/real-time-payments-transfers#create-a-real-time-payments-transfer&quot;&gt;Create a Real-Time Payments Transfer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/card-push-transfers#create-a-card-push-transfer&quot;&gt;Create a Card Push Transfer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For platforms looking to deepen their suite of financial services, you can also issue cards as part of your bill pay solution.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://increase.com/products/cards&quot;&gt;Learn more about building a card issuing program on Increase&lt;/a&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;While many options exist, payment initiation often reduces down to a few API calls with Increase. You can see this in action with our &lt;a href=&quot;https://www.postman.com/increaseapi/increase-workspace/collection/65t18kg/sample-bill-payment-workflow-via-ach&quot;&gt;Postman collection for bill payments&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This guide is a broad overview. The specifics of your bill pay product will depend on what you&apos;re building and who you&apos;re serving. If you have questions, please reach out to support@increase.com - we’d be excited to talk to you!&lt;/p&gt;&lt;/article&gt;</content:encoded><category>Article</category></item><item><title>2025 Q1 Newsletter</title><link>https://increase.com/newsletter/q1-2025</link><guid isPermaLink="true">https://increase.com/newsletter/q1-2025</guid><description>Changes for 2025 Q1, including File Links, check deposit images, Apple Pay transaction history, and more.</description><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;March 21, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now generate an unauthenticated URL for a &lt;a href=&quot;https://increase.com/documentation/api/files&quot;&gt;File&lt;/a&gt; using &lt;a href=&quot;https://increase.com/documentation/api/file-links&quot;&gt;File Links&lt;/a&gt; . This is useful if you want to share a File with a customer, auditor, or other third party.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 21, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Deposit images from inbound checks are now viewable directly inline in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 31, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Incoming check deposits are now visible in the Dashboard.&lt;/li&gt;&lt;li&gt;Apple Pay transaction history is now available for cards in your Apple Wallet.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 10, 2025&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Declined Transactions with a &lt;a href=&quot;https://increase.com/documentation/api/declined-transactions#declined-transaction-object.source&quot;&gt; source &lt;/a&gt; of &lt;code&gt;check_decline&lt;/code&gt; now display negative amounts to better reflect the intended direction of fund flows. Please note that these transactions are informational only and do not represent actual financial messages.&lt;/li&gt;&lt;li&gt;You can now quickly create a duplicate Transfer in the Dashboard. Simply navigate to the Transfer detail view and select “Draft Duplicate” to pre-fill the Transfer details for faster entry.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>How Ascend facilitates payments and automates insurance AR/AP workflows with Increase</title><link>https://increase.com/customers/ascend</link><guid isPermaLink="true">https://increase.com/customers/ascend</guid><description>Ascend is a leading finance automation platform in the insurance industry, streamlining the entire payment lifecycle, from collection and accounting to reconciliation and disbursement. By automating these processes, Ascend helps insurance businesses simplify treasury management, eliminate repetitive, time-consuming operational tasks, and provide a better customer experience. The result is greater profitability for its customers which include leading agencies, MGAs, and insurance carriers.</description><pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/article-ascend-thumbnail.png" medium="image" type="image/png"/><category>Customer story</category></item><item><title>Compliance as code</title><link>https://increase.com/articles/compliance-as-code</link><guid isPermaLink="true">https://increase.com/articles/compliance-as-code</guid><description>As an engineer, how do you ensure that a code change doesn’t inadvertently break a compliance or legal obligation? More fundamentally, how do you even know what those obligations are? Conway’s Law tells us that compliance and engineering teams tend to operate in separate systems that rarely talk to each other. As a result, policies, procedures, and legal frameworks live in one world, while production systems live in another.</description><pubDate>Mon, 24 Feb 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;As an engineer, how do you ensure that a code change doesn&apos;t inadvertently break a compliance or legal obligation? More fundamentally, how do you even know what those obligations are?&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Conway%27s_law&quot;&gt;Conway&apos;s Law&lt;/a&gt; tells us that compliance and engineering teams tend to operate in separate systems that rarely talk to each other. As a result, policies, procedures, and legal frameworks live in one world, while production systems live in another. This disconnect creates risk—what&apos;s written in a compliance document may not reflect what actually happens in production.&lt;/p&gt;&lt;p&gt;We think there&apos;s a better way to approach this.&lt;/p&gt;&lt;p&gt;What if your application&apos;s code also helped manage its regulatory, compliance, and legal requirements? You&apos;d have a source of truth for all your obligations and encoded tests to ensure they are continuously fulfilled. This would eliminate discrepancies with outdated documents and prevent you from making a change if it would bring you out of compliance. Not only would this remove uncertainty when heading into an audit or exam, but it would essentially provide an internal automated audit function—ensuring compliance is proactive, not reactive.&lt;/p&gt;&lt;p&gt;This system is one of the many ways we&apos;re scaling compliance at Increase.&lt;/p&gt;&lt;h2&gt;How it works&lt;/h2&gt;&lt;p&gt;Our system has three concepts: Obligation Documents, Obligations, and Fulfillments.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Obligation Documents&lt;/strong&gt; define a whole regulatory or compliance framework, such as the System and Organization Controls (SOC) or Truth in Savings Act (Regulation DD). Obligation Documents live in code, not data, and define the source of truth for its obligations and audit lifecycle.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Obligations&lt;/strong&gt; represent the individual, verifiable requirements for our business. Every Obligation is associated with a parent Obligation Document—which contains many individual Obligations.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Fulfillments&lt;/strong&gt; are executable code that verify if an Obligation is met. There can be one or more Fulfillments associated with a single Obligation. Additionally, Fulfillments can take one of five implementation shapes.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-compliance-as-code-hierarchy.png&quot; alt=&quot;Obligation Document hierarchy&quot;&gt;&lt;/figure&gt;&lt;h2&gt;Types of Fulfillment&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Code Enforcement:&lt;/strong&gt; These fulfillments can sit in the test suite. For example, checking that transactions are processed in a certain order.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;State Checks:&lt;/strong&gt; These fulfillments involve checking the state of databases or external systems. For example, ensuring that all entities have verified tax IDs, financial ratios fall within acceptable ranges, or that external systems (such as firewall deny lists) are properly configured, monitored, and alerted.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Policy Enforcement:&lt;/strong&gt; These fulfillments require written policies or procedures. For example, ensuring there is a policy in place to assess third-party contractors and vendors for risk to Increase.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Manual Assurance:&lt;/strong&gt; These fulfillments verify that a named role within the company makes a regular assurance about the current state. For example, that security incidents have been examined by the Chief Information Security Officer.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;No Action:&lt;/strong&gt; Some obligations cannot be actioned by us because they require regulatory intervention. For example, conducting specific interviews. These obligations are tracked for completeness.&lt;/p&gt;&lt;h2&gt;Testing&lt;/h2&gt;&lt;p&gt;All of our Obligation Fulfillments run on our &lt;a href=&quot;https://increase.com/articles/automated-invariant-monitoring&quot;&gt;Checker framework&lt;/a&gt;, which manages the execution scheduling and handles the results in an easy to use interface.&lt;/p&gt;&lt;p&gt;The neat thing about bringing obligations into your codebase is that the source of truth for requirements lives as close to the implementation as possible.&lt;/p&gt;&lt;p&gt;Let&apos;s look at an Obligation based on a 2010 Federal Deposit Insurance Corporation (FDIC) &lt;a href=&quot;https://www.fdic.gov/news/financial-institution-letters/2010/fil10081.html&quot;&gt;order&lt;/a&gt; to address compliance issues with overdraft fees and transaction processing:&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;code_enforced_obligation(
  &amp;lt;&amp;lt;~DESCRIPTION,
    Transactions should be processed in a neutral order that avoids manipulating or structuring the processing order to maximize customer overdraft and related fees.
  DESCRIPTION
  &apos;processes ACH credits before debits&apos;
end
&lt;/pre&gt;&lt;p&gt;This is a deterministically provable statement that we can test against. In order to ensure we continuously remain in compliance, we have fulfillment code that looks like:&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;it &apos;processes ACH credits before debits&apos;, :regulations do
  account = make_account(balance: 10)
  debit_entry = make_entry(account, amount: -15)
  credit_entry = make_entry(account, amount: 20)
  FedACHEntryAllocating.run!
  expect(historical_balance_below_zero?(account)).to be_falsey
end
&lt;/pre&gt;&lt;p&gt;We therefore have a test in our codebase against our transaction processing system that enforces a certain processing order and links back to this Obligation.&lt;/p&gt;&lt;h2&gt;Bidirectional linking&lt;/h2&gt;&lt;p&gt;Often, the sub-organization building products is segmented from those interfacing with regulators and auditors. This can lead to many issues. In particular, audit requests ultimately branch out far beyond those interfacing with the auditor, either because it&apos;s unclear how an obligation is fulfilled, it&apos;s inaccessible to the working group, or the state of the system (a procedure, network diagram, access list, etc.) has shifted since the last audit.&lt;/p&gt;&lt;p&gt;A tremendous benefit of bringing regulations into code is the ability to link the source of truth (the implementation in code or policy document, for example) back to the Obligation which it fulfills.&lt;/p&gt;&lt;p&gt;This uniquely ensures that someone altering the implementation is aware of its otherwise opaque downstream impact. For example, a unit test may break that points back to the neutral transaction processing order Obligation, which gives a developer more context on why that code exists. Someone editing a policy document will see a footnote that links back to the Obligation, so they can proceed with cautious confidence.&lt;/p&gt;&lt;p&gt;The bidirectional link is also enforced by the system. A breakage in either direction notifies the team.&lt;/p&gt;&lt;h2&gt;Why compliance as code works for us&lt;/h2&gt;&lt;p&gt;For many businesses, this approach may feel too heavy-handed. Compliance automation platforms like Vanta provide powerful, accessible solutions that help companies quickly achieve and maintain compliance with standard frameworks. However, these platforms are optimized for common compliance requirements.&lt;/p&gt;&lt;p&gt;As banking infrastructure providers we, of course, adhere to common standards such as the System and Organization Controls (SOC) and Payment Card Industry Data Security Standards (PCI DSS). However, we also have bank-specific obligations, such as Regulation E (Electronic Fund Transfers), Federal Financial Institutions Examination Council (FFIEC), and Bank Secrecy Act (BSA) and additionally must comply with evolving regulatory guidance that introduces one-off obligations. These industry-specific requirements make off-the-shelf compliance solutions impractical for us.&lt;/p&gt;&lt;p&gt;Compliance as code offers a more flexible and precise way to manage our obligations. It enables our engineering and compliance teams to work from the same source of truth, fostering collaboration and mutual understanding. Engineers engage directly with regulatory guidelines, while compliance specialists can inspect and interact with the code that enforces them.&lt;/p&gt;&lt;p&gt;By embedding compliance into our development process, we ensure that regulatory requirements are continuously enforced, easily auditable, and integrated directly into our workflows — rather than maintained as a separate, manual function. This approach keeps our infrastructure both resilient and adaptable as regulations evolve.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Jamshed Vesuna</dc:creator><media:content url="https://increase.com/images/article-compliance-as-code-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Ramp launches Ramp Treasury, powered by Increase</title><link>https://increase.com/customers/ramp-treasury</link><guid isPermaLink="true">https://increase.com/customers/ramp-treasury</guid><description>Ramp is a financial operations platform that helps companies achieve more by spending less. From spend and expense management to bill payments and vendor management, Ramp’s all-in-one solution is designed to automate finance operations and help businesses grow efficiently. With the launch of the Ramp Treasury, Ramp has further expanded its suite of financial tools, offering an all-in-one cash and treasury portfolio that puts customers’ operating cash to work.</description><pubDate>Thu, 23 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/ramp-treasury-thumbnail.png" medium="image" type="image/png"/><category>Customer story</category></item><item><title>2024 Q4 Newsletter</title><link>https://increase.com/newsletter/q4-2024</link><guid isPermaLink="true">https://increase.com/newsletter/q4-2024</guid><description>Changes for 2024 Q4, including OAuth applications, lockboxes, export functionality, and more.</description><pubDate>Tue, 31 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;December 27, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now list your &lt;a href=&quot;https://increase.com/documentation/api/oauth-applications&quot;&gt; OAuth applications &lt;/a&gt; via the API.&lt;/li&gt;&lt;li&gt;You can now view the Groups connected to your OAuth Application in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 20, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view and &lt;a href=&quot;https://dashboard.increase.com/lockboxes&quot;&gt; create lockboxes &lt;/a&gt; directly from the Dashboard. Lockboxes provide virtual addresses for receiving checks, which are automatically deposited into their designated accounts upon arrival.&lt;/li&gt;&lt;li&gt;You can now export filtered data from tables in the Dashboard. Additionally, when reviewing your &lt;a href=&quot;https://dashboard.increase.com/documents/exports?status=complete&amp;amp;status=pending&amp;amp;creator=me&quot;&gt; list of exports &lt;/a&gt; , you can easily return to the original filtered data.&lt;/li&gt;&lt;li&gt;Inbound check deposits can now be declined through the Dashboard within one hour of their deposit.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 16, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now filter objects in the dashboard by &lt;code&gt;created_at&lt;/code&gt; date.&lt;/li&gt;&lt;li&gt;Cashback earned on individual card transactions is now visible in both the Dashboard and &lt;a href=&quot;https://increase.com/documentation/api/card-payments#card-payment-object.elements.card_settlement.cashback&quot;&gt; the API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;When exporting data from the Dashboard, you can more easily monitor the export status and retroactively view the specific data that was exported.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 6, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Payee information is now extracted from deposited check images for your initiated Check Transfers using Optical Character Recognition (OCR). This data helps mitigate fraud and supports informed accept or decline decisions. Contact support if you&apos;d like to try this feature.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 2, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now quickly generate test data in Sandbox directly from the Dashboard. If no transactions have been created in your Sandbox environment, you’ll see an alert that lets you populate it with sample data, including a variety of transfers, account numbers, and a card with a settled authorization.&lt;/li&gt;&lt;li&gt;The stand-in processing reason for card declines is now &lt;a href=&quot;https://increase.com/documentation/api/card-payments#card-payment-object.elements.card_decline.network_details.visa.stand_in_processing_reason&quot;&gt; available &lt;/a&gt; under &lt;code&gt;network_details.visa.stand_in_processing_reason&lt;/code&gt; .&lt;/li&gt;&lt;li&gt;You will now receive emails for all transfers requiring approval. By default, all Owners, Administrators, and Finance Managers will be notified. However, you can update these email preferences at any time in &lt;a href=&quot;https://dashboard.increase.com/settings/general&quot;&gt; Settings &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 15, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Sandbox simulations for creating an Inbound ACH Transfer, depositing a mailed Check Transfer, creating a Card Authorization, and settling a Card Authorization can be used from the Dashboard.&lt;/li&gt;&lt;li&gt;Sandbox simulations now support Idempotency Keys (except Card Authorization simulations).&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>ISO 8583: The language of credit cards</title><link>https://increase.com/articles/iso-8583-the-language-of-credit-cards</link><guid isPermaLink="true">https://increase.com/articles/iso-8583-the-language-of-credit-cards</guid><description>ISO 8583 is the standard for real-time messages communicated between acquirers and issuers through all of the major card networks. Whenever you tap your card at a point of sale device or click “purchase” online, odds are it will eventually end up as an ISO 8583 message sent between the merchant’s acquiring processor, the card network, and your bank’s issuer processor.</description><pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;a href=&quot;https://www.iso.org/standard/79451.html&quot;&gt;ISO 8583&lt;/a&gt; is the standard for real-time messages communicated between acquirers and issuers through all of the major card networks. Whenever you tap your card at a point of sale device or click &amp;quot;purchase&amp;quot; online, odds are it will eventually end up as an ISO 8583 message sent between the merchant&apos;s acquiring processor, the card network, and your bank&apos;s issuer processor. Early on, the point of sale device or the ATM might have built and sent the ISO 8583 message directly to the acquirer, but in today&apos;s ecommerce environment messages typically pass from the merchant to a payment processor in higher-level formats, such as JSON, which then in turn are translated to the card network&apos;s ISO 8583-based format. This approach simplifies the process by abstracting away the complexity of the ISO 8583 format from the rest of the payments ecosystem.&lt;/p&gt;&lt;p&gt;When the standard was first defined in 1987, it included the overall structure of the message specification and the names and lengths of the core fields, such as the card number (&amp;quot;primary account number&amp;quot;) in field 2 and the transaction amount in field 4. The message began with a 4-digit Message Type Indicator code representing whether it was an authorization message, a reversal, or some other message type. This was followed by a bitmap that told the recipient which fields were present. It left room for a few fields that could be used by networks to include network-specific information, and as a result the various card network specifications quickly diverged through a series of nested fields that did not overlap at all. &lt;a href=&quot;https://standards.iso.org/iso/8583/ed-3/en/&quot;&gt;Later versions&lt;/a&gt; of the standard greatly increased the number of fields, reducing the need for network-specific behavior for new implementations. Specifications like Visa&apos;s &lt;a href=&quot;https://corporate.visa.com/content/dam/VCOM/download/corporate/media/visanet-technology/visa-net-booklet.pdf&quot;&gt;Base I&lt;/a&gt; have thousands of clients running on everything from mainframes to devices like ATMs, however, making sweeping backwards incompatible changes next to impossible. As a result, these specifications still largely follow the rules set forth by the original standard from 1987.&lt;/p&gt;&lt;p&gt;The standard also allowed flexibility in how each field was serialized. For instance, networks could choose to use &lt;a href=&quot;https://en.wikipedia.org/wiki/EBCDIC&quot;&gt;EBCDIC&lt;/a&gt;—the 8-bit encoding scheme favored by mainframes—for all fields, or opt for packed &lt;a href=&quot;https://en.wikipedia.org/wiki/Binary-coded_decimal&quot;&gt;BCD&lt;/a&gt; to save space in numeric fields wherever possible. This made the specifications defined by each network, such as Visa, Mastercard, and Discover, eventually evolve to have more differences than similarities.&lt;/p&gt;&lt;p&gt;Throughout this article we&apos;ll explore the basic structure of the ISO 8583 format before delving into its more complex nested sub-fields. In the end we&apos;ll look at how you might define an ISO 8583 parser in code, grounded in how we process card transactions as an issuer processor connected directly to networks like VisaNet here at Increase.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-file.png&quot; alt=&quot;ISO 8583 file structure&quot;&gt;&lt;/figure&gt;&lt;h1&gt;Basic format&lt;/h1&gt;&lt;p&gt;ISO 8583 messages can only be transmitted and received by parties with a shared specification detailing exactly which fields are present and in what positions. ISO 8583 messages, similar to other storage-efficient formats and unlike a more verbose format like JSON, carry only values and no field names. A basic message contains a &amp;quot;message type indicator&amp;quot; describing what type of message is sent, a bitmap explaining which fields are present, and the fields themselves.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-basic-format.png&quot; alt=&quot;ISO 8583 basic format&quot;&gt;&lt;/figure&gt;&lt;h2&gt;Message Type Indicator&lt;/h2&gt;&lt;p&gt;The message type indicator is a four-digit code that informs the receiver of the type of message being sent, such as an authorization message or a reversal. This tells the recipient which fields to expect to be present and not present in the message. While the specification defines a standard set of values—e.g., &lt;code&gt;0100&lt;/code&gt; for an authorization request and &lt;code&gt;0110&lt;/code&gt; for an authorization response—some networks deviate from these values and retain only the general concept. The way the indicator is serialized also varies between networks. Some networks use packed BCD to reduce its size to 2 bytes, while others use simpler formats like an ASCII or EBCDIC 4-byte value.&lt;/p&gt;&lt;h2&gt;Bitmap&lt;/h2&gt;&lt;p&gt;Most of the fields in an ISO 8583 message are optional, requiring the sender to convey which fields are present and which are missing. This is done with a bitmap, where each bit is set to 1 if the field is present and 0 if it is not. For example, &lt;code&gt;0110 1100&lt;/code&gt; in the first byte of the bitmap communicate that fields 2, 3, 5, and 6 are present. The first bit in the first byte is reserved for communicating whether a second 8-byte bitmap is included, required when more than 64 fields are present. Similar to the Message Type Indicator, how the bitmap itself is serialized varies from network to network: hex, binary, ASCII, or EBCDIC are all possible choices.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-bitmap.png&quot; alt=&quot;ISO 8583 bitmap&quot;&gt;&lt;/figure&gt;&lt;h2&gt;Data elements&lt;/h2&gt;&lt;p&gt;Following the bitmap, the sender serializes each present field in sequential order. Fields can be either primitive, containing a single value such as a string or an integer, or complex, containing nested fields within them. The serialization of primitive fields typically involves a combination of the factors enumerated below.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Encoding&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Even for networks that prefer ASCII for their free-text fields, a serialized ISO 8583 message is usually not fully readable in plaintext, as the encoding of each field varies based on the type of field. There are generally a few options:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/EBCDIC&quot;&gt;EBCDIC&lt;/a&gt; or ASCII: Typically used for freeform text but sometimes preferred for all fields, regardless of content. Some networks support both EBCDIC and ASCII and translate between the formats according to their participants&apos; preferences. The major networks usually default to EBCDIC, as this was the encoding of choice for IBM mainframes when the networks were first built.&lt;/li&gt;&lt;li&gt;Packed &lt;a href=&quot;https://en.wikipedia.org/wiki/Binary-coded_decimal&quot;&gt;BCD&lt;/a&gt;: Often used for integers, with each digit occupying 4 bits. This encoding aligns with the 0-9 subset of hexadecimal, making it space-efficient for numerical data.&lt;/li&gt;&lt;li&gt;Binary: Occasionally used for fixed length integers, encoded as 1 or 2 byte values in either little-endian or big-endian format, depending on the system&apos;s requirements.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Variable or fixed length&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A fixed length field always takes up the same number of bytes and padding is necessary to make sure the field fills its entire length. For example, amount fields are often 12 digits, right-justified, and padded with zeros—&lt;code&gt;000000002412&lt;/code&gt; represents $24.12. Variable length fields are preceded by a length prefix, so no padding is necessary, as the receiver first decodes the length indicator and then uses that to know how many bytes to extract for the field itself.&lt;/p&gt;&lt;p&gt;How a variable length indicator is encoded also depends on the content of the field itself: a numeric Acquiring Institution ID might for example be encoded as packed BCD, where 12 digits is encoded in 6 bytes, but the length indicator would still state the number of digits, 12, and not the number of bytes, 6. This creates an interesting situation for odd-length integers. Take the number &lt;code&gt;123&lt;/code&gt; as an example: when serialized, it becomes the byte array &lt;code&gt;[1, 35]&lt;/code&gt;, represented in binary as &lt;code&gt;00000001 00100011&lt;/code&gt;. When we roundtrip this back, we end up with the value &lt;code&gt;0123&lt;/code&gt; as we&apos;re not able to differentiate between a &lt;code&gt;0&lt;/code&gt; in the first nibble (half byte) and the padding-zero we used for &lt;code&gt;123&lt;/code&gt;. As such, it is necessary to incorporate the length indicator, which tells our encoder that the actual value length is supposed to be 3 digits so that we can trim away the first padding-zero.&lt;/p&gt;&lt;h1&gt;Nested messages&lt;/h1&gt;&lt;p&gt;While the standard defines core fields such as &amp;quot;transaction amount&amp;quot; and &amp;quot;merchant identifier,&amp;quot; the list of pre-defined fields in the &lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_8583#ISO-defined_data_elements_%28ver_1987%29&quot;&gt;original standard&lt;/a&gt; eventually became a limiting factor for card network feature development. To address this, the standard reserved certain &amp;quot;private use&amp;quot; fields that card networks could utilize to serialize custom data as needed. This is where the specifications really started to differ between networks, both in the data they chose to communicate but also in how each nested field was serialized. The original standard provided limited guidance on this topic, an oversight that later versions sought to address.&lt;/p&gt;&lt;p&gt;There are generally three main ways to serialize a nested message:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Tables: Each field is usually of fixed length and is always included, either with its actual value or replaced by a default placeholder value if empty.&lt;/li&gt;&lt;li&gt;Nested bitmap messages: Only present fields are serialized, using a simplified, fixed-length version of the top-level bitmap to indicate field presence.&lt;/li&gt;&lt;li&gt;Tag Length Value (TLV) messages: Each field is serialized as a tuple containing the field number (&amp;quot;tag&amp;quot;), the length of the field, and the field value. This format is defined by a separate standard, &lt;a href=&quot;https://www.iso.org/standard/81420.html&quot;&gt;ISO 8825&lt;/a&gt;, which outlines the encoding rules from &lt;a href=&quot;https://en.wikipedia.org/wiki/ASN.1&quot;&gt;ASN.1&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;How common each nested message type is varies from network to network. You might see American Express heavily use tables, while only Visa and China UnionPay make use of nested bitmap messages. Mastercard primarily sticks to Tag Length Value messages, a direction in which most of the card networks are slowly moving towards for all their new sub-fields.&lt;/p&gt;&lt;h2&gt;Tables&lt;/h2&gt;&lt;p&gt;The original nested message element is both the simplest and the most complex. In its simplest form, each sub-field is serialized sequentially, with no fields omitted, always resulting in a fixed number of bytes. This works fine for basic tables with a low number of fields but resulted in space inefficiencies for tables with a larger number of optional fields by having to send unnecessary padding characters for fields that were rarely present. Attempts to tweak the format to better support this and other scenarios introduced significant complexity, where the implementers would have likely been better off with a completely different sub-message type altogether.&lt;/p&gt;&lt;p&gt;This evolution reflects a common pattern in software development, where an implementation starts off as simple but gradually grows in complexity as extensions are added. In the end you&apos;re left with a solution that is more complicated to implement for clients than what a new and separate concept altogether would have been.&lt;/p&gt;&lt;p&gt;We can see the basic table format at display in one of the original fields, field 43 &lt;em&gt;Card Acceptor[^0] Name or Location&lt;/em&gt;:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-basic-tables.png&quot; alt=&quot;ISO 8583 basic tables&quot;&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Variable tables&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Each table takes up a predefined number of bytes and is always present, as receivers expect to parse each field in order. To omit the city name in the example above we would instead fill it with 13 spaces, resulting in the same overall size of 40 bytes. This is an inefficient approach if the city name is frequently omitted, forcing participants to transmit empty spaces to indicate the absence of data. Instead, in cases where a number of the sub-fields in a table are optional, implementations might let the sender omit sub-fields as long as they omit all the subsequent sub-fields in the table. Referring to the sub-fields in the example below as A, B, and C, you would be able to send the combinations of: only A, only A and B, or A, B, and C altogether. This type of &amp;quot;telescoping&amp;quot; is only possible when the table is preceded by a variable length indicator, communicating to the recipient how many bytes they should expect to read for the field, such as 25 bytes (A), 38 bytes (A + B), or 40 bytes (A + B + C).&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-telescoping-tables.png&quot; alt=&quot;ISO 8583 telescoping tables&quot;&gt;&lt;/figure&gt;&lt;p&gt;This concept is also used to nest sub-messages within sub-messages, as shown in the &lt;em&gt;Additional Amounts&lt;/em&gt; field below, where we can serialize up to 6 additional amounts of 20 bytes each:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-nested-tables.png&quot; alt=&quot;ISO 8583 nested tables&quot;&gt;&lt;/figure&gt;&lt;p&gt;A similar extension happens when we want to support having one of the sub-fields take up a variable amount of space. Going back to our &lt;em&gt;Card Acceptor Name or Location&lt;/em&gt; table, if we wanted to support a card acceptor name sub-field of up to 200 characters, the original approach would require all participants to pad the value with spaces up to the maximum length of 200 characters. This method, while functional, is inefficient for a standard that greatly values its frugal use of space.&lt;/p&gt;&lt;p&gt;To address this, some networks solve the issue for fields like addresses by placing the variable-length sub-field at the end of the table. This allows the receiver to simply read the remainder of the field without requiring padding, effectively eliminating unnecessary overhead. This method only allows a single variable length sub-field per table, however.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-tables-variable-sub-field.png&quot; alt=&quot;Variable sub-field table&quot;&gt;&lt;/figure&gt;&lt;p&gt;&lt;strong&gt;Nibble tables&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Some tables consist entirely of numeric fields encoded with packed BCD. This is the case with Visa&apos;s &lt;em&gt;Additional Point of Sale Information&lt;/em&gt; field, where most of the fields only consist of single-digit enums. If we were to serialize these as usual, we would end up with an entire byte for each separate field, with the first 4 bits of each byte wasted on zeros. &amp;quot;Obviously&amp;quot; an egregious inefficiency, the specification instead defines that each single-digit field should occupy only one nibble, or half a byte.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-nibble-tables.png&quot; alt=&quot;ISO 8583 nibble tables&quot;&gt;&lt;/figure&gt;&lt;p&gt;Serialized, this would look like:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Byte 1: &lt;em&gt;terminal type&lt;/em&gt; for the first 4 bits, &lt;em&gt;terminal entry capability&lt;/em&gt; for the last 4 bits&lt;/li&gt;&lt;li&gt;Byte 2: &lt;em&gt;chip condition code&lt;/em&gt; for the first 4 bits, &lt;em&gt;special condition indicator&lt;/em&gt; for the last 4&lt;/li&gt;&lt;li&gt;…and so on.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Nested bitmap messages&lt;/h2&gt;&lt;p&gt;Most of the complexity discussed earlier comes from trying to omit certain sub-fields without having to waste space on empty characters to communicate that a field has been omitted. A nested bitmap message solves this problem by including a bitmap before the elements, communicating to the recipient which fields are present and which are omitted. This is identical to how the top-level message itself is serialized, with the distinction that nested sub-level message bitmaps are generally shorter and of fixed length (e.g., 8 bytes to allow 64 bits/fields).&lt;/p&gt;&lt;p&gt;This is an improvement over tables in that it eliminates the need to serialize empty values entirely, saving space and simplifying the interpretation of fields. There is no ambiguity about whether an empty value indicates omission or carries an actual value (e.g., a zero amount).&lt;/p&gt;&lt;p&gt;It is also an improvement in retaining backward compatibility. For example, you could write a parser where you ignore any new bitmap fields that you&apos;ve yet to implement, allowing networks to add new fields up to the maximum capacity of the bitmap (e.g., 64 fields for 8 bytes). However, this is generally not how the networks operate, as the addition of a new field is considered a significant change that requires advance notice to clients.&lt;/p&gt;&lt;h2&gt;Tag-length value messages&lt;/h2&gt;&lt;p&gt;Later versions of the ISO 8583 standard incorporated parts of a separate standard altogether, &lt;a href=&quot;https://www.iso.org/standard/81420.html&quot;&gt;ISO 8825&lt;/a&gt;, for use in nested sub-messages. This approach is so robust that it completely removes the need for other nested message types like tables and bitmap messages. In this format, each field is serialized as a tuple consisting of a tag, the length of the field, and the field value itself. Similar to the nested bitmap messages this lets the sender omit any missing fields as the recipient can rely on the tag component to identify which sub-field is being parsed.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-tlv.png&quot; alt=&quot;ISO 8583 tag-length-value&quot;&gt;&lt;/figure&gt;&lt;p&gt;The TLV format is, unlike the other two message formats we&apos;ve looked at, unordered. While the tags are defined in a specific order in the specification, the sender can choose to serialize each tag-length-value tuple however they want without causing issues for the recipient. This would not work for the nested bitmap field, where the recipient reads the bitmap to see which fields (e.g., field 1, 3, and 5) are present and then expects the corresponding data to follow in that order. A tag-length-value parser, on the other hand, would read the tag first and use that to know which field is being parsed.&lt;/p&gt;&lt;p&gt;Tag-length value parsers are slightly more involved to implement but offer the most flexibility for networks: participants are expected to handle new sub-fields gracefully.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tag and length formatting&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Both the tag and length components are encoded in a way where the recipient can determine how many bytes are used for each component from the value of the initial byte. The tag, for example, only sets the last 5 bits in the first byte if a subsequent byte is necessary.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Hierarchy&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Generally tag-length value messages are structured as two layers of messages: the top level is called a &amp;quot;dataset&amp;quot; where the number of bytes used by the tag and length components are fixed, while the lower level of tag-length value fields rely on the variable format for both the tag and length indicators. This provides ample room for adding more fields.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-hierarchy.png&quot; alt=&quot;ISO 8583 hierarchy&quot;&gt;&lt;/figure&gt;&lt;h1&gt;Framing&lt;/h1&gt;&lt;p&gt;ISO 8583 messages are generally sent over long-lived TCP sockets, as described in &lt;a href=&quot;https://increase.com/articles/visa-redundancy&quot;&gt;&amp;quot;Visa: half a century of high availability&amp;quot;&lt;/a&gt;. As such, there needs to be a layer of framing around the messages so that the recipient knows where one ISO 8583 message ends and another begins in a stream of TCP packets. This is usually done with a simple length indicator, preceding the ISO 8583 message with a 4-byte indicator that informs the recipient of how many bytes they should read for the ISO 8583 message itself.&lt;/p&gt;&lt;h2&gt;Network-specific header&lt;/h2&gt;&lt;p&gt;Some of the card networks, such as Visa, also include a header between the framing Message Length Header and the ISO 8583 message itself. This generally consists of meta information about the message itself, such as where it was sent from and where it is to be delivered, and whether the network rejected it with any errors.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-framing.png&quot; alt=&quot;ISO 8583 framing&quot;&gt;&lt;/figure&gt;&lt;h1&gt;Building parsers&lt;/h1&gt;&lt;p&gt;Parsing a basic ISO 8583 message is straightforward and generally only requires the implementation of a bitmap parser and a length definition for each field to be able to handle the primitive elements at the top level. A lot of the complexity comes from correctly handling the various types of nested sub-messages and the subtle differences between each card network&apos;s implementation. A useful technique for tackling this complexity is to define the core building blocks needed to declaratively compose a message, as opposed to imperatively implementing each of the different field types on their own.&lt;/p&gt;&lt;p&gt;At Increase we write Ruby and make heavy use of the &lt;a href=&quot;https://sorbet.org/&quot;&gt;Sorbet&lt;/a&gt; type system. As such we define our ISO 8583 parsers with &lt;code&gt;T::Struct&lt;/code&gt; classes from Sorbet, which gives us a type-safe message class after parsing.&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;class Message &amp;lt; T::Struct
  const :primary_account_number,
      T.nilable(String),
      extra:
        Field.build(
          message: Field::Message::Bitmap.new(index: 2),
          encoding: Field::Encoding::BCD,
          length:
            Field::Length::Variable.new(
              bytes: Field::Length::Variable::Bytes::ONE,
              encoding: Field::Encoding::BINARY,
            ),
        )

  const :processing_code,
        T.nilable(ProcessingCode),
        extra:
          Field.build(
            message: Field::Message::Bitmap.new(index: 3),
            length: Field::Length::Fixed.new(size: 3),
          )

  const :amount_transaction,
        T.nilable(Integer),
        extra:
          Field.build(
            message: Field::Message::Bitmap.new(index: 4),
            encoding: Field::Encoding::BCD,
            length: Field::Length::Fixed.new(size: 12),
          )

    const :transmission_date_and_time,
        T.nilable(Time),
        extra:
          Field.build(
            message: Field::Message::Bitmap.new(index: 7),
            transform: Field::Transform::Time.new(format: &apos;%m%d%H%M%S&apos;),
            length: Field::Length::Fixed.new(size: 10),
            encoding: Field::Encoding::BCD,
          )

  const :response_code,
        T.nilable(ResponseCode),
        extra:
          Field.build(
            message: Field::Message::Bitmap.new(index: 39),
            encoding: Field::Encoding::EBCDIC,
            length: Field::Length::Fixed.new(size: 2),
          )
end
&lt;/pre&gt;&lt;p&gt;This makes it easy to map from the specifications provided by the card networks to a declarative parser implementation. It is useful to try to define sane defaults—a fixed-length &lt;code&gt;Integer&lt;/code&gt; type is by default right-justified and padded with zeros, but if you needed to override it you could do so:&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;const :amount_settlement,
  T.nilable(Integer),
  extra:
    Field.build(
      message: Field::Message::Bitmap.new(index: 5),
      encoding: Field::Encoding::BCD,
      length: Field::Length::Fixed.new(size: 12),
      padding:
        Field::Padding.new(
          character: Field::Padding::Character::SPACE,
          justification: Field::Padding::Justification::LEFT,
        ),
    )
&lt;/pre&gt;&lt;p&gt;Similarly, we define nested sub-messages with other &lt;code&gt;T::Struct&lt;/code&gt;s and leave room for configuration where functionality deviates from network to network:&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;class VerificationAndTokenData &amp;lt; T::Struct
  sig { override.returns(MessageTransform[VerificationAndTokenData]) }
  def self.transform
    TagLengthValue::MessageTransform.new(
      struct_class: self,
      tag_transform:
        TagLengthValue::FixedTagTransform.new(
          bytes: TagLengthValue::FixedTagTransform::Bytes::ONE,
        ),
      length_transform:
        TagLengthValue::FixedLengthTransform.new(
          bytes: TagLengthValue::FixedLengthTransform::Bytes::TWO,
        ),
    )
  end

  class VerificationData &amp;lt; T::Struct
    sig { override.returns(MessageTransform[VerificationData]) }
    def self.transform
      TagLengthValue::MessageTransform.new(
        struct_class: self,
        tag_transform: TagLengthValue::VariableTagTransform.new,
        length_transform: TagLengthValue::VariableLengthTransform.new,
      )
    end

    const :postal_code,
          T.nilable(String),
          extra:
            Field.build(
              encoding: Field::Encoding::EBCDIC,
              message: Field::Message::TagLengthValue.new(tag: 0xC0),
            )

    const :street_address,
          T.nilable(String),
          extra:
            Field.build(
              encoding: Field::Encoding::EBCDIC,
              message: Field::Message::TagLengthValue.new(tag: 0xCF),
            )
  end

  const :verification_data,
        T.nilable(VerificationData),
        extra:
          Field.build(
            message: Field::Message::TagLengthValue.new(tag: 0x66),

  # ...

  const :missing_tags, T.nilable(T::Hash[String, String]), default: {}
end
&lt;/pre&gt;&lt;h2&gt;Error handling&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;missing_tags&lt;/code&gt; fields in the tag-length-value messages above store a hash map of any tags we&apos;ve yet to implement and ensure that messages still round-trip correctly without blowing up for new tags. This type of future-proofing is generally only required for tag-length-value messages, but gracefully handling local errors in sub-messages is a useful concept to apply to the rest of the parser as well. While the card networks do validate the overall format of the message, there is lots of room for subtle errors that do not result in rejections at the network level.&lt;/p&gt;&lt;p&gt;This makes graceful error handling especially crucial for issuer processors, who receive authorization requests from a large number of acquirers across the world. Failing to parse one of these messages means a decline for your cardholder, an especially frustrating experience when you&apos;re trying to pay for a bill in person. It is also a useful concept for acquiring processors, however, where you often end up seeing incompliant sub-fields in the responses to your messages.&lt;/p&gt;&lt;p&gt;To gracefully handle errors in nested sub-fields you partition the byte stream you&apos;re parsing such that you can continue handling the next field if an error happens in the field before. Take the &lt;em&gt;Additional Point of Sale Information&lt;/em&gt; table from earlier as an example: each of these fields are enumerations, and you might wish to map them to an enumeration in your programming language instead of dealing with the raw network values (usually integers). If you do so you will eventually see an enumeration you have yet to handle, at which point your parser should be able to record it as a partial error and continue with the next field.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-error-nibble.png&quot; alt=&quot;ISO 8583 error in nibble table&quot;&gt;&lt;/figure&gt;&lt;p&gt;An important nuance to keep in mind here is that we still need to ensure that we serialize the table back to a reasonable value (often called round-tripping), especially if it&apos;s a table the sender expects to receive mirrored back in the response. Simply omitting the value you failed to parse altogether would result in a shorter overall length for the table, and so you&apos;ll need to either replace the unknown value with a placeholder—such as a space or a zero, depending on the content—or keep hold of the raw value you were unable to parse to put it back in the message afterwards.&lt;/p&gt;&lt;p&gt;Moving up one level you can follow a similar principle for an entire sub-message itself. If we&apos;ve parsed two fields in a tag-length-value message correctly but then reach an error trying to interpret the length indicator of the next tag, we&apos;ll need to throw out the rest of the sub-message and keep what we parsed so far, even if it means potentially throwing away sub-fields that would&apos;ve followed after the faulty length indicator.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-error-subfield.png&quot; alt=&quot;ISO 8583 error in subfield&quot;&gt;&lt;/figure&gt;&lt;p&gt;Finally, at the very top level there are errors that we just can&apos;t recover from. If we fail to parse the length indicator for one of the top-level fields we&apos;ll have no way to parse the rest of the message and it is likely critical enough that we shouldn&apos;t attempt to use what we have so far. This is the type of decision you want to make for every part of your parser that can possibly fail—have we reached a fatal point of no return or is there a way we can gracefully continue to parse the rest of the message, despite the error we just experienced?&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-iso8583-error-header.png&quot; alt=&quot;ISO 8583 error in header&quot;&gt;&lt;/figure&gt;&lt;h1&gt;Conclusion&lt;/h1&gt;&lt;p&gt;Throughout this article we&apos;ve looked at some of the interesting intricacies that arise when parsing ISO 8583 messages, and discussed how they came to be from the initial ISO 8583 standard defined in 1987. When you use Increase for &lt;a href=&quot;https://increase.com/products/cards&quot;&gt;Programmatic Card Processing&lt;/a&gt; we take care of parsing the card network messages for you so that you can focus on building your product. We do so in a way that avoids hiding or obfuscating details, as described in our &lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;&amp;quot;No Abstractions: an Increase API design principle&amp;quot;&lt;/a&gt; blog post. If this approach resonates with you, &lt;a href=&quot;https://increase.com/contact&quot;&gt;contact our sales team&lt;/a&gt; to talk about using Increase as your issuer processor, or check out our &lt;a href=&quot;https://increase.com/documentation/card-payment-lifecycle&quot;&gt;API documentation&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;[^0]: Card Acceptor is usually synonymous with merchant: an entity that accepts cards for payments.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Martin Ek</dc:creator><media:content url="https://increase.com/images/article-iso-8583-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Cash reconciliation: Aligning transaction activity with the Federal Reserve&apos;s data</title><link>https://increase.com/articles/cash-reconciliation</link><guid isPermaLink="true">https://increase.com/articles/cash-reconciliation</guid><description>Increase operates as a parallel core for our bank partners. We connect directly to the Federal Reserve and process wires, ACH transfers, and checks using a dedicated routing number. An important associated responsibility is to reconcile the activity in our systems with the cash movement at the Federal Reserve.</description><pubDate>Thu, 21 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Increase operates as a &lt;a href=&quot;https://increase.com/articles/modernized-banking-core&quot;&gt;parallel core&lt;/a&gt; for our bank partners. We connect directly to the Federal Reserve and process wires, ACH transfers, and checks using a dedicated routing number. An important associated responsibility is to reconcile the activity in our systems with the cash movement at the Federal Reserve.&lt;/p&gt;&lt;p&gt;While banks are responsible for ledgering the activity of their customers, the Federal Reserve is the source of truth on where dollars &lt;em&gt;actually sit&lt;/em&gt;. Ensuring precise reconciliation between bank records and the Federal Reserve&apos;s data is essential to maintain a clear and accurate view of customer funds. Each day, we compare reports provided by the Federal Reserve with our independently generated expectations of those reports to ensure alignment.&lt;/p&gt;&lt;h2&gt;Federal Reserve Accounts&lt;/h2&gt;&lt;p&gt;Every chartered financial institution is &lt;a href=&quot;https://www.federalreserve.gov/monetarypolicy/reserve-maintenance-manual-account-structure.htm&quot;&gt;eligible for an account&lt;/a&gt; at their regional Federal Reserve Bank. In many ways, this account is just like any other bank account. There&apos;s an account number (generally the bank&apos;s main routing number), an interest rate (the &lt;a href=&quot;https://www.federalreserve.gov/monetarypolicy/reserve-balances.htm&quot;&gt;Interest on Reserve Balances&lt;/a&gt;), an API (ACH, wires, etc), a web interface, and statements. The Federal Reserve makes these statements available in a machine-readable file they call &lt;a href=&quot;https://www.frbservices.org/resources/financial-services/accounting/rules-regulations.html&quot;&gt;Financial Institution Reconcilement Data&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This file has detailed information about debits and credits posting to the account. If a bank has multiple routing numbers, the Financial Institution Reconcilement Data separates activity by routing number. There are many different transaction codes, ranging from &lt;code&gt;10010&lt;/code&gt; (&amp;quot;Transfer of Funds&amp;quot;, used for wires), to &lt;code&gt;63010&lt;/code&gt; (&amp;quot;Coin Transaction&amp;quot;), to &lt;code&gt;84710&lt;/code&gt; (&amp;quot;Dodd Frank Assessment Fee&amp;quot;)—you can &lt;a href=&quot;https://www.frbservices.org/binaries/content/assets/crsocms/resources/rules-regulations/amg-appendix-b-092923.xlsx&quot;&gt;download a full list of transaction codes&lt;/a&gt; from the Federal Reserve.&lt;/p&gt;&lt;h2&gt;Expectations&lt;/h2&gt;&lt;p&gt;To support reconciling Increase activity to this Financial Institution Reconcilement Data, we generate what we call an &amp;quot;Expected Cash Transaction Contribution&amp;quot; whenever something happens in our system that we expect to contribute to some cash transaction. We check daily that our expectations match the actual reality of the Federal Reserve reporting in both directions:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;All expectations correspond to reported cash movement&lt;/li&gt;&lt;li&gt;All reported cash movement corresponds to expectations&lt;/li&gt;&lt;/ul&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-cash-reconciliation-flow.png&quot; alt=&quot;Cash reconciliation flow&quot;&gt;&lt;/figure&gt;&lt;p&gt;This means that our code needs to deeply understand and model how the Federal Reserve works to generate expectations that can later be matched to the actual reporting. For wires, this is straightforward: there is one Financial Institution Reconcilement Data (FIRD) transaction for each incoming / outgoing wire. This transaction includes the wire&apos;s Input Message Accountability Data (&lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#wire-transfer-object.submission.input_message_accountability_data&quot;&gt;IMAD&lt;/a&gt;), which uniquely identifies it. We generate an expectation including the IMAD that is later matched to the actual reporting through a point-lookup.&lt;/p&gt;&lt;p&gt;Things are substantially more complicated for ACH. Whereas there is one FIRD transaction per wire, for ACH the reported transactions are aggregates of many underlying ACH entries, and not just a single aggregate. The FIRD transaction an ACH entry will end up contributing to depends on multiple factors.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Whether the entry was a credit or debit&lt;/li&gt;&lt;li&gt;Whether the entry was a forward or return&lt;/li&gt;&lt;li&gt;Whether the entry was originated or received&lt;/li&gt;&lt;li&gt;Whether the entry was same-day or future-dated&lt;/li&gt;&lt;li&gt;The specific same-day window it settled in or the date the entry was processed (for a future-dated entry). &amp;quot;Date&amp;quot; here—of course—referring not to a calendar date in Eastern Time or UTC but rather an &amp;quot;ACH–date&amp;quot; which runs 2:15AM Eastern Time to 2:15AM Eastern Time.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Our logic that generates expectations considers all this. We reconcile an ACH FIRD transaction by finding the many expected contributions that correspond to it, adding up their amounts, and making sure the sum matches the aggregated amount reported by the Federal Reserve.&lt;/p&gt;&lt;p&gt;The complexity of the Federal Reserve&apos;s check settlement service, Check 21, is somewhere between ACH and wires. There are fewer transaction codes — 4 rather than 26. But we need to account for edge cases in how the same-day funds availability cutoffs are defined. For example, there can be different same-day deadlines for checks drawn on routing numbers starting with &lt;a href=&quot;https://www.frbservices.org/resources/fees/check-electronic-check-collection-2026#3ftn&quot;&gt;&amp;quot;1214&amp;quot; or &amp;quot;3214&amp;quot;&lt;/a&gt;, or in lists &lt;a href=&quot;https://www.frbservices.org/resources/fees/check21-endpoint-listing.html&quot;&gt;published by the Federal Reserve&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Operating confidence&lt;/h2&gt;&lt;p&gt;While there&apos;s a lot of complexity to encode, it&apos;s all complexity essential to accurately predicting how events in our system impact cash movement at the Federal Reserve. At Increase, we love getting deep into these details, understanding them, then automating that understanding. Reconciling these predictions to the actual reporting gives us confidence that our modeling is correct and that our system is working as expected.&lt;/p&gt;&lt;p&gt;We have alerts that &lt;a href=&quot;https://increase.com/articles/automated-invariant-monitoring&quot;&gt;continuously monitor&lt;/a&gt; the reconciliation process, ensuring that our expectations align with actual outcomes. While we have numerous other alerts that would trigger if, for instance, we failed to process an incoming ACH file or a wire we think was sent was actually rejected, these alerts provide an additional control and layer of detection in case those earlier mechanisms miss something.&lt;/p&gt;&lt;p&gt;Among the many reconciliations that we perform, this one confirms that we are correctly performing a critical role of a bank core: interacting with our partner banks&apos; Federal Reserve accounts. By rigorously matching every expected transaction with the Federal Reserve&apos;s reporting, we&apos;re able to identify discrepancies instantly, confirm the accuracy of our models, and ensure seamless operation for our partners. This ongoing alignment doesn&apos;t just give us operational confidence—it embodies our commitment to transparency and reliability, setting a high standard for how banking infrastructure should operate.&lt;/p&gt;&lt;p&gt;At Increase, we believe that mastering the details and automating with precision is the way to advance how financial systems connect and operate.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Louis Sobel</dc:creator><media:content url="https://increase.com/images/article-cash-reconciliation-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>2024 Q3 Newsletter</title><link>https://increase.com/newsletter/q3-2024</link><guid isPermaLink="true">https://increase.com/newsletter/q3-2024</guid><description>Changes for 2024 Q3, including RSS feed subscription, card authorization improvements, Real-Time Payments, and more.</description><pubDate>Mon, 30 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;September 30, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now subscribe to an &lt;a href=&quot;https://increase.com/updates.xml&quot;&gt;RSS feed&lt;/a&gt; of our changelog.&lt;/li&gt;&lt;li&gt;&lt;code&gt;card_decline&lt;/code&gt; and &lt;code&gt;real_time_decision.card_authorization&lt;/code&gt; resources now have the &lt;code&gt;direction&lt;/code&gt; field populated to signal if it is a refund authorization or a regular authorization.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;September 23, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now download bank letters and funding instructions from the Account detail views in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;September 6, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view a timeline of events for Declined Transactions in the Dashboard.&lt;/li&gt;&lt;li&gt;You can now view a timeline of events for Inbound Real-Time Payments in the Dashboard.&lt;/li&gt;&lt;li&gt;Inbound Real-Time Payments are now exposed &lt;a href=&quot;https://increase.com/documentation/api/inbound-real-time-payments-transfers&quot;&gt; by the API &lt;/a&gt; , letting you list and get Transfers.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/inbound-real-time-payments-transfers#sandbox-create-an-inbound-real-time-payments-transfer&quot;&gt; Simulating &lt;/a&gt; an inbound RTP will now return an Inbound Real-Time Payments Transfer object&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 16, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view the &lt;code&gt;inbound_funds_hold&lt;/code&gt; &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#ach-transfer-object.inbound_funds_hold&quot;&gt; sub-resource &lt;/a&gt; on the ACH Transfer object. This is relevant for ACH debit transfers and will contain details of the hold, including the ID of the Pending Transaction and when funds will be released.&lt;/li&gt;&lt;li&gt;Cards can now be used with Samsung Pay. You can view the requestor in the &lt;code&gt;token_requestor&lt;/code&gt; &lt;a href=&quot;https://increase.com/documentation/api/digital-wallet-tokens#digital-wallet-token-object.token_requestor&quot;&gt; attribute &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Creating reversals for ACH Transfers is now out of beta in the Dashboard.&lt;/li&gt;&lt;li&gt;You will now receive daily emails for any control failures.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 9, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now configure the email preferences for your Group in the &lt;a href=&quot;https://dashboard.increase.com/settings/general&quot;&gt; Dashboard Settings &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now export Transactions by Program.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 26, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view the &lt;code&gt;merchant_state&lt;/code&gt; and &lt;code&gt;merchant_postal_code&lt;/code&gt; on various &lt;a href=&quot;https://increase.com/documentation/api/card-payments#card-payment-object.elements.card_authorization&quot;&gt; card authorization &lt;/a&gt; sub-resources.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 12, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The Dashboard now supports both light and dark modes. You can configure your theme in &lt;a href=&quot;https://dashboard.increase.com/settings/general&quot;&gt; Settings &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now mark &lt;a href=&quot;https://increase.com/documentation/api/inbound-check-deposits#return-an-inbound-check-deposit&quot;&gt; Inbound Check Deposits as &amp;quot;Returned&amp;quot; &lt;/a&gt; with an accompanying reason.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 5, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Inbound ACH Transfers now resolve on their effective date. This means that the &lt;a href=&quot;https://increase.com/documentation/api/inbound-ach-transfers&quot;&gt; Inbound ACH Transfer &lt;/a&gt; will still be created as soon as Increase receives it, but the Transaction will be created according to the &lt;a href=&quot;https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html&quot;&gt; settlement schedule &lt;/a&gt; for the effective date. You can use the &amp;lt;StyledLink href=&amp;quot;/documentation/api#inbound-ach-transfer-object.automatically_resolves_at&amp;quot;&amp;gt; &lt;code&gt;automatically_resolves_at&lt;/code&gt; &amp;lt;/StyledLink&amp;gt; field to see when the Transaction will be created.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Automated invariant monitoring</title><link>https://increase.com/articles/automated-invariant-monitoring</link><guid isPermaLink="true">https://increase.com/articles/automated-invariant-monitoring</guid><description>In 2012, Stripe had an incident where a file sent to a financial partner wasn’t acknowledged. This went unnoticed, leading to a delay in transferring what seemed like a significant amount of money at the time. During the debrief, it became clear that we needed more robust automated monitoring and alerting for our financial partner integrations. In the next day or so, Patrick and Siddarth built an invariant monitor.</description><pubDate>Mon, 09 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;In 2012, Stripe had an incident where a file sent to a financial partner wasn&apos;t acknowledged. This went unnoticed, leading to a delay in transferring what seemed like a significant amount of money at the time. During the debrief, it became clear that we needed more robust automated monitoring and alerting for our financial partner integrations. In the next day or so, &lt;a href=&quot;https://twitter.com/patrickc&quot;&gt;Patrick&lt;/a&gt; and &lt;a href=&quot;http://siddarthc.com/&quot;&gt;Siddarth&lt;/a&gt; built an invariant monitor.&lt;/p&gt;&lt;p&gt;The invariant monitor was a lightweight framework that enabled engineers to write code that continuously tracked certain database conditions to ensure they always held true. If something went wrong, it would raise an alert. It was loosely inspired by &lt;a href=&quot;https://www.nagios.org/&quot;&gt;Nagios&lt;/a&gt; but written as application code that runs in the context of the rest of the codebase. Examples of the conditions that were monitored were:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Has a money movement file been generated every day?&lt;/li&gt;&lt;li&gt;Has every generated file been submitted to a partner?&lt;/li&gt;&lt;li&gt;Has every submitted file been acknowledged by that partner within the expected timeframe?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The invariant monitor became even more useful when &lt;a href=&quot;https://twitter.com/jeremydhoon&quot;&gt;Jeremy&lt;/a&gt; built automated monitoring into the frameworks for file generation, submission, retrieval, and storage.&lt;/p&gt;&lt;p&gt;This tool massively improved operations. It let us codify and monitor our assumptions. It was like seeing automated testing for the first time—it felt so clearly the right approach and so necessary that it was surprising every company didn&apos;t have a similar tool.&lt;/p&gt;&lt;p&gt;At Increase, this kind of monitoring was one of the first things we built. We call it Checker, with the individual monitoring rules known as Checks. (&lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;We&apos;re not particularly creative&lt;/a&gt; with names.)&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Here&apos;s what a Check looks like:&lt;/strong&gt;&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;check &apos;Database backup test restorations are running&apos;,
      frequency: Frequency::EVERY_SIX_HOURS do
  DatabaseBackupRestoration.exists?(
    created_at: (Time.now - 2.days)..,
    status: DatabaseBackupRestoration::Status::DONE,
  )
end
&lt;/pre&gt;&lt;p&gt;This alerts if we&apos;ve failed to restore our database backups within the last two days. It&apos;s reassuring to know that we&apos;d know if there&apos;s something wrong with our database backups before we need them.&lt;/p&gt;&lt;p&gt;Like Stripe, we&apos;ve built automated Checks into our frameworks. One particularly useful pattern has been implementing automated Checks for our state machines. These Checks monitor that transitory states don&apos;t last too long. For example, any mail item received for &lt;a href=&quot;https://increase.com/articles/announcing-check-lockboxes&quot;&gt;our new lockbox feature&lt;/a&gt; shouldn&apos;t have a &lt;code&gt;status&lt;/code&gt; of &lt;code&gt;PENDING_PROCESSING&lt;/code&gt; for more than a day. If it does, we&apos;re alerted.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Here&apos;s the code:&lt;/strong&gt;&lt;/p&gt;&lt;pre data-language=&quot;ruby&quot;&gt;class InboundMailItem &amp;lt; AbstractModel
  attribute :status,
            default: Status::PENDING_PROCESSING,
            transient_values: [Status::PENDING_PROCESSING],
            terminal_values: [Status::PROCESSED, Status::REJECTED]
end
&lt;/pre&gt;&lt;p&gt;Engineers mostly don&apos;t have to think about Checks when building features. &lt;code&gt;attribute&lt;/code&gt; is the default way to declare a model property in our Object-Relational Mapper so engineers typically get this monitoring for free.&lt;/p&gt;&lt;p&gt;We use Checks broadly. Since Checks are code, they can make API calls and monitor external services too. Security, for example, has a Check to ensure no Dropbox files are accidentally shared. And Compliance has one to track sanction screening lists. Whenever a person manually monitors something, we try to turn it into a Check. (That way they can go on vacation.)&lt;/p&gt;&lt;p&gt;We&apos;ve also built tooling and processes around our Checks. If you&apos;re considering building your own, here are a few things we&apos;ve learned:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;As with any monitoring, be careful with your signal. A flappy Check is worse than no Check.&lt;/li&gt;&lt;li&gt;Checks can have different priorities and alerting. A Check for an unexpectedly missing ACH file might page an on-call engineer while a Check that our physical card inventory is getting low might just create a ticket.&lt;/li&gt;&lt;li&gt;Each Check should have a responsible team or person.&lt;/li&gt;&lt;li&gt;Have a suppression mechanism to help with long-failing Checks.&lt;/li&gt;&lt;li&gt;Similar to tests, ensure Checks are easy to write. Also similar to tests, periodic pruning helps.&lt;/li&gt;&lt;li&gt;Have tests for your Checks. These need to include both the success and failure cases.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If ensuring people can sleep well at night is the kind of engineering you enjoy, you might also enjoy &lt;a href=&quot;mailto:jobs@increase.com&quot;&gt;jobs@increase.com&lt;/a&gt;.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Darragh Buckley</dc:creator><media:content url="https://increase.com/images/article-invariant-monitoring-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Visa: half a century of high availability</title><link>https://increase.com/articles/visa-redundancy</link><guid isPermaLink="true">https://increase.com/articles/visa-redundancy</guid><description>From the Fresno drop in 1958 and through Visa’s first 15 years of existence, an authorization with a Visa card was processed by having the merchant call either the cardholder’s bank, if the card was regional, or a switching center to be forwarded onto the bank if it was not. In the early 70s, the overhead of this reached a breaking point and Visa set out to build what would become known as “BankAmericard Authorization System Experimental (BASE)”—an electronic authorization system linking the Visa member banks with merchants or their acquiring centers through a central switching system.</description><pubDate>Fri, 23 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;From the Fresno drop in 1958 and through Visa&apos;s first 15 years of existence, an authorization with a Visa card was processed by having the merchant call either the cardholder&apos;s bank, if the card was regional, or a switching center to be forwarded onto the bank if it was not. In the early 70s, the overhead of this reached a breaking point and Visa set out to build what would become known as &amp;quot;BankAmericard Authorization System Experimental (BASE)&amp;quot;—an electronic authorization system linking the Visa member banks with merchants or their acquiring centers through a central switching system. While the protocols and implementation details look drastically different 50 years later, many of the core principles from BASE still stand today: a centralized switching system connecting acquirers to issuers through leased line connectivity to both sides, with redundancy built in at each step of the process[^0].&lt;/p&gt;&lt;p&gt;Increase&apos;s authorization connectivity with Visa is built on the same principle of redundancy: each of our data centers connect to each of Visa&apos;s two data centers through at least two separate circuits from at least two routers. This in turn connects to our cloud provider through at least two regions. Every layer maintains redundancy of each other: both of our physical data centers can talk to both of Visa&apos;s data centers and both of our cloud regions can reach both of our physical locations.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-visa-redundancy-flow.png&quot; alt=&quot;Increase redundancy flow&quot;&gt;&lt;/figure&gt;&lt;p&gt;This summarizes the high-level architecture of Increase&apos;s redundant connectivity with Visa. The rest of the article digs deeper into the details of how the specific messages transmitted over the Visa network work.&lt;/p&gt;&lt;h2&gt;Visa authorization messages&lt;/h2&gt;&lt;p&gt;Visa&apos;s BASE I system predates HTTP and the internet by almost two decades, but the way the contents of an authorization message transmit from an acquirer to an issuer is intuitive even from today&apos;s point of view. Unlike HTTP 1.1, where a corresponding response always has to follow serially on a TCP socket after the request, Visa&apos;s authorization system is configurable to allow responses to be sent through almost any live connection the recipient has, resembling HTTP 2&apos;s multiplexing with a unique identifier in each message. For Visa, the messages follow the ISO 8583 standard[^1] but are preceded by a 4-byte message length header that indicates the size of the message that is to follow. After the 4-byte message length header follows a routing header that includes information about where the message is to be routed, which then is followed by the message itself.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-visa-file-outline.png&quot; alt=&quot;Visa authorization file outline&quot;&gt;&lt;/figure&gt;&lt;p&gt;The ISO 8583 standard defines the overall structure of the message but leaves the underlying content to be defined by each card network. From a quick glance they share similar principles: a 4-digit Message Type Indicator that states the purpose of the message and its direction (e.g., &lt;code&gt;0100&lt;/code&gt; is an &lt;code&gt;Authorization Request&lt;/code&gt; and &lt;code&gt;0110&lt;/code&gt; is an &lt;code&gt;Authorization Response&lt;/code&gt;), a bitmap that indicates which fields are present, followed by each present field serialized in order. Unlike a message protocol like Google&apos;s Protocol Buffers, deserializing an ISO 8583 message correctly is impossible without first having implemented a parser to a specification. The parser tells the recipient how to handle each separate field—some fields might be simple fixed-length numeric fields, while others will be complicated deeply nested variable length fields.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-visa-file-data.png&quot; alt=&quot;Visa authorization file data&quot;&gt;&lt;/figure&gt;&lt;h2&gt;Initiating sessions&lt;/h2&gt;&lt;p&gt;Both sides of the table, the acquiring processors and the issuer processors, sign on to the Visa network by opening a TCP connection and sending a sign-on message that identifies the specific authorization &amp;quot;station&amp;quot; that they represent. As an issuer processor, we sign on to our stations from our cloud-hosted Message Processor services and wait for Visa to relay us messages from acquiring processors relevant to our cards. When we receive a message, we parse it, redact out sensitive details from a Payment Card Industry Data Security Standards (PCI-DSS) perspective (such as card numbers), and pass the message on to the rest of our authorization processing systems for further checks.&lt;/p&gt;&lt;p&gt;When we&apos;re ready to respond, we send a similar looking message back with a specific numeric identifier (field 37, &amp;quot;Retrieval Reference Number&amp;quot;) set to the same value as we received in the request. This then gets passed back to the acquiring processor, which in turn will match the incoming response to the outgoing pending request they have and provide an answer to the merchant and the cardholder who is waiting at the point of sale.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-visa-sessions-flow.png&quot; alt=&quot;Visa authorization session flow&quot;&gt;&lt;/figure&gt;&lt;h2&gt;From cloud to physical&lt;/h2&gt;&lt;p&gt;From our cloud providers, we connect to the routers hosted in our physical data centers through &lt;a href=&quot;https://cloud.google.com/network-connectivity/docs/interconnect/concepts/overview&quot;&gt;Cloud Interconnect&lt;/a&gt;. Each cloud region maps to a physical data center in regional proximity. However, all of our cloud providers can reach all of our physical data centers and vice versa. From here, our routers connect to a set of Visa-owned routers in the same data center, which in turn handles communication with another set of routers in Visa&apos;s data center.&lt;/p&gt;&lt;p&gt;Avoiding the fragility of the public internet, the communication between the Visa routers in our data centers and the Visa Message Gateways in Visa&apos;s own data centers happen using a combination of leased circuits from redundant telecom providers and Visa&apos;s Multiprotocol Label Switching (MPLS) network. In some ways this has more of a resemblance to the point-to-point behavior observed in analog phone lines than to the packet routed system of the public internet. Instead of labeling a packet with the destination and letting the individual hops decide how the packet gets there, the route through the network is defined ahead of time and the packets state which path they expect to take.&lt;/p&gt;&lt;h2&gt;Visa&apos;s data centers&lt;/h2&gt;&lt;p&gt;Outside of European traffic, all Visa authorizations eventually end up in either of Visa&apos;s two US data centers: central and east. These are both active at any time and transactions fall back to either seamlessly. Similar to how we redundantly connect to both of our data centers, each of the two locations also connect to each other and relay messages back and forth when necessary. When Visa receives a message from an acquirer processor, its main responsibility is figuring out where to send it by looking at the first digits of the card number and figuring out which issuer processor is set up to handle it.&lt;/p&gt;&lt;p&gt;As Visa&apos;s system has evolved from manual authorizations to modern redundant systems, it has maintained its foundational commitment to reliability and high availability. Increase&apos;s architecture is built on these same principles, ensuring that transactions are processed securely, reliably, and promptly. If you&apos;re looking to partner with an issuer processor that provides direct access to the Visa network, you can &lt;a href=&quot;mailto:sales@increase.com&quot;&gt;contact our sales team&lt;/a&gt; or learn more through our &lt;a href=&quot;https://increase.com/documentation/api/cards&quot;&gt;API&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;[^0]: Stearns, D: A History of the VISA Payment System, 1970 – 1984. [^1]: &lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_8583&quot;&gt;https://en.wikipedia.org/wiki/ISO_8583&lt;/a&gt;&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Martin Ek</dc:creator><media:content url="https://increase.com/images/article-visa-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Increase: a modernized banking core</title><link>https://increase.com/articles/modernized-banking-core</link><guid isPermaLink="true">https://increase.com/articles/modernized-banking-core</guid><description>A financial institution can maintain its existing core while simultaneously adding a new core. The two cores can interact as necessary (either by exchanging data directly or separately interacting with upstream or downstream services). This is what Increase does: we operate as a parallel core for our bank partners. We also expose functionality of the underlying depository rails via powerful APIs.</description><pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;h2&gt;Bank cores&lt;/h2&gt;&lt;p&gt;A bank core is one of those bedrock systems of modern society (birth registry, electronic healthcare records, air traffic control, etc) that we all want to see operate reliably and not be particularly exciting.&lt;/p&gt;&lt;p&gt;A bank core serves as the database and related logic responsible for maintaining the transactions and balances of a bank. It can also be responsible for services like account holder data, payment network interactions, and reconciliations. It is designed to be highly reliable and scalable while being in compliance with regulatory standards.&lt;/p&gt;&lt;p&gt;In the US, the most widely used bank core providers are &lt;a href=&quot;https://www.fisglobal.com/&quot;&gt;FIS&lt;/a&gt;, &lt;a href=&quot;https://www.fiserv.com/&quot;&gt;Fiserv&lt;/a&gt;, and &lt;a href=&quot;https://jackhenry.com/&quot;&gt;Jack Henry&lt;/a&gt;. The core providers themselves have many different cores[^0][^1] targeting sizes or cohorts of financial institutions. In fact, there&apos;s even an open source Apache core project, if you&apos;re interested in seeing code[^2].&lt;/p&gt;&lt;h2&gt;Technical limitations&lt;/h2&gt;&lt;p&gt;Many financial technology companies building products in partnership with banks run into technical constraints that start with bank cores. This is for a couple of reasons.&lt;/p&gt;&lt;p&gt;Many cores weren&apos;t designed or built with programmatic interaction in mind. Even if a financial technology company integrates into a traditional core, the core was likely built with very different use-cases in mind and therefore very different assumptions. For example, it often takes a day to open a new bank account, and each account has a single account number as its primary identifier. Payments are typically sent via batch files, rather than via API. Visibility into transaction details is limited.&lt;/p&gt;&lt;p&gt;A bank could gain more technical flexibility and data visibility by converting to a more modernized core[^3]. However, migrating from one core to another is a large project involving months of planning, as well as coordination with the Federal Reserve and other payment network operators. This also fails to solve for the challenges around programmatic data interaction between the core and the financial technology company; there&apos;s substantial product work required to expose a sensible API to clients, and many modernized cores haven&apos;t been designed with client needs in mind.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;quot;Many cores weren&apos;t designed or built with programmatic interaction in mind. Even if a financial technology company integrates into a traditional core, the core was likely built with very different use-cases in mind and therefore very different assumptions.&amp;quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;To solve for client-facing APIs, a bank could partner with a banking-as-a-service or &amp;quot;middleware&amp;quot; provider. These providers do the heavy lifting of integrating to the bank&apos;s traditional core, and offer abstracted account creation and money movement to financial technology companies via API. However, they&apos;re still dependent on the traditional core for access to underlying network data and account structures. They can&apos;t solve for limited data visibility and inflexible account structures.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-modern-core-middleware.png&quot; alt=&quot;Middleware providers&quot;&gt;&lt;/figure&gt;&lt;h2&gt;Running a parallel core&lt;/h2&gt;&lt;p&gt;One solution to this problem is running a parallel core. A financial institution can maintain its existing core while simultaneously adding a new core. The two cores can interact as necessary (either by exchanging data directly or separately interacting with upstream or downstream services).&lt;/p&gt;&lt;p&gt;This is what Increase does: we operate as a parallel core for our bank partners. We also expose functionality of the underlying depository rails via powerful APIs.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-modern-core-increase.png&quot; alt=&quot;Increase as a parallel core&quot;&gt;&lt;/figure&gt;&lt;p&gt;Increase allows bank partners to offer financial technology clients programmatic access to banking and card rails with flexible implementation structures and granular network details.&lt;/p&gt;&lt;h2&gt;Flexible implementations&lt;/h2&gt;&lt;p&gt;With Increase, banks can enable financial technology clients to synchronously provision &lt;a href=&quot;https://increase.com/documentation/api/accounts&quot;&gt;Accounts&lt;/a&gt;. Every Account sits on Increase&apos;s core and is able to receive and originate payments. Abstractions like virtual &amp;quot;accounts&amp;quot;—which can help with ledgering but have more limited functionality—aren&apos;t necessary. Importantly, this also means the bank and the client work off a single system of record, and funds in each Account are always reconciled down the penny.&lt;/p&gt;&lt;p&gt;Banks may also offer many &lt;a href=&quot;https://increase.com/documentation/api/account-numbers&quot;&gt;Account Numbers&lt;/a&gt; pointing to each Account. Clients can programmatically &lt;a href=&quot;https://increase.com/documentation/accounts-and-account-numbers&quot;&gt;spin up unique Account Numbers&lt;/a&gt; to track and reconcile inbound payments into one Account.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;quot;We operate as a parallel core for our bank partners. We also expose functionality of the underlying depository rails via powerful APIs.&amp;quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Fine grained network details&lt;/h2&gt;&lt;p&gt;With direct connections to the US payment rails, Increase exposes all the details and functionality of the underlying financial network by API, &lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;without abstractions&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Every inbound wire allocated to an Account contains an Input Message Accountability Data (&amp;quot;IMAD&amp;quot;), a unique identifier assigned to each Fedwire payment made through the Federal Reserve. Details like this one often get obfuscated when there&apos;s a human-run wire desk involved.&lt;/li&gt;&lt;li&gt;When an ACH Transfer is returned, we parse the network message from the Federal Reserve, correlate it to the original transfer, and create a new Transaction to reduce an Account&apos;s balance. A client can immediately view the return details and instantly map each return to its initial Transaction.&lt;/li&gt;&lt;li&gt;We expose &lt;a href=&quot;https://status.increase.com/#ach-submission-timeline&quot;&gt;network updates&lt;/a&gt; in real-time. Originated ACH Transfers update when the transfer is submitted to the Federal Reserve, when the transfer is acknowledged by the Federal Reserve, and when it&apos;s expected to settle with the recipient bank.&lt;/li&gt;&lt;/ol&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-modern-core-status.png&quot; alt=&quot;Increase ACH submission status&quot;&gt;&lt;/figure&gt;&lt;p&gt;Your reaction to all this might range from amazement to &apos;huh, that&apos;s a neat little tidy-up I guess&apos; and either way, we agree. To the original observation that bank cores should be reliable and not particularly exciting, we strive to be lovingly boring. The US financial networks[^4][^5][^6][^7] have been around for a long time and offer robust functionality and detail for accounts and payments. Increase simply improves the last mile delivery.&lt;/p&gt;&lt;p&gt;[^0]: Silverlake: &lt;a href=&quot;https://jackhenry.dev/open-enterprise-api-docs/enterprise-soap-api/api-provider/silverlake/&quot;&gt;https://jackhenry.dev/open-enterprise-api-docs/enterprise-soap-api/api-provider/silverlake/&lt;/a&gt; [^1]: DNA: &lt;a href=&quot;https://www.fiserv.com/en/solutions/core-platforms-for-banks/dna-platform.html&quot;&gt;https://www.fiserv.com/en/solutions/core-platforms-for-banks/dna-platform.html&lt;/a&gt; [^2]: &lt;a href=&quot;https://fineract.apache.org/&quot;&gt;https://fineract.apache.org/&lt;/a&gt; [^3]: An example is Thought Machine: &lt;a href=&quot;https://www.thoughtmachine.net/&quot;&gt;https://www.thoughtmachine.net/&lt;/a&gt; [^4]: &lt;a href=&quot;https://increase.com/documentation/fedach&quot;&gt;https://increase.com/documentation/fedach&lt;/a&gt; [^5]: &lt;a href=&quot;https://increase.com/documentation/fedwire&quot;&gt;https://increase.com/documentation/fedwire&lt;/a&gt; [^6]: &lt;a href=&quot;https://increase.com/documentation/check-21&quot;&gt;https://increase.com/documentation/check-21&lt;/a&gt; [^7]: &lt;a href=&quot;https://increase.com/documentation/real-time-payments&quot;&gt;https://increase.com/documentation/real-time-payments&lt;/a&gt;&lt;/p&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/article-modern-core-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Announcing Lockboxes: Programmatically deposit checks with your own virtual mailbox</title><link>https://increase.com/articles/announcing-check-lockboxes</link><guid isPermaLink="true">https://increase.com/articles/announcing-check-lockboxes</guid><description>Increase’s API and Dashboard allow efficient, programmatic access to mail checks, deposit check images, and — starting this month — host a virtual mailbox to accept payments in your designated check lockbox.</description><pubDate>Tue, 30 Jul 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Paper checks are a practical and widespread form of payment. Writing an amount and your signature on a slip of paper is easy to understand and simple to do. In 2023 alone, the Federal Reserve collected over $8.45 trillion in commercial checks&lt;a href=&quot;%5Bhttps://www.federalreserve.gov/paymentsystems/check_commcheckcolqtr.htm%5D(https://www.federalreserve.gov/paymentsystems/check_commcheckcolqtr.htm)&quot;&gt;^0&lt;/a&gt;. Digital transfer mechanisms are growing, but the good-old-fashioned physical check is still relied upon and essential for many payment flows.&lt;/p&gt;&lt;p&gt;However, checks are slow and tedious to manage. They sometimes take weeks (or even months!) to be deposited after making it to the recipients&apos; mailbox. If you&apos;re sending or depositing checks at scale, managing these slips of paper can be a significant headache. This is why we&apos;ve built a fully digital check processing system.&lt;/p&gt;&lt;p&gt;Increase&apos;s API and Dashboard allow efficient, programmatic access to mail checks, deposit check images, and — starting this month — host a virtual mailbox to accept payments in your designated check lockbox.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://increase.com/documentation/api/lockboxes&quot;&gt;Lockboxes&lt;/a&gt; are the latest addition to our suite of check features. You can create unlimited mailing addresses and whenever a check is mailed to that address, we&apos;ll create a &lt;a href=&quot;https://increase.com/documentation/api/check-deposits&quot;&gt;Check Deposit&lt;/a&gt; and add the funds to your account. We&apos;ll send you a webhook to keep you in the loop and you&apos;ll have full access to accept or decline checks as they come in. We will even shred the checks once they&apos;re processed.&lt;/p&gt;&lt;p&gt;Depending on your business, we recommend making one lockbox per invoice or one lockbox per customer relationship. This makes reconciliation between incoming funds and their revenue attribution much easier.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-lockbox-flow.png&quot; alt=&quot;Check Lockboxes diagram&quot;&gt;&lt;/figure&gt;&lt;p&gt;Increase&apos;s commitment to &lt;a href=&quot;https://increase.com/articles/no-abstractions&quot;&gt;No Abstractions&lt;/a&gt; means we give you full control over the network messages sent to &lt;a href=&quot;https://increase.com/documentation/check-21&quot;&gt;Check 21&lt;/a&gt;, the Federal Reserve&apos;s network for processing checks. That includes reading the raw TIFF images sent from other banks or controlling fraud by issuing return codes directly to your counterparty&apos;s institution. All of Increase&apos;s features are available in the API for programmatic, bulk actioning and in the Dashboard for one-off debugging as you build your application.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-lockbox-dashboard.png&quot; alt=&quot;Check transfer Dashboard&quot;&gt;&lt;/figure&gt;&lt;p&gt;You can also &lt;a href=&quot;https://increase.com/documentation/originating-checks#lifecycle&quot;&gt;send checks&lt;/a&gt; through Increase, either through our check printer under the hood, or by a third party fulfillment provider of your choice. Before the check gets deposited at the recipient bank, we surface critical details to you—including the arrival scan and depositing bank name—allowing you to review and decline the deposit attempt if necessary.&lt;/p&gt;&lt;p&gt;Increase&apos;s check features allow our users fine grained control, high levels of visibility, and great fraud-fighting tools. Read more in our &lt;a href=&quot;https://increase.com/documentation/api&quot;&gt;API&lt;/a&gt; or &lt;a href=&quot;https://increase.com/contact&quot;&gt;contact sales&lt;/a&gt;.&lt;/p&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/article-lockbox-thumbnail.png" medium="image" type="image/png"/><category>Product updates</category></item><item><title>2024 Q2 Newsletter</title><link>https://increase.com/newsletter/q2-2024</link><guid isPermaLink="true">https://increase.com/newsletter/q2-2024</guid><description>Changes for 2024 Q2, including check deposit images, card dispute timelines, lockboxes, and more.</description><pubDate>Sun, 30 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;June 21, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view check deposit images in the Dashboard.&lt;/li&gt;&lt;li&gt;Card disputes are now visible on Transaction timelines in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;June 14, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now create &lt;a href=&quot;https://increase.com/documentation/api/lockboxes#create-a-lockbox&quot;&gt; Lockboxes &lt;/a&gt; to deposit checks automatically via the mail. Each Lockbox has a unique address and is associated with one of your Accounts.&lt;/li&gt;&lt;li&gt;You can now configure transfer approvals for the Dashboard and the API separately.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 29, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view the presentment amount ( &lt;code&gt;presentment_amount&lt;/code&gt;) and presentment currency ( &lt;code&gt;presentment_currency&lt;/code&gt;) on &lt;a href=&quot;https://increase.com/documentation/api/pending-transactions&quot;&gt; Card Authorization &lt;/a&gt; and &lt;a href=&quot;https://increase.com/documentation/api/declined-transactions&quot;&gt; Card Decline &lt;/a&gt; resources in the API.&lt;/li&gt;&lt;li&gt;We now support single sign-on in the dashboard. &lt;a href=&quot;mailto:support@increase.com&quot;&gt; Reach out &lt;/a&gt; if you&apos;d like to set it up.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 15, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added documentation for &lt;a href=&quot;https://increase.com/documentation/programs&quot;&gt; Programs &lt;/a&gt; to our guides.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 22, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added an &lt;a href=&quot;https://increase.com/documentation/api/inbound-check-deposits&quot;&gt; Inbound Check Deposit &lt;/a&gt; model to the API to surface check deposit attempts on originated checks.&lt;/li&gt;&lt;li&gt;We now publish an &lt;code&gt;inbound_check_deposit.created&lt;/code&gt; webhook event that you can listen for to run &lt;a href=&quot;https://increase.com/documentation/originating-checks#custom-evaluation-logic&quot;&gt; custom evaluation logic &lt;/a&gt; for Inbound Check Deposits.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 8, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added more detail on when Transfers require approval in the Dashboard Money Movement flow.&lt;/li&gt;&lt;li&gt;We&apos;ve added a &lt;a href=&quot;https://increase.com/documentation/card-payment-lifecycle#card-payment-lifecycle&quot;&gt; Card Payment lifecycle &lt;/a&gt; guide.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 1, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added more detail to our &lt;a href=&quot;https://increase.com/documentation&quot;&gt; Documentation Guides &lt;/a&gt; for ACH, Wires, Checks and Real Time Payments.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>No Abstractions: an Increase API design principle</title><link>https://increase.com/articles/no-abstractions</link><guid isPermaLink="true">https://increase.com/articles/no-abstractions</guid><description>Learn about the foundational design principle of Increase’s API and how it helps us model the inherent complexity of the underlying financial networks we work with.</description><pubDate>Tue, 23 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;strong&gt;API resources&lt;/strong&gt; are the nouns of your API. Deciding how to name and model these nouns is arguably the hardest and most important part of designing an API. The resources you expose organize your users’ mental model of how your product works and what it can do. At Increase, our team has used a principle called “no abstractions” to help. What do we mean by this?&lt;/p&gt;&lt;p&gt;Much of our team came from Stripe, and when designing our API we considered the same values that have been successful there. Stripe excels at designing &lt;strong&gt;abstractions&lt;/strong&gt; in their API — extracting the essential features of a complex domain into something their users can easily understand and work with. In their case this most notably means &lt;a href=&quot;https://stripe.com/blog/payment-api-design&quot;&gt;modeling&lt;/a&gt; payments across many different networks into an API resource called a &lt;a href=&quot;https://docs.stripe.com/api/payment_intents&quot;&gt;PaymentIntent&lt;/a&gt;. For example, Visa and Mastercard have subtly different reason codes for why a chargeback can be initiated, but Stripe combines those codes into a single enum so that their users don’t need to consider the two networks separately.&lt;/p&gt;&lt;p&gt;This makes sense because many of Stripe’s users are early startups working on products totally unrelated to payments. They don&apos;t necessarily know, or need to know, about the nuances of credit cards. They want to integrate Stripe quickly, get back to building their product, and stop thinking about payments.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“For Increase users, trying to hide the underlying complexity of these networks would irritate them, not simplify their lives.”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Increase’s users are not like this. They often have deep existing knowledge of payment networks, think about financial technology all the time, and come to us because of our direct network connections and the depth of integration that lets them build. They want to know &lt;a href=&quot;https://status.increase.com/#ach-submission-timeline&quot;&gt;exactly&lt;/a&gt; when the FedACH window closes and when transfers will land. They understand that setting a different Standard Entry Class code on an ACH transfer can result in different return timing. Trying to hide the underlying complexity of these networks (by, for example, modeling ACH transfers and wire transfers with a single API resource) would irritate them, not simplify their lives.&lt;/p&gt;&lt;p&gt;Early conversations with these users helped us articulate what we dubbed the “no abstractions” principle as we built the first version of our API. Some examples of the way this mindset has subsequently affected its design:&lt;/p&gt;&lt;h2&gt;Real-world naming&lt;/h2&gt;&lt;p&gt;Instead of inventing our own names for API resources and their attributes, we tend to use the vocabulary of the underlying networks. For example, the parameters we expose when making an ACH transfer via our API are named after fields in the &lt;a href=&quot;https://achdevguide.nacha.org/ach-file-details&quot;&gt;Nacha specification&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Immutability&lt;/h2&gt;&lt;p&gt;Similar to how we use network nomenclature, we try to model our resources after real-world events like an action taken or a message sent. This results in more of our API resources being immutable. An approach that’s worked well for our API is to take a cluster of these immutable resources (all of the network messages that can be sent as part of the ACH transfer lifecycle, for example) and group them together under a state machine “lifecycle object”. For example, the &lt;code&gt;ach_transfer&lt;/code&gt; object in our API has a field called &lt;code&gt;status&lt;/code&gt; that changes over time, and several immutable sub-objects that are created as the transfer moves through its lifecycle. A newly-minted &lt;code&gt;ach_transfer&lt;/code&gt; object looks like:&lt;/p&gt;&lt;pre data-language=&quot;json&quot;&gt;{
  &amp;quot;id&amp;quot;: &amp;quot;ach_transfer_abc123&amp;quot;,
  &amp;quot;created_at&amp;quot;: &amp;quot;2024-04-24T00:00:00+00:00&amp;quot;,
  &amp;quot;amount&amp;quot;: 1000,
  &amp;quot;status&amp;quot;: &amp;quot;pending_approval&amp;quot;,
  &amp;quot;approval&amp;quot;: null,
  &amp;quot;submission&amp;quot;: null,
  &amp;quot;acknowledgement&amp;quot;: null
  // other fields omitted here for clarity
}
&lt;/pre&gt;&lt;p&gt;After that same transfer has moved through our pipeline and we’ve submitted it to FedACH, it looks like:&lt;/p&gt;&lt;pre data-language=&quot;json&quot;&gt;{
  &amp;quot;id&amp;quot;: &amp;quot;ach_transfer_abc123&amp;quot;,
  &amp;quot;created_at&amp;quot;: &amp;quot;2024-04-24T00:00:00+00:00&amp;quot;,
  &amp;quot;amount&amp;quot;: 1000,
  &amp;quot;status&amp;quot;: &amp;quot;submitted&amp;quot;,
  // immutable, populated when the transfer is approved
  &amp;quot;approval&amp;quot;: {
    &amp;quot;approved_by&amp;quot;: &amp;quot;administrator@yourcompany.com&amp;quot;,
    &amp;quot;approved_at&amp;quot;: &amp;quot;2024-04-24T01:00:00+00:00&amp;quot;
  },
  // immutable, populated when the transfer is submitted
  &amp;quot;submission&amp;quot;: {
    &amp;quot;trace_number&amp;quot;: &amp;quot;058349238292834&amp;quot;,
    &amp;quot;submitted_at&amp;quot;: &amp;quot;2024-04-24T02:00:00+00:00&amp;quot;
  },
  // immutable, populated when the transfer is acknowledged
  &amp;quot;acknowledgement&amp;quot;: {
    &amp;quot;acknowledged_at&amp;quot;: &amp;quot;2024-04-24T03:00:00+00:00&amp;quot;
  }
  // other fields omitted for clarity
}
&lt;/pre&gt;&lt;h2&gt;Separating resources by use case&lt;/h2&gt;&lt;p&gt;If, for a given API resource, the set of actions a user can take on different instances of the resource varies a lot, we tend to split it into multiple resources. For example, the set of actions you can take on an originated ACH transfer is different (the complete opposite, really) than the actions you can take on a received ACH transfer, so we separate these into &lt;code&gt;ach_transfer&lt;/code&gt; and &lt;code&gt;inbound_ach_transfer&lt;/code&gt; resources.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;This approach can make our API more verbose and intimidating at first glance — there are a lot of resources on the left-hand side of our &lt;a href=&quot;https://increase.com/documentation/api&quot;&gt;documentation&lt;/a&gt; page! We think it makes things more predictable over the long-term, though.&lt;/p&gt;&lt;p&gt;Importantly, our engineering team has committed to this approach. When you design a complex API over several years, you make small incremental decisions all the time. Committing to foundational principles upfront has reduced the cognitive load for these decisions. For example, when sending a wire transfer to the Federal Reserve, there’s a required field called &lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#wire-transfer-object.submission.input_message_accountability_data&quot;&gt;Input Message Accountability Data&lt;/a&gt; which serves as a globally-unique ID for that transfer. When building support for wire transfers, an engineer in an abstraction-heavy API might have to deliberate how to name this field in a “user-friendly” way — &lt;code&gt;trace_number&lt;/code&gt;? &lt;code&gt;reference_number&lt;/code&gt;? &lt;code&gt;id&lt;/code&gt;? At Increase that hypothetical engineer names the field &lt;code&gt;input_message_accountability_data&lt;/code&gt; and moves on. When an Increase user encounters this field for the first time, while it might not be the most immediately recognizable name at first, it helps them understand immediately how this maps to the underlying system.&lt;/p&gt;&lt;p&gt;No Abstractions isn’t right for every API, but considering the level of abstraction that’s appropriate for the developers integrating against it is a valuable exercise. This will depend on their level of experience working with your product domain and the amount of energy they’ll be committing to the integration, among other things. If you’re building an abstraction-heavy API, be prepared to think hard before adding new features. If you’re building an abstraction-light API, commit to it and resist the temptation to add abstractions when it comes along.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Jack Reed</dc:creator><media:content url="https://increase.com/images/article-api-principles-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>Overview of FedACH</title><link>https://increase.com/documentation/fedach</link><guid isPermaLink="true">https://increase.com/documentation/fedach</guid><description>Automated Clearing House (ACH) is the dominant low-value transfer mechanism in the US. Learn more about how ACH works and pitfalls to avoid.</description><pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;h1&gt;Overview of FedACH&lt;/h1&gt;&lt;h4&gt;An introductory guide explaining ACH, how it functions, and key concepts for operating an ACH integration.&lt;/h4&gt;&lt;hr&gt;&lt;p&gt;&amp;lt;!-- vale Increase.Terms = NO --&amp;gt;&lt;/p&gt;&lt;p&gt;Automated Clearing House (ACH) is the dominant low-value transfer mechanism in the US. ACH typically refers to the Federal Reserve’s &lt;a href=&quot;https://www.frbservices.org/financial-services/ach&quot;&gt;FedACH network&lt;/a&gt; which implements the rules maintained by &lt;a href=&quot;https://nacha.org/&quot;&gt;Nacha&lt;/a&gt; (formerly stylized as the National Automated Clearing House Association, NACHA). &lt;a href=&quot;https://www.theclearinghouse.org/payment-systems/ACH&quot;&gt;Electronic Payment Network (EPN)&lt;/a&gt; is an alternative ACH network operated by &lt;a href=&quot;https://www.theclearinghouse.org/&quot;&gt;The Clearing House (TCH)&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&amp;lt;!-- vale Increase.Terms = YES --&amp;gt;&lt;/p&gt;&lt;h2&gt;How FedACH works&lt;/h2&gt;&lt;p&gt;FedACH is an asynchronous network that sends files containing batches of transfers from the originating depository financial institutions (ODFI) to the Federal Reserve, and ultimately onward to the receiving depository financial institutions (RDFI). To understand how ACH works, we can discuss it in a few stages.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-ach-process.png&quot; alt=&quot;How FedACH works&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Initiation&lt;/strong&gt;: An ACH transfer is created, which includes mandatory details of the destination account number, routing number, amount, and &lt;a href=&quot;https://increase.com/documentation/ach-standard-entry-class-codes&quot;&gt;Standard Entry Class (SEC) code&lt;/a&gt;. There are optional parameters of the recipient’s name and identifying number. Explicitly, most financial institutions don’t enforce that the recipient name on the transfer match the account holder name.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Batching&lt;/strong&gt;: Unlike other payment methods, ACH transactions are batched and do not settle instantly. The originating depository financial institution (ODFI) consolidates all ACH transfers into a smaller set Nacha files for submission. A company operating at scale can sometimes request their transfers be batched into their own file.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Submission&lt;/strong&gt;: The Nacha files are submitted to the Federal Reserve at specified times each day. As is expected, these align with specific submission windows and affect when funds are available at the receiving depository financial institutions (RDFI). If a file is successfully submitted, the Federal Reserve will respond with an acknowledgment. Increase publishes the &lt;a href=&quot;https://status.increase.com/&quot;&gt;submission status of every ACH file&lt;/a&gt;. Additionally, ACH transfers can be submitted with different settlement timing (Same day or Standard). You can read more about settlement timing below.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Clearing&lt;/strong&gt;: During a submission window, the Federal Reserve aggregates all transactions from various financial institutions, nets them out, and calculates the final amount owed by and to each participating financial institution.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Funds transfer&lt;/strong&gt;: After clearing, the actual transfer of funds occurs during the settlement process. The Federal Reserve ensures that the appropriate amounts are debited and credited to the respective financial institution.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Funds availability&lt;/strong&gt;: Even though the processing might happen on the same day (for Same Day ACH) or the next day (for Standard ACH), the funds might not be immediately available. This delay is often due to the financial institution’s policies on funds availability and the time needed for risk management and fraud prevention. A common example of this are &lt;a href=&quot;https://increase.com/documentation/sending-ach-debit-transfers#debit-funds-holds&quot;&gt;debit funds holds&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Returns&lt;/strong&gt;: An ACH transfer can be automatically returned by the receiving depository financial institution (RDFI) within 2 business days for non-consumer accounts, and 60 days for consumer accounts. A late return can be requested after these deadlines, but the originating depository financial institution (ODFI) can accept or reject them at their discretion. &lt;a href=&quot;https://increase.com/documentation/ach-returns&quot;&gt;Learn more about ACH Returns&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Reversals&lt;/strong&gt;: The originating depository financial institution (ODFI) can attempt to reclaim funds from an erroneous transfer by sending a second ACH Reversal. &lt;a href=&quot;https://increase.com/documentation/ach-reversals&quot;&gt;Learn more about ACH Reversals&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;ACH directions&lt;/h2&gt;&lt;p&gt;ACH supports both credit and debit origination. Credits allow you to push funds to a recipient. Debits allow you to pull funds from a recipient.&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;You originate&lt;/th&gt;&lt;th&gt;You receive&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Credit&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Funds are removed from your Account (-)&lt;/td&gt;&lt;td&gt;Funds are added to your Account (+)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Debit&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Funds are added to your Account (+)&lt;/td&gt;&lt;td&gt;Funds are removed from your Account (-)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;ACH credits, also known as a direct deposit, are commonly used for payroll, tax refunds, and pension payments. Sending an ACH credit is relatively simple since funds are pushed from a bank account you own. Funds availability is typically 1-2 days.&lt;/p&gt;&lt;p&gt;ACH debits are commonly used for bill payments, such as utility bills, mortgages, loans, and subscription services, where the originator pulls funds from the recipient’s account. However, since debits move funds not owned by the originator, they &lt;a href=&quot;https://increase.com/documentation/sending-ach-debit-transfers#debit-authorizations&quot;&gt;require authorization&lt;/a&gt; from the recipient and are accountable to &lt;a href=&quot;https://increase.com/documentation/sending-ach-debit-transfers#debit-funds-holds&quot;&gt;funds holds&lt;/a&gt;. To learn more, view our tutorial on &lt;a href=&quot;https://increase.com/documentation/setting-up-ach-debits&quot;&gt;how to set up ACH debits&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;When sending an ACH debit or credit, you must specify the &lt;a href=&quot;https://increase.com/documentation/ach-standard-entry-class-codes&quot;&gt;Standard Entry Class (SEC)&lt;/a&gt; code, which is used to classify the ACH transfer by the type of recipient account and intended use.&lt;/p&gt;&lt;h2&gt;Non-financial messages&lt;/h2&gt;&lt;p&gt;ACH supports some non-financial messages. One is the confirmation note, also known as a &lt;strong&gt;Prenote&lt;/strong&gt;, which is used for accounting and routing number validation. Another is a &lt;strong&gt;Notification of Change&lt;/strong&gt;. Notifications of Change are optionally sent by receiving depository financial institutions (RDFI) to communicate that although a transfer has been accepted, in the future, updated details should be used.&lt;/p&gt;&lt;h2&gt;Timing&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://www.frbservices.org/resources/resource-centers/same-day-ach/fedach-processing-schedule.html&quot;&gt;FedACH operates&lt;/a&gt; three same-day windows and six future-dated windows. Increase submits transfers in every window. You can track &lt;a href=&quot;https://status.increase.com/&quot;&gt;Increase&apos;s ACH submission status&lt;/a&gt; at any time.&lt;/p&gt;&lt;p&gt;Each FedACH window is made up of three parts:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The &lt;em&gt;Transmission Deadline&lt;/em&gt; is the cutoff. FedACH must receive files before this moment.&lt;/li&gt;&lt;li&gt;The &lt;em&gt;Target Distribution&lt;/em&gt; is when FedACH aims to tell receiving depository institutions about the transfers. FedACH may occasionally miss this deadline.&lt;/li&gt;&lt;li&gt;The &lt;em&gt;Settlement Schedule&lt;/em&gt; is when FedACH will fund the financial institutions’ Federal Reserve accounts.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Increase submits throughout the day and makes a best effort to submit your ACH transfers to the next available window. To guarantee delivery to FedACH for a specific window, submit your transfers 1 hour before the FedACH window. Increase will still process most transfers submitted less than 60 minutes before a FedACH cutoff before that deadline.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-ach-windows.png&quot; alt=&quot;ACH submission windows&quot;&gt;&lt;/p&gt;&lt;h2&gt;Settlement timing&lt;/h2&gt;&lt;p&gt;The ACH network supports two settlement timing options:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Future dated&lt;/strong&gt;: The transfer settles on the next business day. This is sometimes called &amp;quot;standard&amp;quot; or &amp;quot;next day&amp;quot; timing.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Same day&lt;/strong&gt;: With some restrictions, the transfer settles the same day it&apos;s submitted. The transfer must be submitted on a business day, before the 4:45pm ET same day cutoff, and be less than $1,000,000.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Increase defaults to same day settlement and submits transfers to the next available window. Transfers that exceed the $1,000,000 limit or are created after the last same day window are sent as future dated. You can specify the settlement timing using the &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#create-an-ach-transfer.preferred_effective_date.settlement_schedule&quot;&gt;&lt;code&gt;preferred_effective_date&lt;/code&gt;&lt;/a&gt; API parameter.&lt;/p&gt;&lt;h2&gt;Validating an account&lt;/h2&gt;&lt;p&gt;To validate account details you have two options:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Use a service like Plaid or Finicity, where an account holder provides their bank login details and the platform ~synchronously scrapes the bank’s website.&lt;/li&gt;&lt;li&gt;Send the account holder micro-deposits and have them confirm the amounts.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There are older methods like collecting an image of a voided check or using &lt;a href=&quot;https://increase.com/documentation/api/ach-prenotifications&quot;&gt;confirmation notes&lt;/a&gt; but they’re less used in modern integrations.&lt;/p&gt;&lt;h2&gt;Technical implementation&lt;/h2&gt;&lt;p&gt;Nacha’s message format is a fixed-width flat file containing batches of transfer entries. Nacha’s specification is here:&lt;/p&gt;&lt;p&gt;https://achdevguide.nacha.org/ach-file-overview&lt;/p&gt;&lt;p&gt;Many financial institutions implement ACH by allowing clients to submit Nacha’s file format through SFTP servers. Submission to the Federal Reserve runs similarly but uses an IBM product, Connect:Direct. FedACH responds with a custom-formatted acknowledgement file within 15 minutes. (There are escalation channels if a file hasn’t been acknowledged in that timeframe.) Most financial institutions similarly operate an acknowledgement mechanism.&lt;/p&gt;&lt;h2&gt;Operating an ACH integration&lt;/h2&gt;&lt;p&gt;A common frustration with ACH is that there’s no transfer receipt notification method. As a transfer originator, you have no way to definitely know if or when a transfer has arrived to a recipient’s account.&lt;/p&gt;&lt;p&gt;Some depository institutions allow account holders to maintain an allowlist of companies that can debit their account. This is done by referencing the Company ID. In particular, if you’ll be debiting businesses, you’ll likely want them to register your Company ID with their financial institution.&lt;/p&gt;&lt;p&gt;ACH transfers have many &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#ach-transfer-object&quot;&gt;structured parameters&lt;/a&gt; like the &lt;code&gt;company_name&lt;/code&gt;, &lt;code&gt;company_discretionary_data&lt;/code&gt;, &lt;code&gt;individual_name&lt;/code&gt;, and &lt;code&gt;individual_id&lt;/code&gt;. The specifics of how these are serialized to a transaction description shown to a recipient vary by bank.&lt;/p&gt;&lt;p&gt;Typical operational issues you’ll run into are that Nacha’s file form is ASCII. If you’re allowing UTF-8 data submission you’ll want to flatten it. You’ll also want to exclude client entered data containing things like newline characters.&lt;/p&gt;&lt;p&gt;Not all financial institutions preserve the trace numbers you submit. You’ll want to understand if yours does as it makes a difference to how you’ll correlate returns.&lt;/p&gt;&lt;p&gt;Many financial institutions will fund your ACH transactions by aggregating your daily files and batches possible by transfer effective date. Understanding your bank’s aggregation method is necessary for you to reconcile the transfer instructions you’ve submitted to the cash in your bank account.&lt;/p&gt;&lt;p&gt;While not common, there are data quality issues with FedACH. In particular, the network itself doesn’t store the state of a transfer. Therefore it’s possible for a receiving depository institution to return a transfer multiple times, for example. It’s also possible for them to include the incorrect details on a return.&lt;/p&gt;&lt;/article&gt;</content:encoded><category>Article</category></item><item><title>2024 Q1 Newsletter</title><link>https://increase.com/newsletter/q1-2024</link><guid isPermaLink="true">https://increase.com/newsletter/q1-2024</guid><description>Changes for 2024 Q1, including Program ID exposure, Visa fraud scores, Quickbooks integration, and more.</description><pubDate>Sun, 31 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;March 25, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We now expose &lt;a href=&quot;https://increase.com/documentation/api/accounts#account-object&quot;&gt; Program ID &lt;/a&gt; in the Account APIs.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;March 18, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visa Advanced Authorization fraud scores are available for all card authorizations in the Dashboard and &lt;a href=&quot;https://increase.com/documentation/api/card-payments&quot;&gt; API &lt;/a&gt; under network_risk_score.&lt;/li&gt;&lt;li&gt;Increase can now automatically sync your Accounts and Transactions to Quickbooks Online.&lt;/li&gt;&lt;li&gt;We&apos;ve removed the unused Submitted status from Check Transfer &lt;a href=&quot;https://increase.com/documentation/api/check-transfers#check-transfer-object.status&quot;&gt; Documentation &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;March 11, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We’ve updated our Dashboard permissions to provide more granular control. You can access team permissions in &lt;a href=&quot;https://dashboard.increase.com/settings/team&quot;&gt; Settings &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now assign more &lt;a href=&quot;https://increase.com/documentation/roles#roles-and-permissions&quot;&gt; specialized roles &lt;/a&gt; when inviting teammates.&lt;/li&gt;&lt;li&gt;You can now &lt;a href=&quot;https://dashboard.increase.com/settings/programs&quot;&gt; configure Transfer approvals &lt;/a&gt; independently for each Program.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;March 4, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve polished a number of our views in the &lt;a href=&quot;https://dashboard.increase.com&quot;&gt;Dashboard&lt;/a&gt; to follow a more standardized pattern for increased predictability on navigation.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 26, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/entities#update-an-entity.corporation.industry_code&quot;&gt; update &lt;/a&gt; the industry code for a corporate Entity.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 19, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now upload and update Complaints in the &lt;a href=&quot;https://dashboard.increase.com/compliance/platform_complaints&quot;&gt; Dashboard &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;We&apos;ve introduced a new Dashboard based flow for reporting &lt;a href=&quot;https://dashboard.increase.com/compliance/unusual_activity_reports&quot;&gt; Unusual Activity Reports &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 12, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now order physical versions of your Increase cards in the API and in the &lt;a href=&quot;https://dashboard.increase.com/cards&quot;&gt; Dashboard Card detail view &lt;/a&gt; by using the &apos;Ship physical card button&apos; on any cards you&apos;ve created.&lt;/li&gt;&lt;li&gt;You can now view structured ACH Addenda in the &lt;a href=&quot;https://dashboard.increase.com&quot;&gt;Dashboard&lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 05, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve exposed canceled Transfer Schedules in the &lt;a href=&quot;https://dashboard.increase.com/scheduled_transfers&quot;&gt; Dashboard &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 29, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added a guide to &lt;a href=&quot;https://increase.com/documentation/idempotency-keys#idempotency-keys&quot;&gt; Idempotency Keys &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 22, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added an &lt;a href=&quot;https://increase.com/documentation/api/inbound-wire-transfers&quot;&gt; Inbound Wire Transfer API &lt;/a&gt; to allow viewing and reconciling Inbound Wire Transfers.&lt;/li&gt;&lt;li&gt;You can now set your Program&apos;s billing account in &lt;a href=&quot;https://dashboard.increase.com/documents/fee_plans/&quot;&gt; the dashboard &lt;/a&gt; by clicking into the Fee Plan detail view.&lt;/li&gt;&lt;li&gt;We&apos;ve added command palette search functionality to the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 15, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added documentation on &lt;a href=&quot;https://increase.com/documentation/sending-ach-debit-transfers&quot;&gt; ACH Authorizations. &lt;/a&gt;&lt;/li&gt;&lt;li&gt;You can now view Inbound Wire Transfer timeline details on Transaction detail views in the Dashboard.&lt;/li&gt;&lt;li&gt;We&apos;ve added more validation on CSV compliance report updates in the Dashboard.&lt;/li&gt;&lt;li&gt;We&apos;ve updated our status page&apos;s &lt;a href=&quot;https://status.increase.com/&quot;&gt; FedACH Schedule display &lt;/a&gt; for improved readability.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 8, 2024&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now favorite &lt;a href=&quot;https://increase.com/documentation/api/external-accounts&quot;&gt; External Accounts &lt;/a&gt; in the Dashboard.&lt;/li&gt;&lt;li&gt;Fees and Fee Plans are now visible in the Dashboard.&lt;/li&gt;&lt;li&gt;You can now upload Vendor Lists as CSVs in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>How CapitalOS built their spend management platform on Increase</title><link>https://increase.com/customers/capitalos</link><guid isPermaLink="true">https://increase.com/customers/capitalos</guid><description>CapitalOS offers embedded spend management solutions for B2B platforms looking to launch card-based products for their users. As B2B platforms increasingly become the operating system for small businesses, they’re uniquely positioned to save time and money for their users through smart spend management.</description><pubDate>Wed, 06 Mar 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/capitalos-case-study-thumbnail.png" medium="image" type="image/png"/><category>Customer story</category></item><item><title>How depository placement networks provide extended FDIC coverage</title><link>https://increase.com/articles/how-depository-placement-networks-provide-extended-fdic-coverage</link><guid isPermaLink="true">https://increase.com/articles/how-depository-placement-networks-provide-extended-fdic-coverage</guid><description>Increase and our bank partners now offer access to Federal Deposit Insurance Corporation (“FDIC”) coverage on deposits of more than $250,000. This works through our connection to a deposit placement network offered by IntraFi. You can place deposits using IntraFi’s ICS service via Increase’s Dashboard or API. Enrollment does not impact access to your funds.</description><pubDate>Thu, 25 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;Increase and our bank partners now offer access to Federal Deposit Insurance Corporation (&amp;quot;FDIC&amp;quot;) coverage on deposits of more than $250,000. This works through our connection to a deposit placement network offered by &lt;a href=&quot;https://www.intrafi.com/&quot;&gt;IntraFi&lt;/a&gt;. You can place deposits using IntraFi&apos;s ICS service via Increase&apos;s Dashboard or API. Enrollment does not impact access to your funds.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-intrafi-balances.png&quot; alt=&quot;Ramp funds flow&quot;&gt;&lt;/figure&gt;&lt;p&gt;If you&apos;re in a hurry, that&apos;s all you need to know. Deposit placement networks are a fascinating topic, however. The rest of this article dives into why this feature exists and how it works.&lt;/p&gt;&lt;h2&gt;Silicon Valley Bank&lt;/h2&gt;&lt;p&gt;On Friday, March 10, 2023, California regulators closed Silicon Valley Bank and appointed the FDIC as receiver, which issued a press release:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;All insured depositors will have full access to their insured deposits no later than Monday morning, March 13, 2023. The FDIC will pay uninsured depositors an advance dividend within the next week. Uninsured depositors will receive a receivership certificate for the remaining amount of their uninsured funds. As the FDIC sells the assets of Silicon Valley Bank, future dividend payments may be made to uninsured depositors.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Unusual to this closure was the percentage of uninsured deposits: 93.9%. Depositors rushed to wire their funds out. At 6:24pm on Friday evening, a message came in extending the Fedwire window by 30 minutes:&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-intrafi-svb-message.png&quot; alt=&quot;Fedwire deadline extension message&quot;&gt;&lt;/figure&gt;&lt;p&gt;The deadline was extended by 30 minutes eight times that evening, then by 15 minutes three more times, until it finally closed at 11:45pm.&lt;/p&gt;&lt;p&gt;The confusion continued over the weekend. The Silicon Valley Bank web portal started disallowing transfers. Alarmism circulated online. A news story on Sunday, March 12, reported, &lt;a href=&quot;https://fortune.com/2023/03/12/how-many-silicon-valley-bank-svb-deposits-fdic-30-50-percent-long-sale-process/&quot;&gt;&amp;quot;Just 30% of uninsured SVB deposits could be available Monday as the FDIC gears up for a long and drawn-out sale process: sources.&amp;quot;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Bank failures&lt;/h2&gt;&lt;p&gt;While Silicon Valley Bank&apos;s failure happened quickly, it certainly wasn&apos;t novel.&lt;/p&gt;&lt;p&gt;The Federal Deposit Insurance Corporation is well-named. As you might expect, it was founded in the 1930s when bank failures and bank runs were common. It aims to solve the &lt;em&gt;runs&lt;/em&gt;, not the failures. It does so by guaranteeing your first $250,000 of deposits at a single bank. It&apos;s funded by an annual levy on insured banks.&lt;/p&gt;&lt;p&gt;[Note: Interestingly, the insurance is per ownership category, per account holder, per institution. Checking accounts, savings accounts and CDs are treated as one category; retirement accounts are another; trust accounts another; employee benefit accounts yet another. &lt;a href=&quot;https://www.fdic.gov/resources/deposit-insurance/brochures/insured-deposits/&quot;&gt;Ownership categories are well documented.&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;The amount insured was originally $2500 and has been raised gradually since then, most recently from $100,000 in 2008.&lt;/p&gt;&lt;p&gt;Today, bank failures are rare. Of the &lt;a href=&quot;https://www.fdic.gov/analysis/quarterly-banking-profile/statistics-at-a-glance/2023jun/industry.pdf&quot;&gt;4,645 FDIC-insured banks in the United States&lt;/a&gt;, there were zero failures in 2021 and 2022. But as you&apos;re likely aware, there were 5 failures in 2023, including Silicon Valley Bank, First Republic Bank and Signature Bank.&lt;/p&gt;&lt;p&gt;Silicon Valley Bank&apos;s failure was unique in that the vast majority of deposits there were uninsured (93.9%). Since then, there&apos;s been a resurgence of attention on FDIC insurance limits, and how to protect funds above the limit.&lt;/p&gt;&lt;h2&gt;Deposit networks, explained&lt;/h2&gt;&lt;p&gt;If you&apos;re storing funds above the limit, you&apos;re likely interested in ways to insure them. In theory, you could get yourself multiples of $250,000 in deposit coverage by opening accounts at 2, 3 or even 400 banks. This would be a hassle. A startup CFO might spend all day on the phone with different banks putting together instructions to wire $3M.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;quot;The swapped deposits ensure customers have access to additional FDIC insurance without the inconvenience of maintaining accounts at multiple banks.&amp;quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Suppose she has an idea: her fellow CFOs also have large deposits parked at the same banks. What if, &lt;em&gt;operationally&lt;/em&gt;, they could each do business at their primary bank, and simply swap each other&apos;s deposits? You have each bank place their deposits at several other banks in a placement network, with FDIC insurance up to $250,000 available at each. A bank that placed a large deposit through the network could also receive deposits in the same amount.&lt;/p&gt;&lt;p&gt;This is roughly how reciprocal deposits work. The swapped deposits ensure customers have access to additional FDIC insurance without the inconvenience of maintaining accounts at multiple banks. From the depositor&apos;s perspective, everything is seamless: you can still access all the funds at your bank even if in the background some of those funds are &amp;quot;swapped&amp;quot; to another institution. You&apos;re just better insured.&lt;/p&gt;&lt;p&gt;[Note: Until 2018, reciprocal deposits were considered brokered deposits, which are subject to different rules. Congress intervened, and now &lt;a href=&quot;https://www.dallasfed.org/research/economics/2023/1128&quot;&gt;most reciprocal deposits are considered non-brokered.&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;Increase&apos;s implementation of this is transparent. You can see in the Dashboard which banks are holding deposits that have been placed for you.&lt;/p&gt;&lt;p&gt;The deposit network will only ever place funds for a depositor up to the current FDIC insurance limit at any other single institution. Of course, it&apos;s possible that you already have funds stored at one or more other banks. To ensure that your funds held there are still insured, it&apos;s straightforward to exclude financial institutions where you&apos;re already storing funds.&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;https://increase.com/images/article-intrafi-exclusions.png&quot; alt=&quot;IntraFi institution exclusions&quot;&gt;&lt;/figure&gt;&lt;h2&gt;Are uninsured deposits really uninsured?&lt;/h2&gt;&lt;p&gt;When regulators announced Silicon Valley Bank&apos;s closure on Friday evening, it made clear that insured and uninsured deposits would be treated separately. But that didn&apos;t end up being the case: over the weekend, federal regulators decided to invoke the &lt;a href=&quot;https://www.fdic.gov/news/press-releases/2023/pr23017.html&quot;&gt;systemic risk exception&lt;/a&gt;, which protected uninsured deposits.&lt;/p&gt;&lt;p&gt;Because of this, you may assume your deposits will be protected even above insurance limits. The regulators make no assurances on that point. Past performance is no guarantee of future results.&lt;/p&gt;&lt;p&gt;The FDIC itself has reviewed insurance limits. It &lt;a href=&quot;https://www.fdic.gov/analysis/options-deposit-insurance-reforms/index.html&quot;&gt;issued a report&lt;/a&gt; that considered various options, including changing limits or abolishing them. Instead, the FDIC seems to be leaning towards targeting insurance at specific account types — specifically business payment accounts. However, any changes to deposit insurance would require congressional action.&lt;/p&gt;&lt;p&gt;So where does that leave us?&lt;/p&gt;&lt;p&gt;The FDIC insures funds up to $250,000, per ownership category, per account holder, per institution. In the event of a bank failure, uninsured deposits could be safe. Another institution might step in to acquire all deposits, or federal regulators could invoke the systemic risk exception again. But there is no guarantee either of these things will happen.&lt;/p&gt;&lt;p&gt;That&apos;s why we&apos;re offering access to reciprocal deposits. It&apos;s a way to obtain more peace of mind with access to additional insurance for more of your balances without impacting your operational access to funds. This is all now available in the Increase &lt;a href=&quot;https://dashboard.increase.com/&quot;&gt;Dashboard&lt;/a&gt; and &lt;a href=&quot;https://increase.com/documentation/api&quot;&gt;API&lt;/a&gt;.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;em&gt;Deposit placement through IntraFi Cash Service (&amp;quot;ICS&amp;quot;) is subject to the terms, conditions, and disclosures in applicable agreements.&lt;/em&gt;&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Sam Ballantyne</dc:creator><media:content url="https://increase.com/images/article-intrafi-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>How we work</title><link>https://increase.com/articles/how-we-work</link><guid isPermaLink="true">https://increase.com/articles/how-we-work</guid><description>We first wrote an internal culture document at Increase on 2019-10-09. It was labeled as a draft since we weren’t sure what principles would hold true as we scaled. Now, 4 years later, we’ve found the way that we work allows us to process tens of billions in payments.</description><pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;We first wrote an internal culture document at Increase on 2019-10-09. It was labeled as a draft since we weren&apos;t sure what principles would hold true as we scaled. Now, 4 years later, we&apos;ve found the way that we work allows us to process tens of billions in payments. Internally, this document will always remain a draft.&lt;/p&gt;&lt;p&gt;The central tenet of our culture is empowerment. It drives the way we make decisions, share knowledge, and make changes. It allows us to move with urgency. Ownership, transparency, and trust are key underpinnings for empowerment.&lt;/p&gt;&lt;h2&gt;Ownership&lt;/h2&gt;&lt;p&gt;At Increase, we make decisions by owner, not consensus. There is a single decision maker for almost every decision: technical design, product pricing, hiring, and third party integrations to name a few. It ensures that one person is responsible for the ultimate outcome. While the owner may not initially have all the information they need, it&apos;s their job to solicit feedback and move us forward. We frequently use decision timeouts with a default decision to ensure owners aren&apos;t blocked and to allow others to provide time-boxed input. We&apos;ve found this model to scale well with our organization.&lt;/p&gt;&lt;h2&gt;Transparency&lt;/h2&gt;&lt;p&gt;A necessary pre-requisite to empowerment is transparency. At Increase, we commit to transparency by working in public. In practice, this looks like draft pull requests, work-in-progress documents, notes written and shared for every meeting, and emails sent to lists. There&apos;s no opaque-box&apos;ing from any function (except, of course, for personally sensitive information). This ensures that everyone (including future employees!) has access to the information that went into a decision.&lt;/p&gt;&lt;p&gt;Transparency requires clear communication. We operate in at least two complex domains: technology and financial services. Both have their own jargon and acronyms. Whenever possible, we rely on primary sources and avoid shorthand communications that can act as a barrier to information, question asking, and understanding. (In other words: expand acronyms!)&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;quot;The central tenet of our culture is empowerment. It drives the way we make decisions, our access to knowledge, our ability to make changes, and our sense of urgency.&amp;quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;h2&gt;Trust&lt;/h2&gt;&lt;p&gt;Building trust with both our users and our partners is critical to growth. We maintain trust by keeping our promises, acting with honesty and integrity, and operating responsibly. Whenever we have an opportunity to go above and beyond to build trust, we should take it.&lt;/p&gt;&lt;p&gt;Empowerment also hinges on trusting others at Increase, and trusting they trust you. We&apos;re still a small team, in the early innings of a long journey. We navigate it best by consistently being empathetic, humble, and kind.&lt;/p&gt;&lt;p&gt;Operating this way comes with overhead. For example, disagreeing with an owner&apos;s decision but committing to it can feel uncomfortable. There&apos;s often a temptation to carve out a sub-decision, show how two domains of ownership are contentious and therefore require consensus, or re-open a decision a short period later with a different owner. We&apos;re certainly imperfect but we watch when we&apos;re doing these.&lt;/p&gt;&lt;p&gt;We also watch out for read-access not equating to write access, drive-by comments&lt;a href=&quot;%5Bhttps://www.recurse.com/social-rules%5D(https://www.recurse.com/social-rules)&quot;&gt;^0&lt;/a&gt;, costly casual curiosity, and psychological safety. If wide transparency becomes fundamentally at odds to psychological safety, we&apos;ll choose psychological safety.&lt;/p&gt;&lt;p&gt;These tenets are not perfect or complete. We&apos;ll add to them and revise them over time. If this way of working resonates, &lt;a href=&quot;mailto:jobs@increase.com&quot;&gt;we&apos;d love to hear from you&lt;/a&gt;.&lt;/p&gt;&lt;/article&gt;</content:encoded><dc:creator>Jamshed Vesuna</dc:creator><media:content url="https://increase.com/images/how-we-work-thumbnail.png" medium="image" type="image/png"/><category>Article</category></item><item><title>2023 Q4 Newsletter</title><link>https://increase.com/newsletter/q4-2023</link><guid isPermaLink="true">https://increase.com/newsletter/q4-2023</guid><description>Changes for 2023 Q4, including Wire Transfer limits, Check Deposit timing, IntraFi enrollment, and more.</description><pubDate>Sun, 31 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;December 18, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#create-a-wire-transfer&quot;&gt; Wire Transfers &lt;/a&gt; now limit the &lt;code&gt;beneficiary_name&lt;/code&gt; to 35 characters, the &lt;code&gt;message_to_recipient&lt;/code&gt; to 140 characters, and each line of the &lt;code&gt;beneficiary_address&lt;/code&gt; to 35 characters.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 11, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/check-deposits#check-deposit-object&quot;&gt; Check Deposit submissions &lt;/a&gt; now show the time a check was sent to Check21.&lt;/li&gt;&lt;li&gt;You can now set &lt;code&gt;debtor_name&lt;/code&gt; and &lt;code&gt;ultimate_debtor_name&lt;/code&gt; on &lt;a href=&quot;https://increase.com/documentation/api/real-time-payments-transfers#create-a-real-time-payments-transfer&quot;&gt; Real Time Payments Creation &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 04, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now enroll accounts in &lt;a href=&quot;https://increase.com/documentation/api/intrafi-account-enrollments#enroll-an-account-in-the-intrafi-deposit-sweep-network&quot;&gt; IntraFi &lt;/a&gt; for higher FDIC coverage.&lt;/li&gt;&lt;li&gt;You can now create &lt;a href=&quot;https://dashboard.increase.com/compliance&quot;&gt; security incidents &lt;/a&gt; in the Dashboard.&lt;/li&gt;&lt;li&gt;You can now connect your Increase accounts anywhere Plaid is supported.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 27, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now receive and submit &lt;a href=&quot;https://increase.com/documentation/api/proof-of-authorization-requests&quot;&gt; Proof of Authorization Requests &lt;/a&gt; in the API.&lt;/li&gt;&lt;li&gt;You can now submit platform complaint metrics via a CSV file.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 20, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now filter &lt;a href=&quot;https://dashboard.increase.com/transactions&quot;&gt; Transactions &lt;/a&gt; by description in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 13, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added new &lt;a href=&quot;https://dashboard.increase.com/transfers&quot;&gt; Transfers &lt;/a&gt; , &lt;a href=&quot;https://dashboard.increase.com/account_numbers?statuses=active&amp;amp;statuses=disabled&quot;&gt; Account Numbers &lt;/a&gt; and &lt;a href=&quot;https://dashboard.increase.com/external_accounts&quot;&gt; External Accounts &lt;/a&gt; tabs in Dashboard for easier navigation.&lt;/li&gt;&lt;li&gt;You can now filter Entities, Account Numbers and Accounts by name in the Dashboard.&lt;/li&gt;&lt;li&gt;You can now filter External Accounts and Cards by description in the Dashboard.&lt;/li&gt;&lt;li&gt;You can now filter Transfers by date in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 6, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now save beneficiary address and name details when creating new External Accounts in the &lt;a href=&quot;https://dashboard.increase.com/external_accounts&quot;&gt; External Accounts &lt;/a&gt; tab.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 30, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now download account verification letters from Dashboard. This is helpful if you need to demonstrate ownership to a third party.&lt;/li&gt;&lt;li&gt;You can now export a CSV of Entities.&lt;/li&gt;&lt;li&gt;You can now see which Entry Effective Date was used for an ACH Transfer.&lt;/li&gt;&lt;li&gt;You can now save beneficiary address and name details when creating new External Accounts in the Money Movement flow for reuse.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 23, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ACH addenda are now visible on the Inbound ACH Transfer object.&lt;/li&gt;&lt;li&gt;There is a new verification hash on the card authorization resource that shows the address provided by a customer, the address we match it against, and the result. It also shows the result of the CVC match.&lt;/li&gt;&lt;li&gt;We now expose a few more network identifiers on our various card payment-related resources, nested under network_identifiers.&lt;/li&gt;&lt;li&gt;We&apos;ve added support for Automatic Fuel Dispenser payments, where the initial authorization will be followed by a &lt;code&gt;card_fuel_confirmation&lt;/code&gt; that updates the amount to the actual fuel pump amount.&lt;/li&gt;&lt;li&gt;You can now filter the Transfers list in Dashboard.&lt;/li&gt;&lt;li&gt;ACH Transfer objects now include an &lt;code&gt;effective_date&lt;/code&gt; that tells you which day a transfer was processed.&lt;/li&gt;&lt;li&gt;You can now search Inbound Wires by Input Message Accountability Data (IMAD) and Trace Number in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 16, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We updated our Proof of Authorization flow to be more guided.&lt;/li&gt;&lt;li&gt;You can now see the Check Transfer ID on Check Transfer Deposits in the Transactions API.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 9, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now filter Transactions by amount in the Dashboard.&lt;/li&gt;&lt;li&gt;You can now view Fee Statements by Program in the Dashboard.&lt;/li&gt;&lt;li&gt;You can access more Federal Deposit Insurance Corporation (FDIC) coverage to protect your account balances above $250K. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to enroll in our Extended Deposit Insurance.&lt;/li&gt;&lt;li&gt;You can now see failed scheduled transfers in the dashboard and we will email you if they fail.&lt;/li&gt;&lt;li&gt;You can disable notification emails altogether in &lt;a href=&quot;https://dashboard.increase.com/settings/team&quot;&gt; Settings &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;There is now a direction field on Card Authorization resources that shows whether it&apos;s a settlement or refund authorization.&lt;/li&gt;&lt;li&gt;We fixed a bug where Card increment amounts would sometimes have the wrong signage.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 2, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now search for ACH Transfers by Trace ID and for Wire Transfers by Input Message Accountability Data (IMAD) in the Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Overview of Fedwire</title><link>https://increase.com/documentation/fedwire</link><guid isPermaLink="true">https://increase.com/documentation/fedwire</guid><description>Fedwire is the dominant high-value transfer mechanism in the US and is the Federal Reserve’s real-time gross settlement network. Learn more about how Fedwire works and pitfalls to avoid.</description><pubDate>Wed, 13 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;h1&gt;Overview of Fedwire&lt;/h1&gt;&lt;h4&gt;An introductory guide explaining Fedwire, how it functions, and key concepts for operating a wire integration.&lt;/h4&gt;&lt;hr&gt;&lt;p&gt;Fedwire, formally known as the Federal Reserve Wire Network, is a real-time gross settlement network owned and operated by the 12 U.S. Federal Reserve Banks. It is the dominant high-value transfer mechanism in the US, handling trillions of dollars in transactions daily. Fedwire has two variants: Funds (for USD transfers) and Securities (for transfers of &lt;a href=&quot;https://www.frbservices.org/financial-services/securities&quot;&gt;a limited group of securities&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Traditionally, wires have been labor intensive. There’s an assumption that there’ll be a manual exception process. As such, the messaging format allows a wide range of inputs to help wire desks properly allocate inbound wires. For example, a receiving account number isn’t strictly required by the specification. Normally this data is not visible to recipients. However, Increase exposes this raw data by default.&lt;/p&gt;&lt;h2&gt;How Fedwire works&lt;/h2&gt;&lt;p&gt;Fedwire is a ~synchronous network. The Federal Reserve — and in particular, the Federal Reserve Bank of New York — receives a wire and ~immediately debits the originating financial institution’s account and credits the receiving financial institution’s account. Here’s how it works:&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-wire-process.png&quot; alt=&quot;How Fedwire works&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Submission&lt;/strong&gt;: A sender initiates a wire transfer with their institution. The institution debits funds from their account, and sends a payment order to a Federal Reserve Bank. The order includes the payment amount, the receiving institution&apos;s details, and any additional instructions for reconciling the payment.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Verification&lt;/strong&gt;: The Federal Reserve Bank verifies the payment order, ensuring the originating institution has sufficient funds to cover the transaction.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Settlement&lt;/strong&gt;: Upon verification, the funds are deducted from the originating institution and credited to the receiving institution. This process occurs in real-time and on a transaction-by-transaction basis, ensuring immediate finality and irrevocability of payments.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Confirmation&lt;/strong&gt;: Both the originating and receiving institutions receive confirmation of the completed transaction, typically within seconds or minutes.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Allocation&lt;/strong&gt;: The receiving institution uses the provided instructions to reconcile the payment with the correct recipient. Funds are deposited into their account.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Reversal&lt;/strong&gt;: If the receiving institution cannot properly reconcile the payment, it is reversed. A new wire transfer is created to send the funds back to the originating institution.&lt;/p&gt;&lt;h2&gt;Reversals&lt;/h2&gt;&lt;p&gt;Wire transfers are irrevocable. However, they can be reversed in a few instances. If a receiving financial institution cannot allocate or otherwise decides to not accept a transfer, it sends a reversal. Additionally, a sender can request that a wire is reversed. However, the receiving financial institution has no obligation to honor the request. &lt;a href=&quot;https://increase.com/documentation/wire-reversals&quot;&gt;Learn more about wire reversals&lt;/a&gt; and how they work with Increase.&lt;/p&gt;&lt;h2&gt;Drawdown requests&lt;/h2&gt;&lt;p&gt;Although Fedwire doesn’t support pulling funds, there’s a network-level primitive to request payment. This is called a &lt;a href=&quot;https://increase.com/documentation/api/wire-drawdown-requests&quot;&gt;drawdown request&lt;/a&gt;. There’s also a drawdown request payment network primitive which allows a transfer to be correlated with a drawdown request.&lt;/p&gt;&lt;p&gt;Support for drawdown requests is typically limited to corporate accounts and there’s usually setup required by the account holder. Common use-cases are for intra-company money movement or regular automated settlement. Settlement to Visa, for example, can be coordinated by drawdown request. If you wish to use drawdown requests, contact support@increase.com.&lt;/p&gt;&lt;h2&gt;Non-financial messages&lt;/h2&gt;&lt;p&gt;Fedwire supports a messaging network. It’s typically used for wire department to wire department communication. Because wire processing can still be very manual, the messaging network is often used to request additional information.&lt;/p&gt;&lt;h2&gt;Timing&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://www.frbservices.org/resources/financial-services/wires/operating-hours.html&quot;&gt;Fedwire operates according to a set schedule&lt;/a&gt;, opening at 9:00 PM ET on the preceding calendar day and closing at 7:00 PM ET. In practice, Fedwire can extend the operating hours. This typically happens in times of stress. Wires transfers are processed within the window that they’re submitted.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-wire-windows.png&quot; alt=&quot;Fedwire submission windows&quot;&gt;&lt;/p&gt;&lt;p&gt;These times are subject to change, and different financial institutions may have their own cut-off times. Depending upon the bank you work with at Increase, wires may only be submitted within restricted hours. Also, keep in mind that holiday schedules could affect these times.&lt;/p&gt;&lt;h2&gt;Operating a wire integration&lt;/h2&gt;&lt;p&gt;One notable detail about wire operations is how manual they are at many institutions. Many financial institutions assume that wires will have manual intervention and therefore aren’t as strict as they might be with details like account numbers.&lt;/p&gt;&lt;p&gt;Fedwire can be used for settling USD legs of non-US transfers. Fedwire therefore supports passing through a SWIFT Business Identifier Code (BIC).&lt;/p&gt;&lt;/article&gt;</content:encoded><category>Article</category></item><item><title>How Ramp scaled a successful bill pay product with Increase</title><link>https://increase.com/customers/ramp</link><guid isPermaLink="true">https://increase.com/customers/ramp</guid><description>Ramp is the ultimate platform for modern finance teams. From spend management and expense management software, to bill payments and vendor management, Ramp’s all-in-one solution is designed to automate finance operations and build healthier businesses.</description><pubDate>Tue, 28 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;/article&gt;</content:encoded><media:content url="https://increase.com/images/ramp-case-study-thumbnail.png" medium="image" type="image/png"/><category>Customer story</category></item><item><title>2023 Q3 Newsletter</title><link>https://increase.com/newsletter/q3-2023</link><guid isPermaLink="true">https://increase.com/newsletter/q3-2023</guid><description>Changes for 2023 Q3, including API documentation improvements, physical card simulations, check image reviews, and more.</description><pubDate>Sat, 30 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;September 25, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now see maximum string lengths in our API Documentation.&lt;/li&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/physical-cards#sandbox-advance-the-shipment-status-of-a-physical-card&quot;&gt; simulate advancing a physical card shipment &lt;/a&gt; in sandbox.&lt;/li&gt;&lt;li&gt;When depositing a check in the money movement flow you can now review check images before depositing.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;September 18, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href=&quot;https://increase.com/documentation/api/inbound-ach-transfers#inbound-ach-transfer-object&quot;&gt; Inbound ACH Transfer &lt;/a&gt; object now includes the originator routing number information.&lt;/li&gt;&lt;li&gt;The Inbound Wire object now optionally includes the originator routing number information.&lt;/li&gt;&lt;li&gt;You can now cancel physical card submissions prior to shipping.&lt;/li&gt;&lt;li&gt;You can now assign a &lt;a href=&quot;https://increase.com/documentation/roles#owner&quot;&gt; compliance &lt;/a&gt; role to users.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;September 11, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/inbound-ach-transfers#sandbox-create-an-inbound-ach-transfer&quot;&gt; simulate creating actionable Inbound ACH Transfers &lt;/a&gt; to your account in sandbox.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;September 4, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added polish to our mobile experience to make it easier to view timeline data.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 28, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/receiving-ach-transfers#actioning&quot;&gt; action &lt;/a&gt; on Inbound ACH Transfers using the new decline and return APIs.&lt;/li&gt;&lt;li&gt;You can &lt;a href=&quot;https://increase.com/documentation/api/inbound-ach-transfers#create-a-notification-of-change-for-an-inbound-ach-transfer&quot;&gt; create a notification of change &lt;/a&gt; for Inbound ACH Transfers.&lt;/li&gt;&lt;li&gt;We&apos;ve added new guides for understanding &lt;a href=&quot;https://increase.com/documentation/sending-ach-debit-transfers#sending-an-ach-debit-transfer&quot;&gt; ACH debit funds holds &lt;/a&gt; and &lt;a href=&quot;https://increase.com/documentation/sending-ach-transfers#sending-an-ach-transfer&quot;&gt; Outbound ACH Transfers &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 21, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view FedACH processing windows and FedACH file submission details on our &lt;a href=&quot;https://status.increase.com/&quot;&gt;status&lt;/a&gt; page.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 14, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ACH transfers report when they were acknowledged by FedACH in the &lt;code&gt;acknowledgement&lt;/code&gt; details.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 7, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now add a new Beneficial Owner to an existing Corporation entity.&lt;/li&gt;&lt;li&gt;Beneficial Owners can have multiple prongs within one Corporation.&lt;/li&gt;&lt;li&gt;You can fetch an image of the mailed check sent by Increase for a Check Transfer.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 31, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now manage Card Profiles in Dashboard.&lt;/li&gt;&lt;li&gt;Wire Transfers now allow alphanumeric characters in account numbers.&lt;/li&gt;&lt;li&gt;There are improved Dashboard filters for Transactions and Cards.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 24, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now make a Check Transfer that you, rather than Increase, mail.&lt;/li&gt;&lt;li&gt;Level 2 and industry-specific data is available under &lt;code&gt;card_settlement&lt;/code&gt; and &lt;code&gt;card_refund&lt;/code&gt; sources in the &lt;code&gt;purchase_details&lt;/code&gt; object.&lt;/li&gt;&lt;li&gt;Level 3 data, such as line item level itemization of purchases, is available under the new &lt;code&gt;/card_purchase_supplements&lt;/code&gt; API.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 10, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now upload rear images for driver’s licenses and other identification documents.&lt;/li&gt;&lt;li&gt;You can now view all of your prior document submissions in Dashboard.&lt;/li&gt;&lt;li&gt;We’ve updated transaction descriptions in Dashboard to be more readable.&lt;/li&gt;&lt;li&gt;We’ve added additional polish to our move money flows, improving the ability to send money to saved External Accounts.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 03, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve added newly designed move money flows in Dashboard to make it easier to pay saved External Accounts, created a review step to reduce commonly made errors, and introduced a few other experience improvements.&lt;/li&gt;&lt;li&gt;Open Fee Statements for the current month are now visible in Dashboard.&lt;/li&gt;&lt;li&gt;Document requests for late returns and proof of authorization requests are now visible in Dashboard.&lt;/li&gt;&lt;li&gt;The ACH &lt;code&gt;notifications_of_change&lt;/code&gt; &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#ach-transfer-object&quot;&gt; attribute &lt;/a&gt; now has all of its &lt;code&gt;change_code&lt;/code&gt;s documented.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Overview of Real-Time Payments</title><link>https://increase.com/documentation/real-time-payments</link><guid isPermaLink="true">https://increase.com/documentation/real-time-payments</guid><description>Real-Time Payments is an instant payment service developed by The Clearing House. It reaches roughly 71% of US depository accounts. Learn more about how Real-Time Payments work and pitfalls to avoid.</description><pubDate>Thu, 24 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;h1&gt;Overview of Real-Time Payments&lt;/h1&gt;&lt;h4&gt;An introductory guide explaining Real-Time Payments, how they function, and key concepts for operating an RTP integration.&lt;/h4&gt;&lt;hr&gt;&lt;p&gt;Real-Time Payments is a USD only instant payment service developed by The Clearing House. It reaches roughly 71% of US depository accounts.&lt;/p&gt;&lt;h2&gt;How Real-Time Payments work&lt;/h2&gt;&lt;p&gt;Each participating financial institution maintains a balance in a shared New York Federal Reserve account to fund their account holders’ activity. This allows interbank settlement to happen immediately. Unlike wires, Real-Time Payments doesn’t have a culture of manual intervention. This leads to more immediate and deterministic operations. Like wires, Real-Time Payments are irrevocable. To understand how Real-Time Payments work, we can discuss it in a few stages.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-rtp-process.png&quot; alt=&quot;Real-Time Payments process&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Initiation&lt;/strong&gt;: A sender creates a Real-Time Payment, which includes mandatory details like the recipient account number, routing number, amount, and remittance information. Unlike other types of transfers, Real-Time Payments also require that the sender provide their own account number.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Submission&lt;/strong&gt;: The originating financial institution verifies the transfer details, ensuring the sender has sufficient funds to cover the transaction. Then the transfer details are submitted to The Clearing House for review. Unlike ACH, these transfers are not batched and are submitted on a transaction-by-transaction basis.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Verification&lt;/strong&gt;: The Clearing House verifies that the transfer details are correct and then forwards the information to the receiving financial institution. If they are unable to complete the transfer, it is rejected and the originating financial institution receives a notification of the failed transfer.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Acknowledgement&lt;/strong&gt;: The receiving financial institution confirms they have received the message and accepts the transfer. The receiving institution can also reject the transfer for a variety of reasons.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Settlement&lt;/strong&gt;: Following acknowledgement, The Clearing House immediately moves funds between the originating and receiving financial institutions&apos; accounts.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Confirmation&lt;/strong&gt;: After the transfer is processed, both the sender and the receiver receive immediate notifications about the transaction. This entire process happens within a matter of seconds.&lt;/p&gt;&lt;h2&gt;Rejections, not reversals&lt;/h2&gt;&lt;p&gt;Real-Time Payments transfers can fail. Common reasons are that the receiving account number details aren’t valid or the account has been closed. Once they succeed, Real-Time Payments cannot be reversed or returned.&lt;/p&gt;&lt;h2&gt;Request for Payment&lt;/h2&gt;&lt;p&gt;Real-Time Payments supports a &amp;quot;Request for Payment&amp;quot; mechanism. This feature allows beneficiaries to request funds from another party. The user experience varies by institution.&lt;/p&gt;&lt;h2&gt;Availability&lt;/h2&gt;&lt;p&gt;The network is always available, excepting scheduled downtime for maintenance. Transactions are confirmed by receiving institutions in real-time.&lt;/p&gt;&lt;h2&gt;Support&lt;/h2&gt;&lt;p&gt;Real-Time Payments works well but because support isn’t as widespread as ACH you need a fallback. You can see if a routing number supports Real-Time Payments using our &lt;a href=&quot;https://increase.com/documentation/api/routing-numbers&quot;&gt;Routing Number endpoint&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Message format&lt;/h2&gt;&lt;p&gt;Real-Time Payments use the &lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_20022&quot;&gt;ISO 20022 messaging format&lt;/a&gt;, which defines a wide ontology of financial services metadata. The FedNow service uses the same format.&lt;/p&gt;&lt;h2&gt;Limits&lt;/h2&gt;&lt;p&gt;Real-Time Payments are subject to limits by The Clearing House. As of February 2025, &lt;a href=&quot;https://www.theclearinghouse.org/payment-systems/Articles/2024/12/Higher_10_Million_RTP_Network_Transaction_Limit_Empowers_New_Uses_12-04-2024&quot;&gt;the per-transaction limit is $10,000,000&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Zelle and related networks&lt;/h2&gt;&lt;p&gt;Zelle is a digital payments network with a similar profile. &lt;a href=&quot;https://www.theclearinghouse.org/payment-systems/articles/2021/02/02252021_zelle-over-rtp-network&quot;&gt;Zelle payments can be settled over the Real-Time Payments network&lt;/a&gt;, but they are not interoperable.&lt;/p&gt;&lt;/article&gt;</content:encoded><category>Article</category></item><item><title>2023 Q2 Newsletter</title><link>https://increase.com/newsletter/q2-2023</link><guid isPermaLink="true">https://increase.com/newsletter/q2-2023</guid><description>Changes for 2023 Q2, including Transactions vs Transfers guide, documentation refactoring, and more.</description><pubDate>Fri, 30 Jun 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;June 26, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We’ve added a new guide for understanding the differences between &lt;a href=&quot;https://increase.com/documentation/transactions-transfers&quot;&gt; Transactions and Transfers &lt;/a&gt; in our documentation.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;June 19, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve refactored our &lt;a href=&quot;https://increase.com/documentation&quot;&gt;documentation&lt;/a&gt; and &lt;a href=&quot;https://increase.com/documentation/api&quot;&gt;API reference&lt;/a&gt; to improve navigation and surface more information by default.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;June 12, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We’ve added support for a &lt;a href=&quot;https://increase.com/documentation/software-development-kits#go&quot;&gt; Go SDK &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Checks can now be stopped before they’re mailed.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;June 05, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view the raw return code ( &lt;code&gt;raw_return_reason_code&lt;/code&gt;) on a returned &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#ach-transfer-object&quot;&gt; ACH Transfer &lt;/a&gt; including a brief description ( &lt;code&gt;return_reason_code&lt;/code&gt;).&lt;/li&gt;&lt;li&gt;Dashboard now surfaces additional information in object lists including Transactions, Cards, Account Numbers, and Transfers lists.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 29, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view the interest rate earned by an Account in the &lt;a href=&quot;https://increase.com/documentation/api/accounts&quot;&gt;Accounts API&lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Post Office Boxes are no longer accepted as valid Entity addresses, with the exception of Army Post Office (APO) and Fleet Post Office (FPO) addresses.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 22, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;If you have more than one &lt;a href=&quot;https://increase.com/documentation/api/programs&quot;&gt;Program&lt;/a&gt;, you&apos;ll now need to specify a &lt;code&gt;program_id&lt;/code&gt; when &lt;a href=&quot;https://increase.com/documentation/api/accounts#create-an-account&quot;&gt; creating a new Account &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now create &lt;a href=&quot;https://increase.com/documentation/api/programs#sandbox-create-a-program&quot;&gt; Programs in Sandbox &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 15, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New Entity views in Dashboard let you review and edit your information and give you access to quick actions, all in one place.&lt;/li&gt;&lt;li&gt;With Programs, platforms can now report compliance data (such as metrics, complaints, and third-party risk reports) directly in Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 17, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now view detailed timelines for transfers in Dashboard.&lt;/li&gt;&lt;li&gt;The new &lt;code&gt;pending_reviewing&lt;/code&gt; status on a transfer indicates when a transfer is under review by Increase.&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#ach-transfer-object&quot;&gt; ACH Transfer API &lt;/a&gt; now includes multiple &lt;code&gt;notifications_of_change&lt;/code&gt;, if they are sent by the receiving bank.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 10, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now override webhook Event Subscriptions for Real-Time Decisions in the sandbox by specifying an &lt;code&gt;event_subscription_id&lt;/code&gt; in the &lt;a href=&quot;https://increase.com/documentation/api/card-payments#sandbox-create-a-card-authorization&quot;&gt; simulation &lt;/a&gt; . This is helpful when multiple developers are building in the same sandbox environment.&lt;/li&gt;&lt;li&gt;Our new &lt;a href=&quot;https://increase.com/documentation/api/accounts#retrieve-an-account-balance&quot;&gt; Balance Lookups API &lt;/a&gt; enables you to see the available and current balance of your accounts. This will soon replace the balance attribute on &lt;a href=&quot;https://increase.com/documentation/api/accounts#account-object&quot;&gt; Accounts &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Our new beta &lt;a href=&quot;https://increase.com/documentation/api/exports&quot;&gt;Exports API&lt;/a&gt; enables you to download your Increase data in batches. Check out the &lt;a href=&quot;https://increase.com/documentation/exports&quot;&gt; Exports documentation &lt;/a&gt; for more information.&lt;/li&gt;&lt;li&gt;You can now update your Entity&apos;s address in Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;April 3, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve written new guides to common &lt;a href=&quot;https://increase.com/documentation&quot;&gt;Networks&lt;/a&gt;, such as ACH, Check 21, and Fedwire. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Let us know&lt;/a&gt; what networks you&apos;d like us to write about next!&lt;/li&gt;&lt;li&gt;You can now simulate an &lt;a href=&quot;https://increase.com/documentation/api/accounts#sandbox-create-an-interest-payment&quot;&gt; Interest Payment &lt;/a&gt; to your Account.&lt;/li&gt;&lt;li&gt;Transfer templates are now deprecated in favor of &lt;a href=&quot;https://increase.com/documentation/api/external-accounts&quot;&gt; External Accounts &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>Overview of Check 21</title><link>https://increase.com/documentation/check-21</link><guid isPermaLink="true">https://increase.com/documentation/check-21</guid><description>Check 21 is the Federal Reserve’s electronic check clearing service. Learn more about how Check 21 works and pitfalls to avoid.</description><pubDate>Sun, 02 Apr 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;h1&gt;Overview of Check 21&lt;/h1&gt;&lt;h4&gt;An introductory guide explaining Check 21, how it functions, and key concepts for operating a check integration.&lt;/h4&gt;&lt;hr&gt;&lt;p&gt;&lt;a href=&quot;https://www.frbservices.org/financial-services/check&quot;&gt;Check 21&lt;/a&gt; is the Federal Reserve’s electronic check clearing service. It’s an asynchronous network where batches of check images are sent to the Federal Reserve, sorted, and transmitted onwards to payers’ depository institutions. Check 21 settles within the financial institutions’ Federal Reserve accounts.&lt;/p&gt;&lt;h2&gt;How Check 21 works&lt;/h2&gt;&lt;p&gt;Check 21 submissions require images of the front and back of the check. Details like the amount, routing number, and account number are parsed and included in the submissions. Although much of the parsing can be automated, check processing is labor intensive. Here’s how it works:&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://increase.com/images/docs-checks-flow.png&quot; alt=&quot;How Check 21 works&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Check capture&lt;/strong&gt;: When a check is deposited at a bank, the bank captures an electronic image of the front and back of the check along with the Magnetic Ink Character Recognition (MICR) line data. The physical check is truncated (i.e., not sent to the paying bank). Instead, the electronic image and associated data are used for processing.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Submission&lt;/strong&gt;: The bank creates an Image Cash Letter (ICL), which includes the electronic check images and associated data. The ICL is formatted according to the &lt;a href=&quot;https://www.frbservices.org/binaries/content/assets/crsocms/financial-services/check/setup/frb-x937-standards-reference.pdf&quot;&gt;X9.37 or X9.100-187 standards&lt;/a&gt;. The ICL is transmitted over a secure network to the Federal Reserve for further processing.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Federal Reserve processing&lt;/strong&gt;: The Federal Reserve receives the ICL and validates it for compliance with Check 21 standards. This includes checking for &lt;a href=&quot;https://www.frbservices.org/binaries/content/assets/crsocms/financial-services/check/setup/iqa-settings.pdf&quot;&gt;image quality&lt;/a&gt;, completeness, and correctness of the MICR line data. The Federal Reserve routes the electronic check image to the paying bank (the bank on which the check is drawn) using the check&apos;s routing number.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Acceptance&lt;/strong&gt;: The paying bank receives the check image and verifies it for accuracy, ensuring that the paying account is open and that there is a sufficient balance. If the check is accepted, the bank posts the transaction to the account holder&apos;s account, debiting the amount specified on the check.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Funds transfer&lt;/strong&gt;: Upon validation, the paying bank notifies the Federal Reserve indicating the acceptance of the check. The Federal Reserve acknowledges the receipt of the notification and then facilitates the financial settlement between the banks involved. This typically occurs through the Federal Reserve&apos;s FedACH or Fedwire services.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Funds availability&lt;/strong&gt;: The depositary bank&apos;s own funds availability policy will determine when the funds are available to the account holder.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Returns and adjustments&lt;/strong&gt;: If a payer’s financial institution declines to accept a check (for example, insufficient funds or the account being closed), they can return it through Check 21. The paying bank creates a return ICL and sends it back to the depository bank through the Federal Reserve. Any discrepancies or issues identified during processing are handled through adjustments, which are processed similarly to the original transactions.&lt;/p&gt;&lt;h2&gt;Disputes&lt;/h2&gt;&lt;p&gt;Explicitly, Check 21 doesn’t intermediate disputes. This is different to the card networks.&lt;/p&gt;&lt;h2&gt;Substitute checks&lt;/h2&gt;&lt;p&gt;In the event a paper check is needed, the Federal law allows the creation and use of substitute checks. Substitute checks are used when the clearing or receiving bank either cannot process electronic images, or prefers a paper document. Occasionally, paper checks are used as a proof of payment or for legal or record keeping purposes. In these situations, the customer can request a substitute check to be provided.&lt;/p&gt;&lt;h2&gt;Alternatives&lt;/h2&gt;&lt;p&gt;As an alternative to Check 21, ACH supports converting checks to ACH transfers. These check conversions are limited to checks under USD 25k and can’t be used for checks with auxiliary on-us data (which is typically a check number).&lt;/p&gt;&lt;h2&gt;Schedule&lt;/h2&gt;&lt;p&gt;The Federal Reserve’s Check 21 schedule is here:&lt;/p&gt;&lt;p&gt;https://www.frbservices.org/financial-services/check/check21.html&lt;/p&gt;&lt;h2&gt;Technical implementation&lt;/h2&gt;&lt;p&gt;Check 21 uses a public format. The specifications are available from the &lt;a href=&quot;https://www.frbservices.org/binaries/content/assets/crsocms/financial-services/check/setup/frb-x937-standards-reference.pdf&quot;&gt;Federal Reserve Bank&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The format mixes EBCDIC and in-lined TIFF images.&lt;/p&gt;&lt;h2&gt;Operating a Check 21 integration&lt;/h2&gt;&lt;p&gt;Check 21 doesn&apos;t have a positive feedback mechanism. You don&apos;t know if a check has been accepted by the payer&apos;s bank. You solely know if you haven&apos;t received a return yet.&lt;/p&gt;&lt;p&gt;There are specialized check scanners which scan the front and back of checks and parse the &lt;a href=&quot;https://en.wikipedia.org/wiki/Magnetic_ink_character_recognition&quot;&gt;Magnetic Ink Character Recognition (MICR)&lt;/a&gt; values. These can be useful if you’re accepting physical checks at scale.&lt;/p&gt;&lt;p&gt;Check 21 also supports Remote Deposit Capture (RDC). This allows account holders to submit images of checks.&lt;/p&gt;&lt;p&gt;While most returns are received through the regular return item channel, you’ll also want to watch for adjustments. They’re far more manual.&lt;/p&gt;&lt;/article&gt;</content:encoded><category>Article</category></item><item><title>2023 Q1 Newsletter</title><link>https://increase.com/newsletter/q1-2023</link><guid isPermaLink="true">https://increase.com/newsletter/q1-2023</guid><description>Changes for 2023 Q1, including Programs introduction, wire transfer requirements, SDK launches, and more.</description><pubDate>Fri, 31 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;March 27, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve introduced &lt;a href=&quot;https://increase.com/documentation/api/programs&quot;&gt;Programs&lt;/a&gt; to guide the compliance and commercial terms for Accounts. You can also view your &lt;a href=&quot;https://dashboard.increase.com/settings/programs&quot;&gt; Programs in Dashboard &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;&lt;code&gt;beneficiary_address_line1&lt;/code&gt; is now a required field on &lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#create-a-wire-transfer&quot;&gt; outbound wires &lt;/a&gt; for transfers made through Blue Ridge Bank.&lt;/li&gt;&lt;li&gt;We&apos;ve launched &lt;a href=&quot;https://increase.com/documentation/software-development-kits&quot;&gt; Java and Kotlin Software Development Kits &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;March 13, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve launched &lt;a href=&quot;https://increase.com/documentation/software-development-kits&quot;&gt; Python and Node Software Development Kits &lt;/a&gt; ! We&apos;d love for you to try them out and &lt;a href=&quot;mailto:support@increase.com&quot;&gt; give us feedback &lt;/a&gt; as you build your integration. Go, Java, and Kotlin are coming soon. Let us know if there&apos;s another language you&apos;d like us to support.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;March 06, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now require everyone in your Team to set up two-factor authentication on your &lt;a href=&quot;https://dashboard.increase.com/settings/team&quot;&gt; Team&apos;s settings page &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can also view events related to your Team&apos;s security changes, such as password resets and two-factor authentication changes, on your &lt;a href=&quot;https://dashboard.increase.com/settings/team&quot;&gt; Team&apos;s settings page &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 27, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now create and revoke API keys in Dashboard.&lt;/li&gt;&lt;li&gt;You can now simulate returning check deposits using the &lt;a href=&quot;https://increase.com/documentation/api/check-deposits#sandbox-return-a-check-deposit&quot;&gt; Simulations API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now access the accompanying message that is printed on a &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt; CheckTransfer &lt;/a&gt; &apos;s letter.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 20, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now return inbound ACH Transfers with our new &lt;a href=&quot;https://increase.com/documentation/api/inbound-ach-transfers#return-an-inbound-ach-transfer&quot;&gt; returns API &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 13, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We&apos;ve made usability changes to Dashboard, including a refreshed Account page.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;February 6, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We have a &lt;a href=&quot;https://increase.com/&quot;&gt;new landing page&lt;/a&gt;!&lt;/li&gt;&lt;li&gt;We now include Visa specific fields in &lt;a href=&quot;https://increase.com/documentation/api/real-time-decisions#real-time-decision-object.card_authorization&quot;&gt; card authorization requests &lt;/a&gt; that can be used to differentiate between online and offline purchases.&lt;/li&gt;&lt;li&gt;You can now receive and respond to inbound wire drawdown requests through our &lt;a href=&quot;https://increase.com/documentation/api/inbound-wire-drawdown-requests#inbound-wire-drawdown-request-object&quot;&gt; API &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 30, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We now support notes on &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt; CheckTransfers &lt;/a&gt; that will be printed on the letter included with the check.&lt;/li&gt;&lt;li&gt;You can now schedule transfers with any interval in Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 23, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now link External Accounts using Stripe&apos;s Financial Connections through Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 16, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We now have a &lt;a href=&quot;https://status.increase.com/&quot;&gt;status page&lt;/a&gt; !&lt;/li&gt;&lt;li&gt;You can now view images of deposited CheckTransfers in Dashboard and the &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt; CheckTransfer API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now simulate depositing a CheckTransfer with our &lt;a href=&quot;https://increase.com/documentation/api/inbound-check-deposits#sandbox-create-an-inbound-check-deposit&quot;&gt; Simulations API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;&lt;code&gt;beneficiary_name&lt;/code&gt; is now a required field on &lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#create-a-wire-transfer&quot;&gt; outbound wires &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 9, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;An Account&apos;s available balance, which represents the balance less any open Pending Transactions, is now available via the &lt;a href=&quot;https://increase.com/documentation/api/accounts#account-object&quot;&gt; Account API &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;January 3, 2023&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now approve and require approval on specific transfers, rather than all or nothing, through our API.&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;https://increase.com/documentation/api/ach-transfers#ach-transfer-object&quot;&gt; ACH Transfer API &lt;/a&gt; now includes the time the transfer was submitted to FedACH, as well as beneficiary information.&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;https://increase.com/documentation/api/wire-transfers#wire-transfer-object&quot;&gt; Wire Transfer API &lt;/a&gt; now includes the time the transfer was submitted to Fedwire, as well as beneficiary information.&lt;/li&gt;&lt;li&gt;Simulations now include richer data for &lt;a href=&quot;https://increase.com/documentation/api/inbound-ach-transfers#sandbox-create-an-inbound-ach-transfer&quot;&gt; ACH Transfers &lt;/a&gt; , &lt;a href=&quot;https://increase.com/documentation/api/inbound-wire-transfers#sandbox-create-an-inbound-wire-transfer&quot;&gt; Wire Transfers &lt;/a&gt; , and &lt;a href=&quot;https://increase.com/documentation/api/inbound-real-time-payments-transfers#sandbox-create-an-inbound-real-time-payments-transfer&quot;&gt; Real-Time Payments &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now filter Transactions with specific source categories using the &lt;a href=&quot;https://increase.com/documentation/api/transactions#list-transactions&quot;&gt; Transactions List API &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>2022 Q4 Newsletter</title><link>https://increase.com/newsletter/q4-2022</link><guid isPermaLink="true">https://increase.com/newsletter/q4-2022</guid><description>Changes for 2022 Q4, including general availability launch, Real-Time Payments API, Check Transfer improvements, and more.</description><pubDate>Sat, 31 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;December 12, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Increase is now generally available and no longer requires an invite code to sign up! &lt;a href=&quot;https://dashboard.increase.com/signup&quot;&gt; Start building today &lt;/a&gt; !&lt;/li&gt;&lt;li&gt;Our Real-Time Payments API, built directly on top of The Clearing House network, now supports sending Requests for Payment. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to try it out!&lt;/li&gt;&lt;li&gt;You can now specify a return address on outbound checks with our &lt;a href=&quot;https://increase.com/documentation/api/check-transfers#create-a-check-transfer&quot;&gt; Check Transfers API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Card settlement transactions now surface the presentment amount and currency.&lt;/li&gt;&lt;li&gt;Transaction CSV exports from Dashboard now include the transaction type.&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;https://increase.com/documentation/api/real-time-decisions&quot;&gt; Real Time Decisions API &lt;/a&gt; now includes the Card Profile ID if it was set by the Real Time Decision.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;December 5, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now receive webhook events for Digital Wallet Tokens using the &lt;a href=&quot;https://increase.com/documentation/api/events#event-object&quot;&gt; Events API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now simulate refunding a card transaction using the &lt;a href=&quot;https://increase.com/documentation/api/card-payments#sandbox-refund-a-card-transaction&quot;&gt; Simulations API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Templates are being deprecated in favor of &lt;a href=&quot;https://increase.com/documentation/api/external-accounts&quot;&gt; External Accounts &lt;/a&gt; , which are now available in Dashboard. Existing Templates will continue to work as expected, but you won&apos;t be able to create new ones.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/check-transfers#check-transfer-object&quot;&gt; Check Transfers &lt;/a&gt; now have a returned status to let you know if there was an issue with the receiver.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 28, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now simulate card disputes using the &lt;a href=&quot;https://increase.com/documentation/api/card-disputes#sandbox-advance-the-state-of-a-card-dispute&quot;&gt; Simulations API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now upload supplemental documents for your entity using the &lt;a href=&quot;https://increase.com/documentation/api/supplemental-documents#create-a-supplemental-document-for-an-entity&quot;&gt; Entity API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now retrieve digital wallet tokens that are created when a user adds their Card to Apple Pay or Google Pay using the &lt;a href=&quot;https://increase.com/documentation/api/digital-wallet-tokens&quot;&gt; Digital Wallet Tokens API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;We now include additional originator information, such as name and address, on outbound wires.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;November 14, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We have a new &lt;a href=&quot;https://increase.com/documentation/platform-implementation&quot;&gt; platform integration guide &lt;/a&gt; to help you get started when building your business with a compliance forward mindset!&lt;/li&gt;&lt;li&gt;You can now use SMS to verify a card when adding it to a digital wallet using our &lt;a href=&quot;https://increase.com/documentation/api/cards&quot;&gt;Cards API&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;You can now check if a routing number supports ACH, wire, and Real Time Payment transfers using our &lt;a href=&quot;https://increase.com/documentation/api/routing-numbers&quot;&gt; Routing Number API &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 31, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Receiving inbound Real-Time Payments is now generally available.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 24, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now specify an Entity&apos;s relationship to your group using the &lt;a href=&quot;https://increase.com/documentation/api/entities&quot;&gt;Entities API&lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now create beneficial owners in the &lt;a href=&quot;https://increase.com/documentation/api/entities&quot;&gt;Entities API&lt;/a&gt; without a passport.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 10, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now add Increase cards to digital wallets such as Apple and Google Pay! If you&apos;d like to do this for cards you issue to your users, we also support custom artwork and branding. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to use this.&lt;/li&gt;&lt;li&gt;Our updated &lt;a href=&quot;https://increase.com/documentation/api/check-deposits&quot;&gt; Check Deposits API &lt;/a&gt; gives you access to details of a parsed check, such as the account number printed on the check.&lt;/li&gt;&lt;li&gt;Users can now be re-added to a Group.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;October 3, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Our new &lt;a href=&quot;https://increase.com/documentation/api/real-time-decisions&quot;&gt; Real-Time Decisions API &lt;/a&gt; lets you take actions in real-time for events such as card authorizations.&lt;/li&gt;&lt;li&gt;Our new &lt;a href=&quot;https://increase.com/documentation/api/wire-drawdown-requests&quot;&gt; Wire Drawdown Requests API &lt;/a&gt; lets you request that someone else send you a wire transfer.&lt;/li&gt;&lt;li&gt;There&apos;s a new &lt;a href=&quot;https://increase.com/documentation/api/entities&quot;&gt;Entities API&lt;/a&gt; that includes richer information about your legal entities.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>2022 Q3 Newsletter</title><link>https://increase.com/newsletter/q3-2022</link><guid isPermaLink="true">https://increase.com/newsletter/q3-2022</guid><description>Changes for 2022 Q3, including check numbers, Real-Time Payments simulation, company creation flow, and more.</description><pubDate>Fri, 30 Sep 2022 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;September 5, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Check numbers are now available in Dashboard and the &lt;a href=&quot;https://increase.com/documentation/api/check-transfers&quot;&gt; Check Transfers API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/inbound-real-time-payments-transfers#sandbox-create-an-inbound-real-time-payments-transfer&quot;&gt; simulate inbound Real-Time Payments &lt;/a&gt; to your account. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to use Real-Time Payments in production.&lt;/li&gt;&lt;li&gt;Our new company creation flow improves onboarding and entity creation.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 29, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now filter transactions by direction and transaction type in Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 15, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Our new &lt;a href=&quot;https://increase.com/documentation/api/external-accounts&quot;&gt; External Accounts API &lt;/a&gt; lets you store external account details for reuse.&lt;/li&gt;&lt;li&gt;You can now redirect cashback and interest to a specific account. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to do this.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 8, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now specify the &lt;code&gt;amount&lt;/code&gt; in &lt;a href=&quot;https://increase.com/documentation/api/card-payments#sandbox-settle-a-card-authorization&quot;&gt; card settlement simulations &lt;/a&gt; .&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;August 1, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Our new Cards webhook, which enables you to make real time decisions in the authorization flow, is in private beta! &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to try it out!&lt;/li&gt;&lt;li&gt;Cards now appear in search.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 25, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://dashboard.increase.com/developers/logs&quot;&gt; API logs &lt;/a&gt; are now viewable under Developers.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;July 18, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now validate routing numbers against our new &lt;a href=&quot;https://increase.com/documentation/api/routing-numbers&quot;&gt; Routing Number API &lt;/a&gt; .&lt;/li&gt;&lt;li&gt;Our new Real-Time Payments API, built directly on top of The Clearing House network, is in private beta. &lt;a href=&quot;mailto:support@increase.com&quot;&gt;Reach out&lt;/a&gt; if you&apos;d like to try it out!&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/api/account-statements&quot;&gt; Account Statements &lt;/a&gt; are now available in the API.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dashboard.increase.com/compliance/entities&quot;&gt; Entities &lt;/a&gt; now have their own tab under Settings.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dashboard.increase.com/developers/events&quot;&gt; Events &lt;/a&gt; are now viewable under Developers.&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item><item><title>2022 Q2 Newsletter</title><link>https://increase.com/newsletter/q2-2022</link><guid isPermaLink="true">https://increase.com/newsletter/q2-2022</guid><description>Changes for 2022 Q2, including wire routing details, stop payment functionality, Cards API launch, and more.</description><pubDate>Thu, 30 Jun 2022 00:00:00 GMT</pubDate><content:encoded>&lt;article&gt;&lt;p&gt;&lt;em&gt;June 20, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can download a PDF of wire routing details for an Account Number from Dashboard.&lt;/li&gt;&lt;li&gt;If you need to stop payment on a Check Transfer, you may now &lt;a href=&quot;https://increase.com/documentation/api/check-transfers#stop-payment-on-a-check-transfer&quot;&gt; do so &lt;/a&gt; via the API.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;June 6, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Our new Cards API, built directly on top of the Visa network, is now in public beta. &lt;a href=&quot;https://increase.com/documentation/api/cards&quot;&gt;Try it out!&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 30, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/check-deposits&quot;&gt; deposit checks &lt;/a&gt; in the API and Dashboard.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 23, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can now &lt;a href=&quot;https://increase.com/documentation/api/overview#sandbox-simulations&quot;&gt; simulate &lt;/a&gt; certain types of activity, such as inbound ACH transfers, in the sandbox.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://increase.com/documentation/oauth&quot;&gt;OAuth applications&lt;/a&gt; are now generally available - you can make applications to work with data for other Increase users.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 16, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Files (both sent by you to Increase, and generated by Increase for you) are now exposed in the API. You can listen to &lt;code&gt;file.created&lt;/code&gt; webhooks to know when Increase generates certain Files (such as statement PDFs) for you.&lt;/li&gt;&lt;li&gt;There are no longer limits on Account Number or Card creation in the sandbox.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;May 9, 2022&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Webhooks now have more predictable payloads and work in the sandbox. There&apos;s a guide on how they work &lt;a href=&quot;https://increase.com/documentation/webhooks&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;There&apos;s now an &lt;a href=&quot;https://increase.com/documentation/api/overview#openapi&quot;&gt; OpenAPI schema &lt;/a&gt; for our API.&lt;/li&gt;&lt;li&gt;This changelog now exists!&lt;/li&gt;&lt;/ul&gt;&lt;/article&gt;</content:encoded><category>Product updates</category></item></channel></rss>