Float Financial · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Float Public API
10 actions
10 updates
documentation
Generated by API Evangelist
Written by API Evangelist tooling for Float Financial's API. It is a proposal applied on top of the contract, not a document Float Financial publishes.
What the actions change
descriptionsecuritycontacttermsOfServicex-security-contactx-api-evangelist-profileurlx-token-issuance-url
Targets 9
$.info
$.externalDocs
$
$.components.securitySchemes.bearerToken
$.paths['/v1/openapi'].get
$.servers
$.webhooks
$.components
$.tags
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Float Public API
version: 1.0.0
x-provenance:
generated: '2026-08-16'
method: generated
source: openapi/float-financial-openapi.yml
extends: openapi/float-financial-openapi.yml
note: >-
Captures API Evangelist's enrichment of Float's published OpenAPI 3.1.0 without mutating it. Every action
below states something established from Float's own public material — the docs, the live API, or the spec
itself. Nothing is invented. The original document at openapi/_original/float-financial-openapi.json stays
byte-for-byte as Float served it.
actions:
- target: $.info
description: >-
Add contact, licence-free terms and documentation links Float publishes but does not put in the spec.
update:
contact:
name: Float Financial Support
url: https://help.floatfinancial.com/hc/en-us
termsOfService: https://floatfinancial.com/legal
x-security-contact: security@floatfinancial.com
x-api-evangelist-profile: https://apis.io/float-financial
- target: $.externalDocs
description: Wire the documentation root, which the spec omits entirely.
update:
description: Float API Documentation
url: https://docs.floatfinancial.com/
- target: $
description: >-
Apply the declared bearerToken scheme globally. Float defines components.securitySchemes.bearerToken but
declares no top-level `security` and no per-operation `security`, so a generated client sends no credential
on any of the 71 operations even though all but getOpenAPI require one.
update:
security:
- bearerToken: []
- target: $.components.securitySchemes.bearerToken
description: Document how the bearer token is obtained — Float documents this only in the help centre.
update:
description: >-
Per-business API token. Create and manage tokens by logging in to app.floatfinancial.com as an
Administrator and going to Settings > Business Settings > Developers. There is no sandbox or test
environment: every token is a live production credential.
x-token-issuance-url: https://app.floatfinancial.com/
x-scoped: false
- target: $.paths['/v1/openapi'].get
description: Record that the spec endpoint is the one anonymous operation.
update:
security: []
x-auth-required: false
- target: $.servers
description: Annotate the single production server with the absence of a sandbox.
update:
- url: https://api.floatfinancial.com
description: >-
Float's Production API. This is the ONLY environment — Float's own FAQ states it does not offer a sandbox
or test environment for API access.
x-environment: production
x-sandbox-available: false
- target: $.webhooks
description: >-
Surface the four card-transaction webhook events Float documents in prose at
https://docs.floatfinancial.com/docs/webhooks. The published spec's `webhooks` object is empty, so the event
surface is invisible to any tool reading only the contract. Captured here as an annotation rather than as
fabricated channel definitions; the full catalog lives in asyncapi/float-financial-webhooks.yml.
update:
x-float-webhook-events:
- transaction.authorized
- transaction.cleared
- transaction.ready_to_export
- transaction.export_requested
x-float-webhook-signing: HMAC-SHA256 via Float-Signature, Float-Webhook-Id and Float-Timestamp headers
x-float-webhook-payload: thin — {id, type, created_at, business_id, object:{id}}; re-fetch for detail
x-float-webhook-docs: https://docs.floatfinancial.com/docs/webhooks
x-api-evangelist-catalog: asyncapi/float-financial-webhooks.yml
- target: $.components
description: >-
Add the error envelope Float actually returns. Observed live on GET /v1/cards without credentials (HTTP 401):
{"error":"UNAUTHORIZED","message":"Incorrect authentication credentials.","docs":"https://docs.floatfinancial.com"}.
None of the 51 error responses in the published spec declares a schema, so generated clients have no error
type.
update:
x-api-evangelist-schemas:
FloatError:
type: object
description: >-
The error envelope observed on live Float API responses. NOT declared in Float's published OpenAPI —
reconstructed by API Evangelist from an observed response and offered back as a suggestion.
properties:
error:
type: string
description: Machine-readable error code in SCREAMING_SNAKE_CASE.
examples:
- UNAUTHORIZED
message:
type: string
description: Human-readable explanation.
examples:
- Incorrect authentication credentials.
docs:
type: string
format: uri
description: Link to the Float API documentation.
examples:
- https://docs.floatfinancial.com
required:
- error
- message
- target: $.tags
description: >-
Annotate the two BETA operations Float flags only in prose summaries, so tooling can filter pre-GA surface.
update:
x-api-evangelist-beta-operations:
- operationId: createCard
path: /v1/cards
note: 'Summary is prefixed "BETA:". Issues a real card — there is no sandbox.'
- operationId: createCardLimit
path: /v1/card-limits
note: 'Summary is prefixed "BETA:". Creates a real spend limit.'
- target: $.info
description: >-
Record the cross-cutting runtime semantics an agent needs and the contract does not carry.
update:
x-api-evangelist-conventions:
pagination:
style: page-number
params:
- page
- page_size
response_fields:
- items
- pages
filtering:
style: django-lookup-suffix
params:
- created_at__gte
- created_at__lte
- order_by
idempotency:
header: X-Idempotency-Key
required: true
operation_count: 9
note: Declared on 9 of 22 writes; bulk create/PATCH operations are unprotected.
rate_limits:
published: false
headers: none
artifact: conventions/float-financial-conventions.yml