Hevn Inc invoices API
The invoices API from Hevn Inc — 14 operation(s) for invoices.
The invoices API from Hevn Inc — 14 operation(s) for invoices.
openapi: 3.1.0
info:
title: HEVN 2FA invoices API
description: Backend API for HEVN mobile neobank
version: 0.1.2
servers:
- url: https://api.hevn.finance
description: Production
tags:
- name: invoices
paths:
/api/v1/documents/contracts/invoices:
post:
tags:
- invoices
summary: Create invoice
operationId: create_invoice_api_v1_documents_contracts_invoices_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- invoices
summary: List invoices for current user
operationId: list_invoices_api_v1_documents_contracts_invoices_get
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/documents/contracts/invoices/uploaded:
post:
tags:
- invoices
summary: Create incoming invoice from uploaded document
operationId: create_uploaded_invoice_api_v1_documents_contracts_invoices_uploaded_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUploadedInvoiceRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/documents/contracts/invoices/share_link:
post:
tags:
- invoices
summary: Generate a share link for invoice creation
operationId: invoice_share_link_api_v1_documents_contracts_invoices_share_link_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceShareLinkResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/documents/contracts/invoices/batch_invoicing:
post:
tags:
- invoices
summary: Generate invoices for multiple contracts
operationId: batch_invoicing_api_v1_documents_contracts_invoices_batch_invoicing_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BatchInvoicingRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BatchInvoicingResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/documents/contracts/invoices/{invoice_id}:
get:
tags:
- invoices
summary: Get invoice by ID
operationId: get_invoice_api_v1_documents_contracts_invoices__invoice_id__get
security:
- HTTPBearer: []
parameters:
- name: invoice_id
in: path
required: true
schema:
type: string
format: uuid
title: Invoice Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- invoices
summary: Update invoice (set transaction_hash)
operationId: update_invoice_api_v1_documents_contracts_invoices__invoice_id__put
security:
- HTTPBearer: []
parameters:
- name: invoice_id
in: path
required: true
schema:
type: string
format: uuid
title: Invoice Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInvoiceRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/documents/contracts/{contract_id}/create-invoice:
post:
tags:
- invoices
summary: Create invoice from contract
operationId: create_invoice_from_contract_api_v1_documents_contracts__contract_id__create_invoice_post
security:
- HTTPBearer: []
parameters:
- name: contract_id
in: path
required: true
schema:
type: string
format: uuid
title: Contract Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceFromContractRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/documents/contracts/invoices/ai_parse:
post:
tags:
- invoices
summary: AI parse invoice PDF and return invoice preview
operationId: ai_parse_invoice_api_v1_documents_contracts_invoices_ai_parse_post
security:
- HTTPBearer: []
parameters:
- name: document_id
in: query
required: false
schema:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Document Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicInvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/invoices:
post:
tags:
- invoices
summary: Create invoice
operationId: create_invoice_package_alias_api_v1_invoices_documents_contracts_invoices_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- invoices
summary: List invoices for current user
operationId: list_invoices_package_alias_api_v1_invoices_documents_contracts_invoices_get
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/invoices/uploaded:
post:
tags:
- invoices
summary: Create incoming invoice from uploaded document
operationId: create_uploaded_invoice_package_alias_api_v1_invoices_documents_contracts_invoices_uploaded_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUploadedInvoiceRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/invoices/share_link:
post:
tags:
- invoices
summary: Generate a share link for invoice creation
operationId: invoice_share_link_package_alias_api_v1_invoices_documents_contracts_invoices_share_link_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceShareLinkResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/invoices/batch_invoicing:
post:
tags:
- invoices
summary: Generate invoices for multiple contracts
operationId: batch_invoicing_package_alias_api_v1_invoices_documents_contracts_invoices_batch_invoicing_post
security:
- HTTPBearer: []
parameters:
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BatchInvoicingRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BatchInvoicingResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/invoices/{invoice_id}:
get:
tags:
- invoices
summary: Get invoice by ID
operationId: get_invoice_package_alias_api_v1_invoices_documents_contracts_invoices__invoice_id__get
security:
- HTTPBearer: []
parameters:
- name: invoice_id
in: path
required: true
schema:
type: string
format: uuid
title: Invoice Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- invoices
summary: Update invoice (set transaction_hash)
operationId: update_invoice_package_alias_api_v1_invoices_documents_contracts_invoices__invoice_id__put
security:
- HTTPBearer: []
parameters:
- name: invoice_id
in: path
required: true
schema:
type: string
format: uuid
title: Invoice Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInvoiceRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/{contract_id}/create-invoice:
post:
tags:
- invoices
summary: Create invoice from contract
operationId: create_invoice_from_contract_package_alias_api_v1_invoices_documents_contracts__contract_id__create_invoice_post
security:
- HTTPBearer: []
parameters:
- name: contract_id
in: path
required: true
schema:
type: string
format: uuid
title: Contract Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceFromContractRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/invoices/documents/contracts/invoices/ai_parse:
post:
tags:
- invoices
summary: AI parse invoice PDF and return invoice preview
operationId: ai_parse_invoice_package_alias_api_v1_invoices_documents_contracts_invoices_ai_parse_post
security:
- HTTPBearer: []
parameters:
- name: document_id
in: query
required: false
schema:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Document Id
- name: x-api-key
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicInvoiceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ContactWalletResponse:
properties:
address:
type: string
title: Address
chainId:
anyOf:
- type: string
- type: 'null'
title: Chainid
currency:
type: string
title: Currency
default: EUR
internal:
type: boolean
title: Internal
default: false
type: object
required:
- address
title: ContactWalletResponse
description: Wallet payment method block used by invoice/payment method schemas.
InvoiceDocumentInfo:
properties:
id:
type: string
format: uuid
title: Id
name:
type: string
title: Name
key:
type: string
title: Key
type: object
required:
- id
- name
- key
title: InvoiceDocumentInfo
description: 'Document attached to an invoice.
`key` is a short-lived signed token. To download call
GET /documents/download/{id}?key={key}.'
app__schemas__base__ContactRelationship:
type: string
enum:
- charity
- commercial_investment
- corporate_card
- credit_card
- dividend
- family
- financial_services
- good_sold
- goods_bought
- government
- insurance
- intergroup_transfer
- intra_group_dividends
- information_technology
- leasing
- loan_charges
- merchant_settlement
- mobile_wallet
- none
- non_resident_transfer_between_accounts
- pension
- personal_expenses
- prepaid_cards
- professional
- rental
- resident_transfer_between_accounts
- salaries
- telecommunications
- travel
- utility_bill
title: ContactRelationship
description: 'Unified contact relationship / transfer purpose.
Values match Align AlignTransferPurpose (the more granular set).
Mapped to Swipelux AccountHolderRelationship via ``swipelux_relationship``.'
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
BatchInvoiceResult:
properties:
contractId:
type: string
format: uuid
title: Contractid
counterpartyId:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Counterpartyid
periodNumber:
anyOf:
- type: integer
- type: 'null'
title: Periodnumber
status:
type: string
title: Status
invoice:
anyOf:
- $ref: '#/components/schemas/InvoiceResponse'
- type: 'null'
detail:
anyOf:
- type: string
- type: 'null'
title: Detail
type: object
required:
- contractId
- status
title: BatchInvoiceResult
InvoiceShareLinkResponse:
properties:
link:
type: string
title: Link
key:
type: string
title: Key
keyPreview:
type: string
title: Keypreview
type: object
required:
- link
- key
- keyPreview
title: InvoiceShareLinkResponse
description: Response with a share link for invoice creation.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ContractStatus:
type: string
enum:
- pending_approval_by_contractor
- pending_approval_by_client
- active
- completed
- cancelled
- paused
title: ContractStatus
description: Contract status.
Currency:
type: string
enum:
- USD
- EUR
- GBP
- JPY
- CHF
- CAD
- AUD
- NZD
- SEK
- NOK
- AED
- HKD
title: Currency
description: Supported invoice/contract currencies. G10 majors + AED/HKD.
BatchInvoicingResponse:
properties:
results:
items:
$ref: '#/components/schemas/BatchInvoiceResult'
type: array
title: Results
type: object
title: BatchInvoicingResponse
InvoiceResponse:
properties:
id:
type: string
format: uuid
title: Id
onchainTransactionId:
anyOf:
- type: string
- type: 'null'
title: Onchaintransactionid
transaction:
anyOf:
- $ref: '#/components/schemas/InvoiceTransactionInfo'
- type: 'null'
amount:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Amount
discount:
anyOf:
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
- type: 'null'
title: Discount
currency:
$ref: '#/components/schemas/Currency'
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
emailMessage:
anyOf:
- type: string
- type: 'null'
title: Emailmessage
invoiceNumber:
anyOf:
- type: string
- type: 'null'
title: Invoicenumber
periodNumber:
anyOf:
- type: integer
- type: 'null'
title: Periodnumber
issuedDate:
anyOf:
- type: string
format: date
- type: 'null'
title: Issueddate
dueDate:
anyOf:
- type: string
format: date
- type: 'null'
title: Duedate
items:
items:
additionalProperties: true
type: object
type: array
title: Items
paymentMethods:
items:
anyOf:
- $ref: '#/components/schemas/IBANAccountDetails-Output'
- $ref: '#/components/schemas/USExternalAccountDetails-Output'
- $ref: '#/components/schemas/SwiftAccountDetails-Output'
- $ref: '#/components/schemas/ContactWalletResponse'
- $ref: '#/components/schemas/EmailAccountInput'
type: array
title: Paymentmethods
status:
$ref: '#/components/schemas/InvoiceStatus'
client:
anyOf:
- $ref: '#/components/schemas/InvoiceParticipant'
- type: 'null'
contractor:
anyOf:
- $ref: '#/components/schemas/InvoiceParticipant'
- type: 'null'
contract:
anyOf:
- $ref: '#/components/schemas/InvoiceContractInfo'
- type: 'null'
invoiceLink:
anyOf:
- type: string
- type: 'null'
title: Invoicelink
documents:
items:
$ref: '#/components/schemas/InvoiceDocumentInfo'
type: array
title: Documents
paidAt:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Paidat
createdAt:
type: string
format: date-time
title: Createdat
updatedAt:
type: string
format: date-time
title: Updatedat
type: object
required:
- id
- amount
- currency
- status
- createdAt
- updatedAt
title: InvoiceResponse
description: Invoice response.
InvoiceStatus:
type: string
enum:
- draft
- sent
- paid
- cancelled
- client_paid
- client_declined
title: InvoiceStatus
description: Invoice status.
CreateInvoiceFromContractRequest:
properties:
amount:
anyOf:
- type: number
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
- type: 'null'
title: Amount
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
invoicePrefix:
type: string
maxLength: 16
minLength: 1
pattern: ^[A-Za-z0-9_-]+$
title: Invoiceprefix
description: Prefix for auto-generated invoice_number, e.g. "INV" → "INV-0001".
default: INV
contractorAddress:
anyOf:
- $ref: '#/components/schemas/UserAddress'
- type: 'null'
periodStart:
anyOf:
- type: string
format: date
- type: 'null'
title: Periodstart
addItems:
items:
additionalProperties: true
type: object
type: array
title: Additems
type: object
title: CreateInvoiceFromContractRequest
description: 'Request to create an invoice from a contract.
Either party (client or contractor) of the contract may create the invoice;
attribution always flows from ``contract.contractor`` to
``contract.client``. Amount defaults to the contract amount when not
provided. ``contractor_address`` is optional — when omitted, the snapshot
stored on the contract (or the linked contact''s address) is used.
``invoice_number`` is auto-generated per (contractor, client) pair as e.g.
``"INV-0001"``.'
USExternalAccountDetails-Output:
properties:
bankName:
type: string
title: Bankname
bankAddress:
anyOf:
- type: string
- type: 'null'
title: Bankaddress
currency:
anyOf:
- type: string
- type: 'null'
title: Currency
accountHolderType:
$ref: '#/components/schemas/AlignAccountHolderType'
accountHolderFirstName:
anyOf:
- type: string
- type: 'null'
title: Accountholderfirstname
accountHolderLastName:
anyOf:
- type: string
- type: 'null'
title: Accountholderlastname
accountHolderBusinessName:
anyOf:
- type: string
- type: 'null'
title: Accountholderbusinessname
accountHolderAddress:
anyOf:
- $ref: '#/components/schemas/UserAddress'
- type: 'null'
relationship:
anyOf:
- $ref: '#/components/schemas/app__schemas__base__ContactRelationship'
- type: 'null'
paymentReference:
anyOf:
- type: string
- type: 'null'
title: Paymentreference
accountType:
type: string
enum:
- ach
- fedwire
title: Accounttype
default: ach
us:
$ref: '#/components/schemas/USAccountDetails'
beneficiaryName:
anyOf:
- type: string
- type: 'null'
title: Beneficiaryname
description: Frontend-only alias derived from account holder fields.
readOnly: true
type: object
required:
- bankName
- accountHolderType
- us
- beneficiaryName
title: USExternalAccountDetails
description: US domestic (ACH) external account.
InvoiceTransactionInfo:
properties:
onchainTransactionId:
type: string
title: Onchaintransactionid
amount:
type: number
title: Amount
txHash:
type: string
title: Txhash
type:
type: string
title: Type
createdAt:
type: string
format: date-time
title: Createdat
type: object
required:
- onchainTransactionId
- amount
- txHash
- type
- createdAt
title: InvoiceTransactionInfo
description: Minimal transaction info embedded in invoice response.
UpdateInvoiceRequest:
properties:
onchainTransactionId:
anyOf:
- type: string
- type: 'null'
title: Onchaintransactionid
status:
$ref: '#/components/schemas/InvoiceStatus'
type: object
required:
- status
title: UpdateInvoiceRequest
description: Request to update an invoice.
PublicInvoiceResponse:
properties:
id:
type: string
format: uuid
title: Id
amount:
type: number
title: Amount
currency:
type: string
title: Currency
comment:
anyOf:
- type: string
- type: 'null'
title: Comment
invoiceNumber:
anyOf:
- type: string
- type: 'null'
title: Invoicenumber
issuedDate:
anyOf:
- type: string
format: date
- type: 'null'
title: Issueddate
dueDate:
anyOf:
- type: string
format: date
- type: 'null'
title: Duedate
status:
$ref: '#/components/schemas/InvoiceStatus'
client:
anyOf:
- $ref: '#/components/schemas/InvoiceParticipant'
- type: 'null'
contractor:
anyOf:
- $ref:
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hevn-inc/refs/heads/main/openapi/hevn-inc-invoices-api-openapi.yml