Float Financial · Authentication Profile
Float Financial Authentication
Authentication
Float Financial secures its APIs with http across 1 declared security scheme, as derived from its OpenAPI definitions.
spend-managementcorporate-cardsexpense-managementaccounts-payablebill-payreimbursementsbusiness-bankingaccounting-integrationfintechcanadapaymentserp-integration
Methods: http
Schemes: 1
OAuth flows:
API key in:
Security Schemes
bearerToken http
scheme: bearer
· in: header (Authorization)
Source
Authentication Profile
generated: '2026-08-16'
method: searched
source: openapi/float-financial-openapi.yml
docs: https://help.floatfinancial.com/hc/en-us/articles/38048585600404-Get-Started-with-Float-s-Public-API
searched_sources:
- https://help.floatfinancial.com/hc/en-us/articles/38048585600404-Get-Started-with-Float-s-Public-API
- https://docs.floatfinancial.com/docs/accounting
- live probe of https://api.floatfinancial.com/v1/cards (HTTP 401)
api: Float Public API
summary:
types:
- http
scopes: false
oauth2: false
oidc: false
mtls: false
multi_environment: false
schemes:
- name: bearerToken
type: http
scheme: bearer
in: header
parameter: Authorization
format: 'Authorization: Bearer <api_token>'
sources:
- openapi/float-financial-openapi.yml
description: >-
A single static per-business API token. Float's OpenAPI declares this scheme in
components.securitySchemes but declares NO top-level `security` and no per-operation `security`, so the
contract never states which operations require it — a generated client sends no credential at all. In
practice every operation except getOpenAPI requires the token.
token_issuance:
self_serve: true
console: https://app.floatfinancial.com/
path: Settings > scroll to "Business Settings" > Developers
role_required: Administrator
verbatim: >-
"To create and manage API tokens, log-in to app.floatfinancial.com as an Administrator and navigate to
Settings > scroll to 'Business Settings' > Developers."
source: https://help.floatfinancial.com/hc/en-us/articles/38048585600404-Get-Started-with-Float-s-Public-API
token_properties:
scope: business
granularity: all-or-nothing
prefix: none published
expiry: not documented
rotation: not documented
test_variant: none
note: >-
There are no scopes, no permissions and no read-only token type. A token that can read every card
transaction can also issue cards (createCard), create card limits (createCardLimit), create users
(createUser) and delete tax codes and custom fields. For a spend-management platform that is a wide blast
radius from one secret, and it is the strongest authorization finding in this profile.
environments:
- name: production
base_url: https://api.floatfinancial.com
token_type: live
note: >-
The only environment. Float's FAQ states it offers no sandbox or test environment, so there is no test-mode
key and no prefix by which a leaked token could be triaged as harmless.
anonymous_endpoints:
- operationId: getOpenAPI
path: /v1/openapi
method: GET
status: 200
note: The OpenAPI document is served without credentials — the only anonymous operation.
failure_behaviour:
status: 401
body: '{"error":"UNAUTHORIZED","message":"Incorrect authentication credentials.","docs":"https://docs.floatfinancial.com"}'
observed_from: live GET https://api.floatfinancial.com/v1/cards with no Authorization header
declared_in_spec: false
note: 401 is returned live but is not declared on any of the 71 operations in the spec.
oauth:
supported: false
discovery_probes:
- url: https://floatfinancial.com/.well-known/oauth-authorization-server
status: 404
- url: https://api.floatfinancial.com/.well-known/oauth-authorization-server
status: 404
- url: https://floatfinancial.com/.well-known/openid-configuration
status: 404
- url: https://api.floatfinancial.com/.well-known/openid-configuration
status: 404
note: >-
No OAuth and no OIDC. scopes/float-financial-scopes.yml is deliberately not written — there is no scope
surface to record.
platform_sso:
saml: true
mfa: true
note: >-
SAML SSO (Professional and Enterprise plans) and MFA (all plans) secure the Float web app for humans. They
do not apply to API tokens, which remain unscoped static secrets.
source: https://floatfinancial.com/pricing
remediation_for_provider:
- >-
Declare a global `security` requirement referencing bearerToken so generated clients actually send the
credential — the scheme is defined but never applied.
- Declare the 401 response with a schema on every authenticated operation.
- Introduce scoped or read-only tokens; today one token grants card issuance and user creation.
- Publish token expiry and rotation guidance, and a token prefix so leaks are identifiable.