# codat
Source: https://speakeasy.com/customers/codat


import { Card, Callout, CodeWithTabs, Table } from "@/mdx/components";

## Company Info
- **Company:** Codat
- **Industry:** FinTech
- **Website:** [codat.io](https://www.codat.io)

## Key Takeaways
- "Three production-ready SDKs in < 2 weeks -- accelerating time-to-market by months",
- "No need to hire dedicated eng team to maintain SDKs",
- "SDKs used by internal teams to boost developer productivity"

---

## Challenge

[Codat](https://www.codat.io) is the universal API for small business data. Intended for companies building software used by SMBs, the Codat API can be used for such varied purposes as underwriting credit risk, automating accounting, or building SMB dashboards. They serve as a one-stop shop for accessing consented business data from a customer's banking, accounting, and commerce platforms.

Max Clayton Clowes and David Coplowe are part of Codat's developer experience SWAT team; a small team, with a big mandate. And in the beginning of 2023, they asked themselves a question that many a small DevEx team has obsessed over: what is the most impactful thing we could do to reduce our user's time to build?

With the company being founded by developers, developer experience has always been at the heart of what they build. As such, Codat's dedicated DevEx team is relentlessly focused on ensuring Codat's implementation is simple and the time to integration (ie. time to 200) is measured in minutes.

In the DevEx team's review, they identified SDKs as a top priority feature to improve the time to 200 for new users. SDKs had been a long-standing request from some of their largest customers, and could be a big plus for reducing the effort for Codat to onboard smaller customers.

### Languages identification

They first identified which languages were important for them to support. In order of priority:

- [C#](https://github.com/codatio/client-sdk-csharp)
- [Typescript](https://github.com/codatio/client-sdk-typescript)
- [Python](https://github.com/codatio/client-sdk-python)
- [Go](https://github.com/codatio/client-sdk-go)

Their plan was to attack the languages one at a time, starting with the languages which they had familiarity with: Go.
But before they started coding, they first needed to decide on whether they were going to use a generator, or build the libraries by hand.

From a time to value perspective, a generator was appealing. Especially for languages where they lacked expertise, but it would mean painful tradeoffs in terms of the vision they had for their SDKs. Ease of use and good developer ergonomics was extremely important to them. In particular they wanted an SDK with:

- **Per Service Packages** - They wanted each Codat API e.g. banking, accounting, commerce to be available as a standalone package so that users could avoid bloat, and just grab what they need.
- **Type Safety** - They wanted strongly typed library so that users could catch errors at compile time, and take advantage of their IDE's auto-completion.
- **Appropriate Abstraction** - They wanted the methods in their SDK to abstract away API details like whether a parameter belongs in the path or the query. They wanted users to be able to focus on inputs & outputs.
- **Accurate Documentation** - They wanted client libraries to be well-documented, with rich usage examples that would help customers get started.

---

## Solution

Staring down the barrel of a trade-off between quality and speed, Codat went searching for alternative options. And that's when they found Speakeasy.

Speakeasy enabled Max & David to easily create SDKs which met all of the important criteria for good ergonomics — done automatically from the Codat OpenAPI spec.

<Card variant="testimonial" className="my-10"
  quote="The engineering team is consistently focused on developing Codat's core infrastructure, and we're always figuring out the most efficient way to advance our developer experience. Finding Speakeasy has been transformational in terms of our team's velocity. We've been able to progress our roadmap faster than we thought possible. We were able to get SDKs for 3 languages in production in a couple of weeks -- if we'd been on our own, it would probably have taken a month for each language. We also would likely have needed to hire developers with new language expertise that we don't necessarily have today."
  author={{
    name: "David Coplowe, Codat DevEx Team",
  }}
/>

Not only did the Speakeasy SDKs help deliver great developer ergonomics, but the managed SDK workflow made ongoing support trivial.

In particular Speakeasy's OpenAPI validation has helped them make ongoing improvements to their OpenAPI spec, which has paid dividends not just in the creation of SDKs, but in improving their API reference documentation as well.

---

## Results

<Table
  title="SDK Development Timeline Comparison"
  columns={[
    { key: "approach", header: "Approach" },
    { key: "timeline", header: "Timeline" },
    { key: "resources", header: "Resources Needed" }
  ]}
  data={[
    { approach: "Manual SDK Development", timeline: "~1 month per language", resources: "Dedicated engineers with language expertise" },
    { approach: "Speakeasy SDK Generation", timeline: "3 languages in < 2 weeks", resources: "Existing DevEx team" }
  ]}
  rowKeyField="approach"
/>

[Codat's SDKs](https://docs.codat.io/get-started/libraries) are available via their user's favorite package managers. The response has been overwhelmingly positive. Users have been delighted to have the option of integrating Codat using their preferred language and runtime.

In addition, the SDKs have had a positive impact on internal development. Codat's application teams have received a boost in productivity as they've been able to take advantage of the SDKs to handle the more mundane aspects of integrating with backend services. [Take a closer at Codat's SDKs here](https://docs.codat.io/get-started/libraries).

### Benefits for Codat's Customers

- **Shorter Integration Times**: Customers can start building with Codat APIs much faster using their preferred language
- **Better Developer Experience**: Type safety, IDE auto-completion, and well-documented methods make development more efficient
- **Reduced Overhead**: Abstraction of API details lets developers focus on their business logic instead of API mechanics

### Internal Benefits for Codat

- **Accelerated Roadmap**: Delivered a major DevEx initiative in weeks instead of months
- **Resource Efficiency**: No need to hire language specialists or dedicate engineering resources to SDK maintenance
- **Enhanced Productivity**: Internal teams use the SDKs to streamline their own integrations with Codat services
- **Improved Documentation**: OpenAPI validation led to improvements in both SDK usability and API reference documentation

---

## SDK Adoption

Codat continues to expand their SDK offerings with consistent updates as their API evolves. The Speakeasy platform ensures that as Codat adds new capabilities, their SDKs automatically stay synchronized with their latest API features.

<Table
  title="SDK Language Support"
  columns={[
    { key: "language", header: "Language" },
    { key: "package", header: "Package" }
  ]}
  data={[
    { language: "C#", package: "NuGet (5 packages)" },
    { language: "TypeScript", package: "npm (5 packages)" },
    { language: "Python", package: "PyPI (5 packages)" },
    { language: "Go", package: "Go modules (5 packages)" },
    { language: "Java", package: "Maven (5 packages)" }
  ]}
  rowKeyField="language"
/>

Each package is modular, allowing customers to install only the components they need, resulting in more efficient integration experiences.

Visit [Codat's documentation](https://docs.codat.io/get-started/libraries) to explore their full SDK offerings.