Agicap Invoice Flows API
The Invoice Flows API from Agicap — 4 operation(s) for invoice flows.
The Invoice Flows API from Agicap — 4 operation(s) for invoice flows.
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/agicap-invoice-flows-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
contact: {}
description: Manage e-invoicing flows
title: E-Invoicing Invoice Flows API
version: v1
servers:
- url: https://api.agicap.com
- url: https://api.agicap.internal
tags:
- name: Invoice Flows
paths:
/public/einvoicing/v1/flows:
post:
description: 'A flow is a single-invoice file, with:
- an XML/PDF file with the data of the invoice
The flow is created with a FlowInfo object, allowing to qualify the flow.
A flow can be:
- an invoice (CII, UBL, Factur-X, JsonInvoice...)
- a lifecycle (CDAR)
- or an e-reporting file'
operationId: CreateFlow
parameters:
- in: query
name: flowInfo
required: true
schema:
$ref: '#/components/schemas/FlowInfo'
- in: header
name: Request-Id
schema:
format: uuid
type: string
- description: 'Allowed values: Production, Sandbox. Defaults to Production when not specified.'
in: header
name: X-FlowMode
schema:
type: string
requestBody:
content:
multipart/form-data:
encoding:
file:
style: form
schema:
properties:
file:
format: binary
type: string
type: object
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/FullFlowInfo'
text/json:
schema:
$ref: '#/components/schemas/FullFlowInfo'
text/plain:
schema:
$ref: '#/components/schemas/FullFlowInfo'
description: 'OK - Response message once the flow has been uploaded. '
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 400 : Bad request.'
'401':
description: Unauthorized request.
'403':
description: Forbidden request.
'429':
description: Too many requests. Please try again later.
'500':
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Error 500 : Server Internal Error.'
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 503 : Unavailable Resource.'
security:
- bearer_client_credentials:
- agicap:public-api
- bearer_client_credentials:
- agicap:public-api
- bearerAuth: []
summary: Create a flow
tags:
- Invoice Flows
/public/einvoicing/v1/flows/json/validate:
post:
description: This allows to validate the JSON invoice before uploading it.
operationId: ValidateJsonFlow
parameters:
- in: query
name: country
schema:
$ref: '#/components/schemas/ValidationCountry'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PivotInvoice'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AcknowledgementResult'
text/json:
schema:
$ref: '#/components/schemas/AcknowledgementResult'
text/plain:
schema:
$ref: '#/components/schemas/AcknowledgementResult'
description: 'OK - Response message once the flow has been validated. '
'401':
description: Unauthorized request.
'403':
description: Forbidden request.
'429':
description: Too many requests. Please try again later.
'500':
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: An internal server occurred.
security:
- bearer_client_credentials:
- agicap:public-api
- bearer_client_credentials:
- agicap:public-api
- bearerAuth: []
summary: Validate a JSON invoice
tags:
- Invoice Flows
/public/einvoicing/v1/flows/search:
post:
description: 'Retrieves a set of flows matching the provided search criteria:
- When setting flowId, do not specify other criteria
- Need at least one criterion to be specified
- Assuming a logical AND when combining criteria
- Assuming a logical OR for criteria allowing a list of values
Pagination works with pages:
- In the request, provide the page to be returned
- In the response, the total count of items'
operationId: SearchFlow
parameters:
- in: header
name: Request-Id
schema:
format: uuid
type: string
requestBody:
content:
application/json:
example:
limit: 25
offset: 0
where:
ackStatus: Ok
electronicAddress: 0225:123456789
flowDirection: Out
flowId: 019f7277-202e-78a9-aacc-2b9b519c0458
flowMode: Production
flowType: CustomerInvoice
trackingId: 019f7277-202e-79d2-81e4-0880c309eec3
updatedAfter: '2026-07-17T23:43:57.4867414Z'
updatedBefore: '2026-07-17T23:43:57.4867419Z'
schema:
$ref: '#/components/schemas/SearchFlowParams'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SearchFlowContent'
text/json:
schema:
$ref: '#/components/schemas/SearchFlowContent'
text/plain:
schema:
$ref: '#/components/schemas/SearchFlowContent'
description: 'OK - Response message when returning the results of a search request. - Holds all the results if code is 200 - Holds partial content if code is 206 '
'206':
content:
application/json:
schema:
$ref: '#/components/schemas/SearchFlowContent'
text/json:
schema:
$ref: '#/components/schemas/SearchFlowContent'
text/plain:
schema:
$ref: '#/components/schemas/SearchFlowContent'
description: 'OK - Response message when returning the results of a search request. - Holds all the results if code is 200 - Holds partial content if code is 206 '
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 400 : Bad request.'
'401':
description: Unauthorized request.
'403':
description: Forbidden request.
'429':
description: Too many requests. Please try again later.
'500':
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Error 500 : Server Internal Error.'
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 503 : Unavailable Resource.'
security:
- bearer_client_credentials:
- agicap:public-api
- bearer_client_credentials:
- agicap:public-api
- bearerAuth: []
summary: Select flows upon criteria
tags:
- Invoice Flows
/public/einvoicing/v1/flows/{flowId}:
get:
description: 'Download a file related to a given flow:
- an invoice
- a life cycle
- an e-reporting'
operationId: GetFlow
parameters:
- description: Flow identifier
in: path
name: flowId
required: true
schema:
format: uuid
type: string
- description: 'This parameter allows to provide the type of file to be uploaded, can be either one:
- Original: the document that has been initially sent/provided by the emitter
- Converted: the document that has been optionally converted by the system
- ReadableView: the document that has been optionally generated as the readable file
- Attachment: one of the attached documents, provide the optional index if needed'
in: query
name: docType
schema:
$ref: '#/components/schemas/FlowDocType'
- description: If docType is an Attachment and in case there are several attached documents, it says which one to address
in: query
name: docIndex
schema:
format: int32
type: integer
- description: If docType is Converted, it says in which format to convert. By default, it is Json
in: query
name: docFormat
schema:
$ref: '#/components/schemas/FlowDocFormat'
responses:
'200':
content:
application/json: {}
application/pdf: {}
application/xml: {}
description: Ok
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 400 : Bad request.'
'401':
description: Unauthorized request.
'403':
description: Forbidden request.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 404 : Resource Not Found.'
'429':
description: Too many requests. Please try again later.
'500':
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Error 500 : Server Internal Error.'
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
text/json:
schema:
$ref: '#/components/schemas/Error'
text/plain:
schema:
$ref: '#/components/schemas/Error'
description: 'Error 503 : Unavailable Resource.'
security:
- bearer_client_credentials:
- agicap:public-api
- bearer_client_credentials:
- agicap:public-api
- bearerAuth: []
summary: Download a flow
tags:
- Invoice Flows
components:
schemas:
BuyerAgentAddress:
additionalProperties: false
properties:
addressLine1:
type:
- string
- 'null'
addressLine2:
type:
- string
- 'null'
addressLine3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
postalCode:
type:
- string
- 'null'
region:
type:
- string
- 'null'
type: object
Buyer:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/BuyerAddress'
businessName:
type:
- string
- 'null'
contact:
$ref: '#/components/schemas/BuyerContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
registrationName:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
ProcessingRule:
additionalProperties: false
enum:
- B2B
- B2BInt
- B2C
type: string
PivotAttachment:
additionalProperties: false
properties:
content:
type:
- string
- 'null'
contentType:
type:
- string
- 'null'
externalLocation:
type:
- string
- 'null'
fileName:
type:
- string
- 'null'
reference:
type:
- string
- 'null'
supportingDocumentDescription:
type:
- string
- 'null'
type: object
Error:
additionalProperties: false
properties:
errorCode:
minLength: 1
type: string
errorMessage:
type:
- string
- 'null'
required:
- errorCode
type: object
ExtBuyerAgent:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/BuyerAgentAddress'
businessName:
type:
- string
- 'null'
contact:
$ref: '#/components/schemas/BuyerAgentContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
registrationName:
type:
- string
- 'null'
roleCode:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
FlowProfile:
additionalProperties: false
enum:
- Basic
- CIUS
- Extended-CTC-FR
type: string
FlowInfo:
additionalProperties: false
properties:
entityId:
format: int32
type: integer
flowProfile:
$ref: '#/components/schemas/FlowProfile'
flowSyntax:
$ref: '#/components/schemas/FlowSyntax'
name:
type:
- string
- 'null'
processingRule:
$ref: '#/components/schemas/ProcessingRule'
sha256:
pattern: ^[a-f0-9]{64}$
type:
- string
- 'null'
trackingId:
type:
- string
- 'null'
required:
- entityId
- flowSyntax
type: object
LineAllowance:
additionalProperties: false
properties:
baseAmount:
format: double
type:
- number
- 'null'
multiplierFactor:
format: double
type:
- number
- 'null'
reason:
type:
- string
- 'null'
reasonCode:
type:
- string
- 'null'
taxExclusiveAmount:
format: double
type:
- number
- 'null'
type: object
FlowDto:
additionalProperties: false
properties:
acknowledgement:
$ref: '#/components/schemas/AcknowledgementResult'
attachmentNumber:
format: int32
type:
- integer
- 'null'
flowDirection:
$ref: '#/components/schemas/FlowDirection'
flowId:
maxLength: 36
type:
- string
- 'null'
flowProfile:
$ref: '#/components/schemas/FlowProfile'
flowSyntax:
$ref: '#/components/schemas/FlowSyntax'
flowType:
$ref: '#/components/schemas/FlowType'
submittedAt:
format: date-time
type: string
trackingId:
type:
- string
- 'null'
updatedAt:
format: date-time
type: string
required:
- acknowledgement
- flowId
type: object
BillingServiceAddress:
additionalProperties: false
properties:
addressLine1:
type:
- string
- 'null'
addressLine2:
type:
- string
- 'null'
addressLine3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
postalCode:
type:
- string
- 'null'
region:
type:
- string
- 'null'
type: object
Allowance:
additionalProperties: false
properties:
baseAmount:
format: double
type:
- number
- 'null'
multiplierFactor:
format: double
type:
- number
- 'null'
reason:
type:
- string
- 'null'
reasonCode:
type:
- string
- 'null'
taxCategoryCode:
type:
- string
- 'null'
taxExclusiveAmount:
format: double
type:
- number
- 'null'
taxRate:
format: double
type:
- number
- 'null'
type: object
BillingServiceContact:
additionalProperties: false
properties:
email:
type:
- string
- 'null'
name:
type:
- string
- 'null'
telephone:
type:
- string
- 'null'
type: object
Charge:
additionalProperties: false
properties:
baseAmount:
format: double
type:
- number
- 'null'
multiplierFactor:
format: double
type:
- number
- 'null'
reason:
type:
- string
- 'null'
reasonCode:
type:
- string
- 'null'
taxCategoryCode:
type:
- string
- 'null'
taxExclusiveAmount:
format: double
type:
- number
- 'null'
taxRate:
format: double
type:
- number
- 'null'
type: object
ExtInvoicePayer:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/InvoicePayerAddress'
businessName:
type:
- string
- 'null'
contact:
$ref: '#/components/schemas/InvoicePayerContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
registrationName:
type:
- string
- 'null'
roleCode:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
AdditionalDocumentReference:
additionalProperties: false
properties:
internalCustomerNumber:
type:
- string
- 'null'
type: object
FlowAckStatus:
additionalProperties: false
enum:
- Pending
- Ok
- Error
- Archived
type: string
Seller:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/SellerAddress'
businessName:
type:
- string
- 'null'
companyLegalForm:
type:
- string
- 'null'
contact:
$ref: '#/components/schemas/SellerContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
registrationName:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
FlowDirection:
additionalProperties: false
enum:
- In
- Out
type: string
ProblemDetails:
additionalProperties: false
properties:
detail:
type:
- string
- 'null'
instance:
type:
- string
- 'null'
status:
format: int32
type:
- integer
- 'null'
title:
type:
- string
- 'null'
type:
type:
- string
- 'null'
type: object
SellerAddress:
additionalProperties: false
properties:
addressLine1:
type:
- string
- 'null'
addressLine2:
type:
- string
- 'null'
addressLine3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
postalCode:
type:
- string
- 'null'
region:
type:
- string
- 'null'
type: object
BuyerAddress:
additionalProperties: false
properties:
addressLine1:
type:
- string
- 'null'
addressLine2:
type:
- string
- 'null'
addressLine3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
postalCode:
type:
- string
- 'null'
region:
type:
- string
- 'null'
type: object
Payee:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/PayeeAddress'
contact:
$ref: '#/components/schemas/PayeeContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
name:
type:
- string
- 'null'
roleCode:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
SearchFlowContent:
additionalProperties: false
properties:
filter:
$ref: '#/components/schemas/SearchFlowFilters'
limit:
format: int32
type: integer
offset:
format: int32
type: integer
results:
items:
$ref: '#/components/schemas/FlowDto'
type:
- array
- 'null'
total:
format: int32
type: integer
type: object
ItemAttribute:
additionalProperties: false
properties:
name:
type:
- string
- 'null'
value:
type:
- string
- 'null'
type: object
FlowMode:
additionalProperties: false
enum:
- Production
- Sandbox
type: string
InvoiceeContact:
additionalProperties: false
properties:
email:
type:
- string
- 'null'
name:
type:
- string
- 'null'
telephone:
type:
- string
- 'null'
type: object
Invoicee:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/InvoiceeAddress'
businessName:
type:
- string
- 'null'
contact:
$ref: '#/components/schemas/InvoiceeContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
registrationName:
type:
- string
- 'null'
roleCode:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
SearchFlowFilters:
additionalProperties: false
properties:
ackStatus:
$ref: '#/components/schemas/FlowAckStatus'
electronicAddress:
description: Reception electronic address in Peppol format "scheme:identifier" (e.g. "0225:123456789").
pattern: ^[^:]+:[^:]+$
type:
- string
- 'null'
flowDirection:
$ref: '#/components/schemas/FlowDirection'
flowId:
maxLength: 36
type:
- string
- 'null'
flowMode:
$ref: '#/components/schemas/FlowMode'
flowType:
$ref: '#/components/schemas/FlowType'
trackingId:
type:
- string
- 'null'
updatedAfter:
format: date-time
type:
- string
- 'null'
updatedBefore:
format: date-time
type:
- string
- 'null'
type: object
TaxRepresentativeAddress:
additionalProperties: false
properties:
addressLine1:
type:
- string
- 'null'
addressLine2:
type:
- string
- 'null'
addressLine3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
countrySubdivision:
type:
- string
- 'null'
postalCode:
type:
- string
- 'null'
type: object
FlowDocType:
additionalProperties: false
enum:
- Original
- Converted
type: string
PaymentCard:
additionalProperties: false
properties:
accountIdentifier:
type:
- string
- 'null'
accountName:
type:
- string
- 'null'
networkId:
type:
- string
- 'null'
type: object
DeliveryAddress:
additionalProperties: false
properties:
addressLine1:
type:
- string
- 'null'
addressLine2:
type:
- string
- 'null'
addressLine3:
type:
- string
- 'null'
city:
type:
- string
- 'null'
countryCode:
type:
- string
- 'null'
postalCode:
type:
- string
- 'null'
region:
type:
- string
- 'null'
type: object
ExtSellerAgent:
additionalProperties: false
properties:
address:
$ref: '#/components/schemas/SellerAgentAddress'
businessName:
type:
- string
- 'null'
contact:
$ref: '#/components/schemas/SellerAgentContact'
electronicAddress:
type:
- string
- 'null'
identifier:
items:
type: string
type:
- array
- 'null'
legalRegistrationId:
type:
- string
- 'null'
registrationName:
type:
- string
- 'null'
roleCode:
type:
- string
- 'null'
vatId:
type:
- string
- 'null'
type: object
PrecedingInvoice:
additionalProperties: false
properties:
invoiceNumber:
type:
- string
- 'null'
issueDate:
type:
- string
- 'null'
type: object
Note:
additionalProperties: false
properties:
noteCode:
type:
- string
- 'null'
noteValue:
type:
- string
- 'null'
type: object
PayeeContact:
additionalProperties: false
properties:
email:
type:
- string
- 'null'
name:
type:
- string
- 'null'
telephone:
type:
- string
- 'null'
type: object
FullFlowInfo:
additionalProperties: false
properties:
flowId:
maxLength: 36
type:
- string
- 'null'
flowProfile:
$ref: '#/components/schemas/FlowProfile'
flowSyntax:
$ref: '#/components/schemas/FlowSyntax'
name:
minLength: 1
type: string
sha256:
pattern: ^[a-f0-9]{64}$
type:
- string
- 'null'
trackingId:
type:
- string
- 'null'
required:
- flowId
- flowSyntax
- name
- sha256
type: object
TransferAccount:
additionalProperties: false
properties:
accountId:
type:
- string
- 'null'
bankId:
type:
- string
- 'null'
name:
type:
- string
- 'null'
type: object
Delivery:
additionalProperties: false
properties:
actualDeliveryDate:
type:
- string
- 'null'
address:
$ref: '#/components/schemas/DeliveryAddress'
locationId:
type:
- string
- 'null'
name:
type:
- string
- 'null'
type: object
SellerContact:
additionalProperties: false
properties:
email:
type:
- string
- 'null'
name:
type:
- string
- 'null'
telephone:
type:
- string
- 'null'
type: object
Level:
additionalProperties: false
enum:
- Error
- Warning
type: string
ValidationCountry:
additionalProperties: false
enum:
- FR
- BE
type: string
BuyerContact:
additionalProperties: false
properties:
email:
type:
- string
- 'null'
name:
type:
- string
- 'null'
telephone:
type:
- string
- 'null'
type: object
LineCharge:
additionalProperties: false
properties:
baseAmount:
format: double
type:
- number
- 'null'
multiplierFactor:
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/agicap/refs/heads/main/openapi/agicap-invoice-flows-api-openapi.yml