PHPackages                             tesote/sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. tesote/sdk

ActiveLibrary[API Development](/categories/api)

tesote/sdk
==========

Official PHP client SDK for the equipo.tesote.com API.

v0.2.0(2mo ago)20MITJavaPHP ^8.1CI passing

Since Apr 28Pushed 2mo agoCompare

[ Source](https://github.com/tesote/sdk)[ Packagist](https://packagist.org/packages/tesote/sdk)[ Docs](https://www.tesote.com/docs/sdk/php)[ RSS](/packages/tesote-sdk/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (3)Versions (3)Used By (0)

   ![Tesote](.github/assets/logo.svg)

tesote-sdk
==========

[](#tesote-sdk)

 [![npm](https://camo.githubusercontent.com/fcf69a490c73579281d8ccdd9ebd7df96bc3752852e647a8c5f4f2e301d40e0b/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f407465736f74652e636f6d2f73646b3f6c6162656c3d6e706d26636f6c6f723d636233383337)](https://www.npmjs.com/package/@tesote.com/sdk) [![PyPI](https://camo.githubusercontent.com/0b586e21b1458a88dbe43d6cce40eb088248c36c153c40c7b0f6621870ebaa87/68747470733a2f2f696d672e736869656c64732e696f2f707970692f762f7465736f74652d73646b3f6c6162656c3d7079706926636f6c6f723d333737366162)](https://pypi.org/project/tesote-sdk/) [![Gem](https://camo.githubusercontent.com/64135ab6c182a1536d462c63320d6782a524e0a363ee3ee0612b17b2b6bb7154/68747470733a2f2f696d672e736869656c64732e696f2f67656d2f762f7465736f74652d73646b3f6c6162656c3d7275627967656d7326636f6c6f723d636330303030)](https://rubygems.org/gems/tesote-sdk) [![Maven Central](https://camo.githubusercontent.com/90237ef1a66526e7e37aab72abab77e3b06d95e97b8b4770810376447ad55b65/68747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f636f6d2e7465736f74652f73646b3f6c6162656c3d6d6176656e26636f6c6f723d633731613336)](https://central.sonatype.com/artifact/com.tesote/sdk) [![Packagist](https://camo.githubusercontent.com/130e1896582853a66c0603c448248050316ec2f35f0a43d7d960b3af61235227/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7465736f74652f73646b3f6c6162656c3d7061636b616769737426636f6c6f723d663238643161)](https://packagist.org/packages/tesote/sdk) [![Go](https://camo.githubusercontent.com/6806f8b7edaff34fb524b48f38cdc3bacb9f46acf87ee7c8057467520fbc5b35/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f7461672f7465736f74652f73646b3f66696c7465723d676f2d2a266c6162656c3d676f26636f6c6f723d303061646438)](https://pkg.go.dev/github.com/tesote/sdk/go) [![NuGet](https://camo.githubusercontent.com/3e31094f533f9c26c6fcb5264d361fb239c2a7d0eedcd1f0e737e1a08d694f4b/68747470733a2f2f696d672e736869656c64732e696f2f6e756765742f762f5465736f74652e53646b3f6c6162656c3d6e7567657426636f6c6f723d303034383830)](https://www.nuget.org/packages/Tesote.Sdk)
 [![License](https://camo.githubusercontent.com/0e616390fa3e29170730604aa10d5201de32c80d2c2124a33b877ffaf86c7c22/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7465736f74652f73646b3f636f6c6f723d626c7565)](LICENSE)

Official client SDKs for the [equipo.tesote.com](https://equipo.tesote.com) API. One repo, seven languages, identical surface.

LanguagePackageInstallTypeScript[`@tesote.com/sdk`](https://www.npmjs.com/package/@tesote.com/sdk)`npm i @tesote.com/sdk`Python[`tesote-sdk`](https://pypi.org/project/tesote-sdk/)`pip install tesote-sdk`Ruby[`tesote-sdk`](https://rubygems.org/gems/tesote-sdk)`gem install tesote-sdk`Java`com.tesote:sdk`Maven CentralPHP[`tesote/sdk`](https://packagist.org/packages/tesote/sdk)`composer require tesote/sdk`Go`github.com/tesote/sdk/go``go get github.com/tesote/sdk/go`C# / .NET[`Tesote.Sdk`](https://www.nuget.org/packages/Tesote.Sdk)`dotnet add package Tesote.Sdk`Full docs: ****

---

Quick start
-----------

[](#quick-start)

**TypeScript** ([`@tesote.com/sdk`](https://www.npmjs.com/package/@tesote.com/sdk))

```
import { V2Client } from '@tesote.com/sdk'

const tesote = new V2Client({ apiKey: process.env.TESOTE_API_KEY! })
const accounts = await tesote.accounts.list()
```

**Python** ([`tesote-sdk`](https://pypi.org/project/tesote-sdk/))

```
from tesote_sdk import V2Client

tesote = V2Client(api_key=os.environ["TESOTE_API_KEY"])
for account in tesote.accounts.list_all():
    print(account.id, account.balance)
```

**Ruby** ([`tesote-sdk`](https://rubygems.org/gems/tesote-sdk))

```
require 'tesote_sdk'

tesote = TesoteSdk::V2::Client.new(api_key: ENV.fetch('TESOTE_API_KEY'))
tesote.accounts.list.each { |a| puts a.id }
```

**Go** ([`github.com/tesote/sdk/go`](https://pkg.go.dev/github.com/tesote/sdk/go))

```
import tesote "github.com/tesote/sdk/go/v2"

c := tesote.New(tesote.Config{APIKey: os.Getenv("TESOTE_API_KEY")})
accounts, _ := c.Accounts.List(ctx, nil)
```

**PHP** ([`tesote/sdk`](https://packagist.org/packages/tesote/sdk))

```
use Tesote\Sdk\V2\Client;

$tesote = new Client(['apiKey' => getenv('TESOTE_API_KEY')]);
$accounts = $tesote->accounts->list();
```

**Java** ([`com.tesote:sdk`](https://central.sonatype.com/artifact/com.tesote/sdk))

```
import com.tesote.sdk.v2.V2Client;

var tesote = V2Client.builder().apiKey(System.getenv("TESOTE_API_KEY")).build();
var accounts = tesote.accounts().list();
```

**C# / .NET** ([`Tesote.Sdk`](https://www.nuget.org/packages/Tesote.Sdk))

```
using Tesote.Sdk;

var tesote = new V2Client(new ClientOptions { ApiKey = Environment.GetEnvironmentVariable("TESOTE_API_KEY")! });
var accounts = await tesote.Accounts.ListAsync();
```

---

What you get
------------

[](#what-you-get)

- **Versioned clients side-by-side** — `V1Client`, `V2Client` from the same import. Pick per call site, mix in one process. Old versions never get removed.
- **Transport-level reliability** — automatic retries with backoff + jitter, rate-limit-aware throttling, opt-in response caching, idempotency keys for mutations.
- **Typed errors with full context** — one class per `error_code`, every error carries `request_id`, `http_status`, `retry_after`, `response_body`. Catch the narrow type you care about; ignore the rest.
- **Cursor pagination** — `list()` for one page, `listAll()` for an iterator. Mutation-mid-iteration surfaces a typed `MutationDuringPaginationError`, not silent corruption.

---

API versions
------------

[](#api-versions)

VersionAdds**v1**Accounts, transactions (read-only)**v2**+ sync sessions, transaction orders, batches, payment methods, bulk + searchBoth ship from every SDK. Back-compat is permanent.

---

Auth
----

[](#auth)

```
Authorization: Bearer

```

Get a key from your Tesote workspace settings. The SDK never persists it; it lives on the client instance only.

---

Errors
------

[](#errors)

```
import { RateLimitExceededError, WorkspaceSuspendedError } from '@tesote.com/sdk'

try {
  await tesote.transactions.bulk(items)
} catch (e) {
  if (e instanceof RateLimitExceededError) {
    console.log(`retry in ${e.retryAfter}s; req ${e.requestId}`)
  } else if (e instanceof WorkspaceSuspendedError) {
    // contact support
  } else {
    throw e
  }
}
```

Full error taxonomy: [`docs/architecture/errors.md`](docs/architecture/errors.md).

---

Development
-----------

[](#development)

This repo is a multi-language monorepo. Each language is independently testable and releasable.

TaskCommand (per-language dir)Test`bun test` · `pytest` · `bundle exec rspec` · `./gradlew test` · `composer test` · `go test ./...` · `dotnet test`Lintlanguage-native (`biome`, `ruff`, `rubocop`, `spotless`, `phpstan`, `golangci-lint`, `dotnet format`)Replay-record`bin/record-cassettes` (per-language; needs staging key)CI runs on **Blacksmith 2vcpu** runners. Releases are tag-driven per language: `ts-v1.4.2`, `python-v0.9.0`, etc. See [`docs/architecture/release.md`](docs/architecture/release.md).

---

Architecture
------------

[](#architecture)

DocTopic[versioning.md](docs/architecture/versioning.md)v1/v2 coexistence, back-compat policy[transport.md](docs/architecture/transport.md)retries, caching, rate-limits, idempotency, pagination[errors.md](docs/architecture/errors.md)typed-error taxonomy, "good error" definition[resources.md](docs/architecture/resources.md)endpoint inventory by version[auth.md](docs/architecture/auth.md)bearer token, key-type rules[testing.md](docs/architecture/testing.md)unit / replay / smoke layers, cross-language parity[release.md](docs/architecture/release.md)Blacksmith CI + per-language tag releasesStart here: [`docs/architecture/README.md`](docs/architecture/README.md).

---

Contributing
------------

[](#contributing)

Issues and PRs welcome. Read [`CLAUDE.md`](CLAUDE.md) and the architecture docs first — public-API changes need to land in **all seven languages** in the same PR.

License
-------

[](#license)

MIT.

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance83

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

87d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/41f29a18242c3782fea1fb44b75a9596aaf881d9eaa878f944f9c1976ad3d65b?d=identicon)[tesotedev](/maintainers/tesotedev)

---

Top Contributors

[![sebyx07](https://avatars.githubusercontent.com/u/5052549?v=4)](https://github.com/sebyx07 "sebyx07 (41 commits)")

---

Tags

api-clientbankingcsharpdotnetfintechgojavaopenapiphppythonrubysdktesotetypescriptapisdkpaymentsBankingtesote

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/tesote-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/tesote-sdk/health.svg)](https://phpackages.com/packages/tesote-sdk)
```

###  Alternatives

[transbank/transbank-sdk

Transbank SDK

62676.5k14](/packages/transbank-transbank-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
