openapi: 3.2.0 info: title: Cledara Transactions API version: v1 description: The Cledara API gives you programmatic access to your Cledara workspace — applications, transactions, and more coming soon. servers: - url: https://api.cledara.com tags: - name: Transactions paths: /v0/transactions: get: summary: List transactions in a workspace tags: - Transactions security: - BearerAuth: [] parameters: - schema: type: string format: date-time description: Fetch transactions that occurred after this date RFC 3339 timestamp example: '2026-01-01T00:00:00Z' required: false description: Fetch transactions that occurred after this date RFC 3339 timestamp name: from in: query - schema: type: string format: date-time description: Fetch transactions that occurred before this date RFC 3339 timestamp example: '2026-01-31T23:59:59Z' required: false description: Fetch transactions that occurred before this date RFC 3339 timestamp name: to in: query - schema: type: array items: type: string format: uuid description: Application unique identifier example: 123e4567-e89b-12d3-a456-426614174000 description: Fetch transactions for these application IDs required: false description: Fetch transactions for these application IDs name: applicationIds in: query - schema: type: - integer - 'null' minimum: 0 description: Offset for pagination example: 0 required: false description: Offset for pagination name: offset in: query responses: '200': description: Success headers: X-RateLimit-Limit: schema: type: number description: The maximum number of requests per time window example: 1000 required: true description: The maximum number of requests per time window X-RateLimit-Remaining: schema: type: number description: The number of requests remaining in the current time window example: 0 required: true description: The number of requests remaining in the current time window X-RateLimit-Reset: schema: type: number description: The timestamp of the next reset example: 1719859200 required: true description: The timestamp of the next reset content: application/json: schema: type: object properties: transactions: type: array items: $ref: '#/components/schemas/Transaction' description: List of transactions nextOffset: type: - integer - 'null' minimum: 0 description: Offset for the next page, null if there is no next page hasMore: type: boolean description: Whether there are more transactions to fetch totalCount: type: integer minimum: 0 description: Total number of transactions required: - transactions - nextOffset - hasMore - totalCount '401': description: Missing or invalid API key '403': description: Insufficient privileges for this account '429': description: Too many requests headers: Retry-After: schema: type: number description: The number of seconds to wait before the next request example: 10 required: true description: The number of seconds to wait before the next request X-RateLimit-Remaining: schema: type: number description: The number of requests remaining in the current time window example: 0 required: true description: The number of requests remaining in the current time window operationId: getV0Transactions x-operation-id-source: derived /v0/transactions/{transactionId}/invoice-url: get: summary: Get the URL to download a transaction invoice tags: - Transactions security: - BearerAuth: [] parameters: - schema: type: string format: uuid description: Transaction unique identifier example: 123e4567-e89b-12d3-a456-426614174000 required: true description: Transaction unique identifier name: transactionId in: path responses: '200': description: Success headers: X-RateLimit-Limit: schema: type: number description: The maximum number of requests per time window example: 1000 required: true description: The maximum number of requests per time window X-RateLimit-Remaining: schema: type: number description: The number of requests remaining in the current time window example: 0 required: true description: The number of requests remaining in the current time window X-RateLimit-Reset: schema: type: number description: The timestamp of the next reset example: 1719859200 required: true description: The timestamp of the next reset content: application/json: schema: type: object properties: invoiceUrl: type: string format: uri description: URL to the invoice, valid for 5 minutes required: - invoiceUrl '401': description: Missing or invalid API key '403': description: Insufficient privileges for this account '404': description: Record not found '429': description: Too many requests headers: Retry-After: schema: type: number description: The number of seconds to wait before the next request example: 10 required: true description: The number of seconds to wait before the next request X-RateLimit-Remaining: schema: type: number description: The number of requests remaining in the current time window example: 0 required: true description: The number of requests remaining in the current time window operationId: getV0TransactionsByTransactionIdInvoiceUrl x-operation-id-source: derived components: schemas: Transaction: type: object properties: id: type: string format: uuid description: Transaction unique identifier example: 123e4567-e89b-12d3-a456-426614174000 amount: type: number description: Transaction amount in the account currency. Negative for debits, positive for credits. example: -100.01 currency: type: string enum: - GBP - EUR - USD description: Currency of the account. example: EUR localAmount: type: number description: Transaction amount in the currency of the payment, if different from the account currency. Negative for debits, positive for credits. example: -114.02 localCurrency: type: string description: Currency of the payment, if different from the account currency. example: USD accountType: type: string enum: - application - saasMain - spend - others description: Type of the account that the transaction belongs to x-enum-descriptions: application: Application with fixed budget saasMain: Application with soft budget, and other transactions on the main SaaS Management account spend: Spend Management account others: Other account description: type: string description: Description of the transaction comment: type: string description: Comment of the transaction application: type: object properties: id: type: string format: uuid description: Application unique identifier example: 123e4567-e89b-12d3-a456-426614174000 name: type: string required: - id - name description: Application that the transaction belongs to, if applicable authorizedAt: type: string format: date-time description: ISO 8601 timestamp of transaction authorization (when it occurred) example: '2026-01-01T00:00:00Z' settledAt: type: string format: date-time description: ISO 8601 timestamp of transaction settlement (when it got confirmed) example: '2026-01-01T00:00:00Z' type: type: string enum: - cardSend - cardReceive - transferSend - transferReceive - applicationTopUp - applicationFlush - other description: Type of the transaction card: type: - object - 'null' properties: id: type: string format: uuid description: Card unique identifier example: 123e4567-e89b-12d3-a456-426614174000 name: type: - string - 'null' description: Name of the card, only for Spend Management cards example: Coffee Card type: type: string enum: - saasMain - saasSupplementary - spend description: 'Type of the card. - `saasMain`: Main card for SaaS applications - `saasSupplementary`: Supplementary card for SaaS applications - `spend`: Spend Management card' example: saasMain number: type: string description: Last 4 digits of the card number example: '1234' owner: type: object properties: id: type: string format: uuid description: ID of the card owner example: 123e4567-e89b-12d3-a456-426614174000 name: type: string description: Name of the card owner example: John Doe required: - id - name status: type: string enum: - pendingReview - inactive - active - disabled - failed - cancelled - expired description: Status of the card example: active tags: type: array items: type: string description: Tags of the card example: - AI Expenses - Variable Expenses required: - id - name - type - number - owner - status - tags description: Card that the transaction belongs to, if it's a card transaction hasInvoice: type: boolean description: Whether the transaction has an invoice uploaded. You can download the invoice from the v0/transactions/{id}/invoice-url endpoint invoiceDetails: type: - object - 'null' properties: number: type: - string - 'null' description: Invoice number extracted from the invoice, if available example: INV-2026-0042 date: type: - string - 'null' format: date description: ISO 8601 date the invoice was issued, if available example: '2026-01-15' vat: type: - object - 'null' properties: name: type: string description: Name of the VAT rate applied to this invoice example: Standard rate - 21% rate: type: number minimum: 0 maximum: 1 description: VAT rate applied to this invoice, as a fraction between 0 and 1 example: 0.21 required: - name - rate description: VAT applied to this invoice, if set required: - number - date - vat description: Invoice details extracted by the invoice manager, only available for confirmed invoices accounting: type: array items: type: object properties: field: type: object properties: id: type: string format: uuid description: Id of the accounting field, internal of cledara. Useful in case of renames. name: type: string description: Name of the accounting field required: - id - name value: anyOf: - type: string - type: number - type: boolean - type: string format: date description: ISO 8601 date description: Value of this field for this transaction. External id for records. name: type: string description: Name of the value, only filled for records. required: - field - value description: Accounting fields and values for this transaction. Empty values are omitted. required: - id - amount - currency - accountType - description - authorizedAt - type - card - hasInvoice - invoiceDetails - accounting securitySchemes: BearerAuth: type: http scheme: bearer description: API key issued from the Cledara Web Application