FairePlace Charge Configuration API
Default charge configuration carried by a lease type.
Default charge configuration carried by a lease type.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/faireplace-com:faireplace-com-charge-configuration-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: FairePlace Property Management Charge Configuration API
description: 'Comprehensive API for managing properties, leases, tenants, and all aspects of real estate management.
Built with Rust and Actix-web following hexagonal architecture principles.
## Authentication
This API uses API keys for authentication with tenant-based isolation.
## Base URL
- Production: `https://api.faireplace.com/api`'
version: 1.0.0
contact:
name: FairePlace API Support
email: api-support@faireplace.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: https://api.faireplace.com/api
description: Production server
security:
- BearerAuth: []
tags:
- name: Charge Configuration
description: Default charge configuration carried by a lease type.
paths:
/lease-types/{lease_type_id}/charges/config:
get:
operationId: getChargeConfiguration
summary: Get charge configuration
description: Retrieve the charge configuration for a lease type
tags:
- Charge Configuration
security:
- BearerAuth: []
parameters:
- name: lease_type_id
in: path
description: Lease type ID
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Charge configuration retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LeaseTypeChargeConfig'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
post:
operationId: createChargeConfiguration
summary: Create charge configuration
description: Create a new charge configuration for a lease type
tags:
- Charge Configuration
security:
- BearerAuth: []
parameters:
- name: lease_type_id
in: path
description: Lease type ID
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLeaseTypeChargeConfig'
responses:
'201':
description: Charge configuration created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LeaseTypeChargeConfig'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
components:
schemas:
LeaseResponsibleParty:
type: string
description: Party responsible for charges
enum:
- TENANT
- LANDLORD
- NEGOTIABLE
example: TENANT
LeaseChargeMode:
type: string
description: Charge management mode
enum:
- PROVISION
- FORFAIT
example: PROVISION
DistributionRule:
type: object
description: Charge distribution rule
properties:
charge_name:
type: string
description: Charge name
example: Heating
maxLength: 255
distribution_method:
type: string
description: Distribution method
example: SURFACE
enum:
- SURFACE
- OCCUPANT
- CONSUMPTION
- EQUAL
parameters:
type:
- object
- 'null'
description: Distribution parameters
additionalProperties: true
required:
- charge_name
- distribution_method
Error:
type: object
description: "The error envelope returned by every authenticated endpoint.\n\nTwo things are worth knowing before you write your error handling:\n\n- **`code` is a symbolic string, not a number.** The numeric HTTP status is\n in `status`. Branch on `code`: it is stable, and show `message`, which\n is written for humans and may be reworded without notice.\n- The public guest-signature endpoints use a **different, flatter shape**\n (`{ \"error_code\": …, \"message\": … }`, no `error` wrapper), because they\n are consumed by a page that has no session. Their responses document it\n inline.\n\nThe `X-Request-Id` response header carries the request identifier: quote it\nwhen reporting a problem. It is a header, not a body field.\n"
required:
- error
properties:
error:
type: object
required:
- code
- message
- status
properties:
code:
type: string
description: Stable symbolic code. Branch on this.
enum:
- NOT_FOUND
- UNAUTHORIZED
- VALIDATION_ERROR
- DATABASE_ERROR
- BUSINESS_ERROR
- STORAGE_ERROR
- CONFIG_ERROR
- FORBIDDEN
- CONFLICT
- PARSE_ERROR
- SERIALIZATION_ERROR
- AUTHENTICATION_ERROR
- AUTHORIZATION_ERROR
- EXTERNAL_SERVICE_ERROR
- RATE_LIMIT_EXCEEDED
- PAYMENT_REQUIRED
- PLAN_LIMIT_REACHED
- GONE
- BAD_REQUEST
- INTERNAL_ERROR
- INTERNAL_SERVER_ERROR
example: NOT_FOUND
message:
type: string
description: 'Human-readable explanation, most often in French. Safe to display,
not safe to parse.
'
example: Lease not found
status:
type: integer
description: The HTTP status code, repeated in the body.
example: 404
details:
type: object
additionalProperties: true
description: 'Extra machine-readable context. Only present on some errors: on
`RATE_LIMIT_EXCEEDED` it carries `retry_after_seconds`.
'
example:
retry_after_seconds: 12
CreateLeaseTypeChargeConfig:
type: object
description: Data for creating a new charge configuration
required:
- charge_mode
- responsible_party
properties:
charge_mode:
$ref: '#/components/schemas/LeaseChargeMode'
responsible_party:
$ref: '#/components/schemas/LeaseResponsibleParty'
default_charges:
type: array
items:
$ref: '#/components/schemas/DefaultCharge'
description: Default charges
distribution_rules:
type: array
items:
$ref: '#/components/schemas/DistributionRule'
description: Charge distribution rules
DefaultCharge:
type: object
description: Default charge
properties:
name:
type: string
description: Charge name
example: Heating
maxLength: 255
amount:
type: number
format: decimal
description: Charge amount
example: 50
minimum: 0
is_mandatory:
type: boolean
description: Indicates whether the charge is mandatory
example: true
calculation_method:
type: string
description: Calculation method
example: FIXED
enum:
- FIXED
- PERCENTAGE
- CONSUMPTION
required:
- name
- amount
- is_mandatory
- calculation_method
LeaseTypeChargeConfig:
type: object
description: Charge configuration for a lease type
properties:
id:
type: string
format: uuid
description: Unique identifier of the configuration
example: 550e8400-e29b-41d4-a716-446655440000
lease_type_id:
type: string
format: uuid
description: Lease type ID
example: 550e8400-e29b-41d4-a716-446655440001
charge_mode:
$ref: '#/components/schemas/LeaseChargeMode'
responsible_party:
$ref: '#/components/schemas/LeaseResponsibleParty'
default_charges:
type: array
items:
$ref: '#/components/schemas/DefaultCharge'
description: Default charges
distribution_rules:
type: array
items:
$ref: '#/components/schemas/DistributionRule'
description: Charge distribution rules
created_at:
type: string
format: date-time
description: Creation date
example: '2024-01-15T10:30:00Z'
updated_at:
type: string
format: date-time
description: Last modification date
example: '2024-01-15T10:30:00Z'
required:
- id
- lease_type_id
- charge_mode
- responsible_party
- created_at
- updated_at
responses:
InternalServerError:
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: API key with fp_* prefix, passed as Bearer token
WorkerApiKey:
type: apiKey
in: header
name: X-API-Key
WorkerBearer:
type: http
scheme: bearer
bearerFormat: Worker