Defacto Billing API
The Billing API from Defacto — 4 operation(s) for billing.
The Billing API from Defacto — 4 operation(s) for billing.
openapi: 3.0.0
info:
title: Defacto Accounting Billing API
version: v1.0.0
description: Defacto provides instant, embedded financing for SMBs across Europe. This REST API lets partners onboard borrowers, test eligibility and credit limits, upload business/bank data, create invoices, request and manage loans, handle repayments and recollection, issue and manage credit cards, bill fees, and subscribe to webhooks. Reconstructed by API Evangelist from the per-operation OpenAPI fragments published on Defacto's ReadMe developer portal (developers.getdefacto.com/llms.txt). operationId values are the provider's ReadMe reference slugs; summaries are the reference page titles.
contact:
email: contact@getdefacto.com
url: https://developers.getdefacto.com/
servers:
- url: https://api.getdefacto.com
description: Production
- url: https://api-sandbox.getdefacto.com
description: Sandbox
security:
- Bearer: []
tags:
- name: Billing
paths:
/bills:
get:
description: 'List your fees invoices (i.e: your Defacto bill) for the loans you performed on the platform.<br/>By default, this endpoint only returns your own bills, but you may request bills for your own specific borrowers (with a business identifier or ID) depending on your contract type.'
parameters:
- description: Returns bills with these ids.
in: query
name: bill_id
required: false
x-nullable: true
explode: true
schema:
type: array
items:
format: uuid
type: string
default: null
- description: Return bills for these business ids.
in: query
name: business_id
required: false
x-nullable: true
explode: true
schema:
type: array
items:
format: uuid
type: string
default: null
- description: Return bills for theses business identifiers, such as its SIREN in France.
in: query
name: business_identifier
required: false
x-nullable: true
explode: true
schema:
type: array
items:
type: string
default: null
- description: Pagination cursor from the previous response's next_page field. Omit to get the first page.
in: query
name: cursor
required: false
x-nullable: true
schema:
type: string
default: null
- description: Returns bills where end_date field is lower to this date.
in: query
name: end_date
required: false
x-nullable: true
schema:
type: string
format: date-time
default: null
- description: Return light bills.
in: query
name: light_bills
required: false
x-nullable: true
schema:
type: boolean
default: false
- description: Maximum number of items to return per page.
in: query
name: page_size
required: false
schema:
type: integer
default: 100
- description: Returns bills where start_date field is greater or equal to this date.
in: query
name: start_date
required: false
x-nullable: true
schema:
type: string
format: date-time
default: null
- in: query
name: status
required: false
explode: true
schema:
type: array
items:
enum:
- PAID
- SENT_TO_PAYER
- TO_PAY
- VALIDATED
type: string
responses:
'200':
description: ''
content:
'*/*':
schema:
$ref: '#/components/schemas/TypedApiPage10'
security:
- Bearer: []
tags:
- Billing
operationId: get_bills
summary: /bills
/referrer/{referrer_id}:
get:
description: Get referrer details by ID
parameters:
- in: path
name: referrer_id
required: true
schema:
type: string
responses:
'200':
description: ''
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiReferrer'
security:
- Bearer: []
tags:
- Billing
operationId: get_referrer-referrer-id
summary: /referrer/{referrer_id}
/bill/{bill_id}/sent:
post:
description: '
This endpoint enables you to notify Defacto when you sent the bill for the fees of the loans to your user.
A bill should be sent to the user only when its status is VALIDATED (see GET /bills endpoint).
It is very important to use this endpoint so that Defacto can proceed to a recollection process
that will be fair for our users.
This endpoint is useful only for partners who send the bill themselves.
By default the bills are sent the the payers of the fees by Defacto.
If you need to send them by yourself please get in touch with us.
'
parameters:
- in: path
name: bill_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/APIBillSentByPartnerRequest'
responses:
'204':
description: ''
content:
'*/*':
schema: {}
security:
- Bearer: []
tags:
- Billing
operationId: post_bill-bill-id-sent
summary: /bill/{bill_id}/sent
/referrer/{referrer_id}/upload-invoice/{revenue_share_id}:
post:
description: Upload revenue share invoice for a referrer and update the related revenue share
parameters:
- in: path
name: referrer_id
required: true
schema:
type: string
- in: path
name: revenue_share_id
required: true
schema:
type: string
responses:
'200':
description: ''
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiRevenueShare'
security:
- Bearer: []
tags:
- Billing
operationId: post_referrer-referrer-id-upload-invoice-revenue-share-id
summary: /referrer/{referrer_id}/upload-invoice/{revenue_share_id}
components:
schemas:
PublicApiAccountNumber:
properties:
account_number:
description: The account identifier. Only IBANs are supported at the moment.
type: string
account_number_type:
default: iban
description: The type of account number (e.g. IBAN).
enum:
- iban
type: string
bank_identifier:
default: null
description: The identifier of the bank.
type: string
nullable: true
bank_identifier_type:
default: bic
description: The type of bank identifier (e.g. BIC).
enum:
- bic
type: string
required:
- account_number
type: object
PaymentXPaymentIntent:
properties:
amount:
type: integer
payment_id:
format: uuid
type: string
payment_intent_id:
format: uuid
type: string
payment_type:
enum:
- CHANNEL_VERIFICATION
- CHARGEBACK
- DEPOSIT_FUNDING
- DEPOSIT_RELEASE
- DEPOSIT_WITHDRAWAL
- EXTRA
- INTERNAL
- LENDER_DEBT_RESOLUTION
- LENDER_PREFUNDING
- LENDER_REPURCHASE
- LOAN_PAYMENT
- LOAN_PURCHASE
- PAYMENT_PROVIDER_FEES
- PLATFORM
- REFUND
- REPAYMENT_FEES
- REPAYMENT_FULL
- REPAYMENT_NOMINAL
- RETURNED
- REVENUE_SHARE
- REVERT
- SUBSCRIPTION
type: string
required:
- amount
- payment_id
- payment_intent_id
- payment_type
type: object
PaymentMethodConfiguration:
properties:
direct_debit:
allOf:
- $ref: '#/components/schemas/DirectDebitConfiguration'
default: null
nullable: true
payment_method:
enum:
- DIRECT_DEBIT
- SCT
type: string
sct:
allOf:
- $ref: '#/components/schemas/SctConfiguration'
default: null
nullable: true
required:
- payment_method
type: object
DepositingRule:
properties:
base_amount:
enum:
- DUE_INTERESTS
- ESTIMATED_FEES
- FIXED_AMOUNT
- LOAN_AMOUNT
- LOAN_AMOUNT_WITH_DUE_INTERESTS
- LOAN_AMOUNT_WITH_ESTIMATED_FEES
type: string
depositor_role:
enum:
- BENEFICIARY
- BORROWER
- FEES_PAYER
- PARTNER
type: string
payment_method:
$ref: '#/components/schemas/PaymentMethodConfiguration'
purpose:
enum:
- FEES_DEPOSIT
- GUARANTEE_DEPOSIT
- RECOLLECTION_FEES_DEPOSIT
type: string
value:
type: string
required:
- base_amount
- depositor_role
- purpose
- value
type: object
ExecutionRule:
properties:
frequency:
default: MONTHLY
enum:
- MONTHLY
- YEARLY
type: string
interval:
type: integer
required:
- interval
type: object
PaymentApi:
properties:
amount:
type: integer
charged_back_payment_id:
default: null
nullable: true
currency:
default: EUR
enum:
- EUR
- GBP
type: string
failure_reason:
default: null
type: string
nullable: true
from_account_details:
allOf:
- $ref: '#/components/schemas/APILightAccountDetails'
default: null
nullable: true
from_references:
items:
type: string
type: array
id:
format: uuid
type: string
is_instant:
default: false
type: boolean
paid_at:
default: null
format: date-time
type: string
nullable: true
payment_method:
default: null
enum:
- DIRECT_DEBIT
- P2P
- SCT
- null
type: string
nullable: true
payment_type:
enum:
- CHANNEL_VERIFICATION
- CHARGEBACK
- DEPOSIT_FUNDING
- DEPOSIT_RELEASE
- DEPOSIT_WITHDRAWAL
- EXTRA
- INTERNAL
- LENDER_DEBT_RESOLUTION
- LENDER_PREFUNDING
- LENDER_REPURCHASE
- LOAN_PAYMENT
- LOAN_PURCHASE
- PAYMENT_PROVIDER_FEES
- PLATFORM
- REFUND
- REPAYMENT_FEES
- REPAYMENT_FULL
- REPAYMENT_NOMINAL
- RETURNED
- REVENUE_SHARE
- REVERT
- SUBSCRIPTION
type: string
provider:
allOf:
- $ref: '#/components/schemas/ProviderPaymentID'
default: null
nullable: true
reason:
default: null
type: string
nullable: true
related_to:
$ref: '#/components/schemas/PaymentRelationApi'
scheduled_at:
default: null
format: date-time
type: string
nullable: true
status:
enum:
- CANCELED
- FAILED
- INSTRUCTED
- IN_TRANSIT
- PAID
- PROPOSED
- SCHEDULED
type: string
to_account_details:
allOf:
- $ref: '#/components/schemas/APILightAccountDetails'
default: null
nullable: true
to_references:
items:
type: string
type: array
required:
- amount
- id
- payment_type
- status
type: object
AccountDetails:
properties:
account_id:
default: null
nullable: true
account_number:
description: The account identifier. Only IBANs are supported at the moment.
type: string
account_number_type:
description: The type of account number (e.g. IBAN).
enum:
- account_number
- iban
- internal_id
type: string
bank_identifier:
description: The identifier of the bank.
type: string
bank_identifier_type:
description: The type of bank identifier (e.g. BIC).
enum:
- bic
- name
- routing_number
- undefined
type: string
id:
default: null
nullable: true
providers:
additionalProperties:
$ref: '#/components/schemas/AccountProvider'
default: null
type: object
nullable: true
type:
default: null
enum:
- DEFAULT
- STRIPE_CONNECTED_ACCOUNT
- TECHNICAL_WALLET
- VIRTUAL
- null
type: string
nullable: true
required:
- account_number
- account_number_type
- bank_identifier
- bank_identifier_type
type: object
TypedApiPage10:
properties:
count:
type: integer
data:
items:
$ref: '#/components/schemas/APIBill'
type: array
next_page:
default: null
type: string
nullable: true
page_size:
type: integer
previous_page:
default: null
type: string
nullable: true
total:
default: null
type: integer
nullable: true
required:
- count
- page_size
type: object
DueInterestXPaymentIntent:
properties:
due_interest_id:
format: uuid
type: string
payment_intent_id:
format: uuid
type: string
required:
- due_interest_id
- payment_intent_id
type: object
AutomaticSigner:
properties:
email:
type: string
first_name:
type: string
ip_address:
type: string
last_name:
type: string
required:
- email
- first_name
- ip_address
- last_name
type: object
BillPayment:
properties:
amount:
type: integer
bill_id:
format: uuid
type: string
payment_id:
default: null
nullable: true
required:
- amount
- bill_id
type: object
FeesPayerConfig:
properties:
billed_business_id:
default: null
format: uuid
type: string
nullable: true
fees_payer_role:
default: PARTNER
enum:
- BENEFICIARY
- BORROWER
- GUARANTOR
- PARTNER
type: string
interests_tracking_time:
default: ORIGINATION_DATE
enum:
- MONTHLY
- ORIGINATION_DATE
type: string
type: object
ReferrerRevenueShareConfig:
properties:
broker_track:
allOf:
- $ref: '#/components/schemas/BrokerTrack'
default: null
nullable: true
execution_rule:
$ref: '#/components/schemas/ExecutionRule'
fixed_daily_rate:
default: null
type: number
nullable: true
max_loan_submitted_at:
default: null
format: date-time
type: string
nullable: true
min_loan_submitted_at:
default: null
format: date-time
type: string
nullable: true
revenue_share_notification_emails:
items:
format: email
type: string
type: array
revenue_share_rate:
default: null
type: number
nullable: true
revenue_share_type:
enum:
- BROKER_REVENUE_SHARE
- PARTNER_REVENUE_SHARE
- REFERRAL_CODE_REVENUE_SHARE
type: string
shared_to_account:
$ref: '#/components/schemas/PublicApiAccountNumber'
sharing_duration:
default: SIX_MONTHS
enum:
- FOREVER
- SIX_MONTHS
- TWELVE_MONTHS
- TWENTY_FOUR_MONTHS
type: string
tenant_name:
default: null
type: string
nullable: true
vat_included:
type: boolean
required:
- revenue_share_notification_emails
- revenue_share_type
- shared_to_account
- vat_included
type: object
PaymentIntent:
properties:
amount:
type: integer
currency:
default: EUR
enum:
- EUR
- GBP
type: string
failure_reason:
default: null
type: string
nullable: true
from_account_details:
allOf:
- $ref: '#/components/schemas/AccountDetails'
default: null
nullable: true
from_business_id:
format: uuid
type: string
id:
format: uuid
type: string
identity_salt:
default: null
type: string
nullable: true
invoice_id:
default: null
format: uuid
type: string
nullable: true
is_instant:
default: false
type: boolean
paid_amount:
type: integer
paid_at:
default: null
format: date-time
type: string
nullable: true
payment_method:
enum:
- DIRECT_DEBIT
- P2P
- SCT
type: string
payment_type:
enum:
- CHANNEL_VERIFICATION
- CHARGEBACK
- DEPOSIT_FUNDING
- DEPOSIT_RELEASE
- DEPOSIT_WITHDRAWAL
- EXTRA
- INTERNAL
- LENDER_DEBT_RESOLUTION
- LENDER_PREFUNDING
- LENDER_REPURCHASE
- LOAN_PAYMENT
- LOAN_PURCHASE
- PAYMENT_PROVIDER_FEES
- PLATFORM
- REFUND
- REPAYMENT_FEES
- REPAYMENT_FULL
- REPAYMENT_NOMINAL
- RETURNED
- REVENUE_SHARE
- REVERT
- SUBSCRIPTION
type: string
reference:
type: string
related_to:
$ref: '#/components/schemas/PaymentIntentRelation'
scheduled_at:
format: date-time
type: string
status:
enum:
- CANCELED
- DRAFT
- INSTRUCTED
- IN_TRANSIT
- ISSUE_DETECTED
- PAID
- PARTIALLY_PAID
- PROPOSED
- SCHEDULED
- WAITING
type: string
to_account_details:
$ref: '#/components/schemas/AccountDetails'
to_business_id:
format: uuid
type: string
required:
- amount
- from_business_id
- id
- paid_amount
- payment_method
- payment_type
- reference
- related_to
- scheduled_at
- status
- to_account_details
- to_business_id
type: object
PaymentRelationApi:
properties:
bills:
items:
$ref: '#/components/schemas/BillPayment'
type: array
invoices:
items:
format: uuid
type: string
type: array
loans:
items:
$ref: '#/components/schemas/LoanPaymentApi'
type: array
payment_intents:
items:
$ref: '#/components/schemas/PaymentXPaymentIntentApi'
type: array
subscriptions:
items:
$ref: '#/components/schemas/SubscriptionPaymentRelation'
type: array
type: object
BusinessIdentifierWithName:
properties:
identifier:
type: string
identifier_type:
enum:
- belgium_registration_number
- bsn
- cif
- hr_nummer
- kvk
- name
- nif
- siren
- siret
- steuernummer
- vat_number
type: string
name:
type: string
required:
- identifier
- identifier_type
- name
type: object
InvoiceCollateralizationRiskMitigator:
properties:
triggers:
items:
enum:
- BORROWER_DEFAULT
- BORROWER_INSOLVENCY
type: string
type: array
required:
- triggers
type: object
ApiReferrer:
properties:
business_id:
format: uuid
type: string
business_identifier:
$ref: '#/components/schemas/BusinessIdentifierRequired'
config:
$ref: '#/components/schemas/ReferrerConfig'
distribution_id:
format: uuid
type: string
financial_products:
items:
$ref: '#/components/schemas/FinancialProduct'
type: array
id:
format: uuid
type: string
name:
default: null
type: string
nullable: true
referrer_type:
default: null
enum:
- BROKER
- CORE_POC
- DISTRIBUTOR
- LIQUID_BROKERS_CAB
- LIQUID_BROKER_NETWORK
- LIQUID_CORPORATE_FINANCE
- LIQUID_DAF_CONSULTANT
- LIQUID_EC
- TECH_HYBRID
- TECH_LIQUID
- TECH_PARTNER
- null
type: string
nullable: true
shared_to_account_detail_id:
default: null
format: uuid
type: string
nullable: true
required:
- business_id
- business_identifier
- config
- distribution_id
- financial_products
- id
type: object
APIBill:
properties:
amends_bill_id:
default: null
type: string
nullable: true
billed_borrower_id:
default: null
nullable: true
billed_business:
$ref: '#/components/schemas/BusinessIdentifier'
document_url:
default: null
type: string
nullable: true
due_date:
format: date-time
type: string
email_sent_to_payer_on:
default: null
format: date-time
type: string
nullable: true
end_date:
format: date-time
type: string
id:
format: uuid
type: string
invoice:
allOf:
- $ref: '#/components/schemas/APIInvoice'
default: null
nullable: true
invoice_number:
default: null
type: string
nullable: true
payment:
$ref: '#/components/schemas/PaymentApi'
ran_at:
format: date-time
type: string
start_date:
format: date-time
type: string
status:
enum:
- GENERATED
- INVALID
- PAID
- SENT_TO_PAYER
- TO_PAY
- VALIDATED
type: string
to_pay_amount:
type: integer
required:
- billed_business
- due_date
- end_date
- id
- payment
- ran_at
- start_date
- status
- to_pay_amount
type: object
FinancialProductInstallmentsConfiguration:
properties:
available_types:
items:
enum:
- INSTALLMENTS
- IN_FINE
type: string
type: array
maximum_reschedule_payment_in_days:
default: 30
type: integer
minimum_anticipate_payment_in_days:
default: 1
type: integer
minimum_business_days_until_due_date_to_reschedule_payment:
default: 1
type: integer
type: object
FinancialProductTcsDocument:
properties:
country:
default: null
enum:
- AUT
- BEL
- BGR
- CHE
- CYP
- CZE
- DEU
- DNK
- ESP
- EST
- FIN
- FRA
- GBR
- GRC
- GUF
- HRV
- HUN
- IRL
- ISL
- ITA
- LTU
- LUX
- LVA
- MAF
- MLT
- NLD
- POL
- PRT
- REU
- ROU
- SVK
- SVN
- SWE
- null
type: string
nullable: true
document_url:
type: string
is_default:
default: false
type: boolean
language:
default: null
type: string
nullable: true
required:
- document_url
type: object
SignatureConfig:
properties:
automatic_signer:
allOf:
- $ref: '#/components/schemas/AutomaticSigner'
default: null
nullable: true
contract_template_name:
enum:
- DAILLY_CREDIT_AGREEMENT_TEMPLATE
- DAILLY_ESCOMPTE_TEMPLATE
- DIRECT_MASTER_LOAN_AGREEMENT_TEMPLATE
- TERMS_AND_CONDITIONS
type: string
signing_fields:
items:
$ref: '#/components/schemas/SigningField'
type: array
required:
- contract_template_name
- signing_fields
type: object
LoanPaymentIntent:
properties:
amount:
type: integer
bill_id:
default: null
format: uuid
type: string
nullable: true
deposit_id:
default: null
format: uuid
type: string
nullable: true
loan_id:
format: uuid
type: string
payment_intent_id:
format: uuid
type: string
payment_type:
enum:
- CHANNEL_VERIFICATION
- CHARGEBACK
- DEPOSIT_FUNDING
- DEPOSIT_RELEASE
- DEPOSIT_WITHDRAWAL
- EXTRA
- INTERNAL
- LENDER_DEBT_RESOLUTION
- LENDER_PREFUNDING
- LENDER_REPURCHASE
- LOAN_PAYMENT
- LOAN_PURCHASE
- PAYMENT_PROVIDER_FEES
- PLATFORM
- REFUND
- REPAYMENT_FEES
- REPAYMENT_FULL
- REPAYMENT_NOMINAL
- RETURNED
- REVENUE_SHARE
- REVERT
- SUBSCRIPTION
type: string
required:
- amount
- loan_id
- payment_intent_id
- payment_type
type: object
InsuranceRiskMitigator:
properties:
delay_to_call_insurance_after_chargeback:
default: null
description: Delay in hours before calling the insurance provider after a chargeback. If None, insurance is not called after chargeback.
type: integer
nullable: true
delay_to_call_insurance_on_insolvency_procedure_opening:
default: null
description: Delay in hours before calling the insurance provider when an insolvency procedure is opened. If None, insurance is not called on insolvency procedure opening.
type: integer
nullable: true
insurance_provider:
description: The insurance provider to use for risk mitigation
enum:
- ALLIANZ_TRADE
- CREDIT_360
- SANDBOX
type: string
triggers:
items:
enum:
- BORROWER_DEFAULT
- BORROWER_INSOLVENCY
type: string
type: array
required:
- insurance_provider
- triggers
type: object
ApiRevenueShare:
properties:
document_url:
default: null
type: string
nullable: true
email_sent_on:
default: null
format: date-time
type: string
nullable: true
email_sent_to:
default: null
items:
format: email
type: string
type: array
nullable: true
end_date:
format: date-time
type: string
id:
format: uuid
type: string
payment:
allOf:
- $ref: '#/components/schemas/PaymentApi'
default: null
nullable: true
payment_intent:
allOf:
- $ref: '#/components/schemas/PaymentIntent'
default: null
nullable: true
revenue_shared_with_business:
$ref: '#/components/schemas/BusinessIdentifierWithName'
start_date:
format: date-time
type: string
status:
enum:
- CREATED
- DELETED
- PAID
- SENT_BY_EMAIL
type: string
required:
- end_date
- id
- revenue_shared_with_business
- start_date
- status
type: object
PaymentIntentRelation:
properties:
due_interests:
items:
$ref: '#/components/schemas/DueInterestXPaymentIntent'
type: array
installment_plans:
items:
$ref: '#/components/schemas/InstallmentPlanXPaymentIntent'
type: array
loans:
items:
$ref: '#/components/schemas/LoanPaymentIntent'
type: array
payments:
items:
$ref: '#/components/schemas/PaymentXPaymentIntent'
type: array
type: object
SigningField:
properties:
height:
default: null
type: integer
nullable: true
mention:
default: null
type: string
nullable: true
page:
type: integer
position_x:
type: integer
position_y:
type: integer
type:
default: signature
enum:
- mention
- signature
width:
type: integer
required:
- page
- position_x
- position_y
- width
type: object
SctConfiguration:
properties: {}
type: object
FPUXConfiguration:
properties:
aggregation_scenarios:
default: null
items:
$ref: '#/components/schemas/FinancialProductUxAggregationScenarioConfiguration'
type: array
nullable: true
fp_status_on_manual_review_eligibility:
default: READY
enum:
- BLOCKED
- CHURN
- CLOSED_BY_USER
- CREATED
- CUT
- DEACTIVATED
- PENDING_USER_ACTION
- PRODUCT_DISCONTINUED
- READY
- TO_SIGN
type: string
loan_request:
$ref: '#/components/schemas/FPLoanRequestConfiguration'
type: object
FinancialProductUxAggregationScenarioConfiguration:
properties:
payment_aggregation_scenario:
default: null
description: Processing type for aggregation scenario
enum:
- MERGE_ONLY
- NET_THEN_MERGE
- null
type: string
nullable: true
payment_aggregation_timing:
default: null
description: When does the aggregation happens
enum:
- DAILY
- LOAN_SCHEDULE
- null
type: string
nullable: true
payment_types_to_net_and_merge:
default: null
description: If payment_aggregation_scenario is NET_AND_MERGE, this should contain the list of payment types
items:
enum:
- CHANNEL_VERIFICATION
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/defacto/refs/heads/main/openapi/defacto-billing-api-openapi.yml