OpenAPI Specification
openapi: 3.0.1
info:
title: App Marketplace accounting-entries tax-codes API
description: API for Pleo App Marketplace
termsOfService: https://pleo.io/terms/
contact:
email: partner-ecosystem-team@pleo.io
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 39.4.0
servers:
- url: https://external.pleo.io
description: Production server
- url: https://external.staging.pleo.io
description: Staging server
security:
- bearerAuth: []
- basicAuth: []
tags:
- name: tax-codes
description: Tax Codes API
paths:
/v0/tax-codes:
post:
tags:
- tax-codes
summary: Create a new tax code
operationId: createTaxCode
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TaxCodeCreateUpdateModel'
required: true
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/DataResponseTaxCodeModel'
/v0/tax-codes/{taxCodeId}:
get:
tags:
- tax-codes
summary: Returns a given tax code
operationId: getTaxCode
parameters:
- name: taxCodeId
in: path
required: true
style: simple
explode: false
schema:
type: string
description: Tax code ID to fetch
format: uuid
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/DataResponseTaxCodeModel'
put:
tags:
- tax-codes
summary: Update an tax code
operationId: updateTaxCode
parameters:
- name: taxCodeId
in: path
required: true
style: simple
explode: false
schema:
type: string
description: Tax code ID to update
format: uuid
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TaxCodeCreateUpdateModel'
required: true
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/DataResponseTaxCodeModel'
delete:
tags:
- tax-codes
summary: Delete an tax code
operationId: deleteTaxCode
parameters:
- name: taxCodeId
in: path
required: true
style: simple
explode: false
schema:
type: string
description: Tax code ID to delete
format: uuid
responses:
default:
description: default response
content:
application/json;charset=UTF-8: {}
/v0/tax-codes:calculate-tax-amounts:
post:
tags:
- tax-codes
summary: Calculate gross, net, and tax amounts for a list of tax code ids and amounts.
operationId: calculateTax
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/CalculateTaxesRequest'
required: true
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/DataResponseCalculateTaxesResponse'
/v0/tax-codes:search:
post:
tags:
- tax-codes
summary: Returns a list of tax codes
operationId: getTaxCodes
parameters:
- name: company_id
in: query
required: false
style: form
explode: true
schema:
type: string
description: Fetch a list of tax codes for a given company
format: uuid
- name: before
in: query
description: Lower bound of the page of data to return (cannot be used together with [after] or [offset]).
required: false
style: form
explode: true
schema:
type: string
- name: after
in: query
description: Upper bound of the page of data to return (cannot be used together with [before] or [offset]).
required: false
style: form
explode: true
schema:
type: string
- name: offset
in: query
description: Offset of the page of data to return (cannot be used together with [before] or [after]).
required: false
style: form
explode: true
schema:
type: integer
format: int64
- name: limit
in: query
description: The maximum amount of items to return.
required: false
style: form
explode: true
schema:
type: integer
format: int32
- name: sorting_keys
in: query
description: The keys to sort the results by.
required: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: sorting_order
in: query
description: The order to sort the results by. Must be the same length as [sortingKeys]; one order per key.
required: false
style: form
explode: true
schema:
type: array
items:
$ref: '#/components/schemas/PageOrder'
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TaxCodeSearchRequest'
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/CursorPaginatedResponseTaxCodeModel'
components:
schemas:
Taxes:
required:
- amountTaxBreakdown
- id
type: object
properties:
amountTaxBreakdown:
$ref: '#/components/schemas/AmountTaxBreakdown'
id:
type: string
TaxCodeCreateUpdateModel:
required:
- archived
- companyId
- name
- rate
- type
type: object
properties:
archived:
type: boolean
description: Boolean flag used to archive or unarchive a category (when set to true, account is not visible or usable on the platform)
code:
type: string
description: The accounting system's internal identifier of the tax code
nullable: true
example: '01'
companyId:
type: string
description: Company ID the tax code is being created/updated for
format: uuid
ingoingTaxAccount:
type: string
description: Ingoing tax account usually used to account for reverse VAT
nullable: true
name:
type: string
description: Name of the tax code
example: Standardmoms (25 %)
outgoingTaxAccount:
type: string
description: Outgoing tax account usually used to account for reverse VAT
nullable: true
rate:
type: number
description: Percentage rate applied for this tax code (This is represented in decimals and not the percentage. e.g. 20% tax rate would be 0.20)
type:
$ref: '#/components/schemas/TaxCodeTypeModel'
DataResponseTaxCodeModel:
required:
- data
type: object
properties:
data:
$ref: '#/components/schemas/TaxCodeModel'
TaxedAmount:
required:
- amount
- id
type: object
properties:
amount:
$ref: '#/components/schemas/Money'
id:
type: string
description: An identifier to associate the amount to
description: The amounts to apply the tax code to
DataResponseCalculateTaxesResponse:
required:
- data
type: object
properties:
data:
$ref: '#/components/schemas/CalculateTaxesResponse'
TaxCodeModel:
required:
- archived
- companyId
- createdAt
- id
- name
- rate
- type
- updatedAt
type: object
properties:
accountingIntegrationSystem:
type: string
description: Accounting integration system
nullable: true
archived:
type: boolean
description: Boolean flag used to archive or unarchive an account (when set to true, account is not visible or usable on the platform)
code:
type: string
description: The accounting system's internal identifier of the tax code
nullable: true
example: '01'
companyId:
type: string
description: The Pleo unique identifier of the company the tax code belongs to
format: uuid
createdAt:
pattern: YYYY-MM-DDTHH:mi:ssZ
type: string
description: Date and time the tax code was created
format: date-time
id:
type: string
description: The unique identifier generated by Pleo for the tax code
format: uuid
ingoingTaxAccount:
type: string
description: Ingoing tax account usually used to account for reverse VAT
nullable: true
name:
type: string
description: Name of the tax code
example: Standardmoms (25 %)
outgoingTaxAccount:
type: string
description: Outgoing tax account usually used to account for reverse VAT
nullable: true
rate:
type: number
description: Percentage rate applied for this tax code (This is represented in decimals and not the percentage. e.g. 20% tax rate would be 0.20)
type:
$ref: '#/components/schemas/TaxCodeTypeModel'
updatedAt:
pattern: YYYY-MM-DDTHH:mi:ssZ
type: string
description: Date and time the tax code was last updated
format: date-time
TaxCodeSearchRequest:
type: object
properties:
archived:
type: boolean
description: If set to true will only return tax codes that have been archived, if set to false will only return tax codes that have not been archived. By default,both archived and non-archived tax codes will be returned.
code:
type: string
description: Filter by code.
taxCodeIds:
uniqueItems: true
type: array
description: Useful for fetching a list of tax codes given a specific list of IDs.
items:
type: string
description: Useful for fetching a list of tax codes given a specific list of IDs.
format: uuid
type:
$ref: '#/components/schemas/TaxCodeTypeModel'
AmountTaxBreakdown:
required:
- gross
- net
- tax
type: object
properties:
gross:
$ref: '#/components/schemas/Money'
net:
$ref: '#/components/schemas/Money'
tax:
$ref: '#/components/schemas/Money'
description: Tax breakdown for the eMoneyAccountValue of the core accounting entry.
CursorPageInfo:
required:
- currentRequestPagination
- hasNextPage
- hasPreviousPage
type: object
properties:
currentRequestPagination:
$ref: '#/components/schemas/CursorPageCurrentRequestInfo'
endCursor:
type: string
hasNextPage:
type: boolean
hasPreviousPage:
type: boolean
startCursor:
type: string
total:
type: integer
format: int64
TaxCodeTypeModel:
type: string
description: Classification of this tax code. Exclusive tax codes are not currently supported.
enum:
- inclusive
- exclusive
- reverse
CursorPaginatedResponseTaxCodeModel:
required:
- data
- pagination
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TaxCodeModel'
pagination:
$ref: '#/components/schemas/CursorPageInfo'
Money:
required:
- currency
- minors
type: object
properties:
currency:
type: string
description: The currency codes followed in Pleo conforms with ISO 4217.
example: EUR
minors:
type: integer
description: "The transaction amount is represented in smallest denomination in a specific currency.\n For example:\n- A transaction amount is £65.80 in Great Britain Pounds (GBP); this represented as `6580`.\n- A transaction amount is 1500 ISK in Icelandic Króna (ISK); this is represented as `1500`."
format: int64
example: 10
CalculateTaxesRequest:
required:
- amountsByTaxCodeId
type: object
properties:
amountsByTaxCodeId:
type: object
additionalProperties:
type: array
description: The amounts to apply the tax code to
items:
$ref: '#/components/schemas/TaxedAmount'
description: The amounts to apply the tax code to
description: Tax code IDs and a list of id + amount pairs to calculate tax for
CalculateTaxesResponse:
required:
- taxes
type: object
properties:
taxes:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/Taxes'
CursorPageCurrentRequestInfo:
required:
- parameters
type: object
properties:
after:
type: string
before:
type: string
limit:
type: integer
format: int32
offset:
type: integer
format: int64
parameters:
type: object
additionalProperties:
type: array
items:
type: string
sortingKeys:
type: array
items:
type: string
sortingOrder:
type: array
items:
$ref: '#/components/schemas/PageOrder'
PageOrder:
type: string
enum:
- ASC
- ASC_NULLS_FIRST
- ASC_NULLS_LAST
- DESC
- DESC_NULLS_FIRST
- DESC_NULLS_LAST
securitySchemes:
bearerAuth:
type: http
description: 'JWT Bearer token authentication. Include the token in the Authorization header as: `Bearer <token>`'
scheme: bearer
bearerFormat: JWT
basicAuth:
type: http
description: Basic HTTP authentication using API key. Use your API key as the username and leave the password empty. The credentials will be Base64 encoded automatically.
scheme: basic