openapi_client
Version, currently 0.1.01 version
- 0.1.0latestSep 2, 2026
github.com/simplebilly/simplebilly-crystal
- This shard maps to a REST API
Installation
# Add this to your shard.yml
dependencies:
openapi_client:
github: simplebilly/simplebilly-crystal
version: ~> 0.1.0Then run:
shards installshard.yml
- Crystal
>= 0.35.1- License
- unlicense
Dependencies
Runtime Dependencies
- crest~> 1.3.13github: mamantoha/crest
Development Dependencies
README
SimpleBilly Crystal SDK
openapi_client
The Crystal module for the SimpleBilly API
Simplebilly API - Bookkeeping, CRM, ERP. Multi-tenant API: a tenant is isolated and routed by subdomain (or a configured custom domain) under the base domain.
Rate limiting
All endpoints are rate-limited per client IP: 100 requests per minute on API routes and 5 requests per minute on authentication routes. Exceeding a limit returns 429 Too Many Requests; the window resets after 60 seconds.
This SDK is automatically generated by the OpenAPI Generator project:
- API version: 0.1.0
- Package version: 1.0.0
- Generator version: 7.25.0
- Build package: org.openapitools.codegen.languages.CrystalClientCodegen For more information, please visit https://simplebilly.com/en/legal/imprint
Installation
Install from Git
Add the following to shard.yaml
dependencies:
openapi_client:
github: GIT_USER_ID/GIT_REPO_ID
version: ~> 1.0.0
Request signing / custom auth
Static credentials (apiKey, basic, bearer, oauth) are applied from the OpenAPI
spec by Configuration#apply_auth!. A request signature — a hash computed per request
over the method, full URL, body and a timestamp (OVH, AWS SigV4, RFC 9421, ...) — cannot be
modeled as an OpenAPI security scheme, so it is injected via the sign_request hook on
Configuration. It runs on every request, after apply_auth! and just before the HTTP
call, with (method, full_url, body, headers, query); mutate headers/query in place:
require "digest/sha1"
config = OpenAPIClient::Configuration.new
app_key, app_secret, consumer_key = "...", "...", "..."
config.sign_request = ->(method : Symbol, url : String, body : String?,
headers : HTTP::Headers,
_query : Hash(String, String | Array(String))) do
ts = Time.utc.to_unix.to_s
sig = "$1$" + Digest::SHA1.hexdigest(
{app_secret, consumer_key, method.to_s.upcase, url, body || "", ts}.join("+"))
headers["X-Ovh-Application"] = app_key
headers["X-Ovh-Consumer"] = consumer_key
headers["X-Ovh-Timestamp"] = ts
headers["X-Ovh-Signature"] = sig
nil
end
Design notes:
urlis the base URL + path without the query string — the hook runs before Crest re-encodesqueryinto the final URL. If your signature must cover the query string, rebuild it from thequeryargument (5th param) inside the hook, matching Crest'sparams_encoder, or rely on a native Crest hook.bodyis nil for form/multipart operations (application/x-www-form-urlencoded, file uploads): the form is encoded by Crest after this hook, so a body-hashing signer cannot see it here. Signing is therefore supported for JSON-body and query/path requests; form-body signing would need a hook at the Crest layer.
Development
Install dependencies
shards
Run the tests:
crystal spec
SimpleBilly API SDK
This client was generated automatically from the SimpleBilly OpenAPI specification.
- Homepage: https://simplebilly.com
- API documentation: https://simplebilly.com/api/docs
- OpenAPI specification: https://api.simplebilly.com/openapi.json
- SDK sources: https://github.com/simplebilly
Contributing
See CONTRIBUTING.md — do not edit generated code by hand.
Security
See SECURITY.md for reporting vulnerabilities.
License
MIT — Copyright (c) SimpleBilly GmbH.
SimpleBilly is the first bookkeeping, CRM, online shop and ERP that follows the mantra: "just do it"
Generated by the SimpleBilly SDK pipeline — do not edit manually.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.0- Tagged
- Sep 2, 2026
- Commit
c8b1a3aa45ad- Crystal
>= 0.35.1- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/simplebilly/simplebilly-crystal
Metadata
- Created
- Sep 10, 2026
- Updated
- Sep 26, 2026
- Synced
- Sep 25, 2026
- Versions
- 1