Sibill Transaction API
The Transaction API from Sibill — 2 operation(s) for transaction.
The Transaction API from Sibill — 2 operation(s) for transaction.
openapi: 3.0.0
info:
title: Sibill Integration Account Transaction API
version: 1.0.0
x-logo:
altText: Sibill logo
backgroundColor: '#FFFFFF'
url: https://sibill.com/wp-content/uploads/2022/12/logo-sibill.svg
servers:
- url: http://integration.app.svc.cluster.local:4000
variables: {}
security: []
tags:
- name: Transaction
paths:
/api/v1/companies/{company_id}/transactions:
get:
callbacks: {}
description: 'The return value is paginated. By default the response contains 25 elements per page but can be instructed to return more elements per page.
A cursor is needed to traverse the results.
'
operationId: SibillWeb.Integration.V1.TransactionsController.index
parameters:
- description: The company the transactions belong to
in: path
name: company_id
required: true
schema:
type: string
- description: The page size
in: query
name: page_size
required: false
schema:
type: integer
- description: 'The pagination cursor. A cursor is used to paginate through a large set of data.
It is a unique identifier that represents a specific position in the dataset.
'
in: query
name: cursor
required: false
schema:
type: string
- description: 'Fields that will be expanded. Expandable fields: `category`, `subcategory`, `reconciliations`, `reconciliations.flow`'
in: query
name: expand
required: false
schema:
type: string
- description: 'List of filters on the resource. Currently the fields that allow to be filtered are: `account_id`, `booking_date_time`, `clean_description`, `counterpart_name`, `date`, `type`'
in: query
name: filter
required: false
schema:
type: object
- description: 'Fields for which we can order the results. Sortable fields: `amount`, `created_at`, `date`'
in: query
name: sort
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionList'
description: Ok
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Bad request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Forbidden
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Too Many Requests
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Internal Server Error
security:
- authorization: []
summary: List all transactions for the company
tags:
- Transaction
x-codeSamples:
- label: ⚡ cURL
lang: Shell
source: "base_url=\"http://example.com\" # Replace with the correct Sibill integration API host\n\ncurl --request GET \\\n --url ${base_url}/api/v1/companies/:company_id/transactions \\\n --header \"Authorization: Bearer ${authorization_token}\"\n"
- label: 🌐 HTTP
lang: HTTP
source: 'GET /api/v1/companies/:company_id/transactions HTTP/1.1
Host: example.com # Replace with the correct Sibill integration API host
Authorization: Bearer ${authorization_token}
'
- label: 💜 Elixir
lang: Elixir
source: 'Mix.install([:req])
base_url = "http://example.com" # Replace with the correct Sibill integration API host
url = base_url <> "/api/v1/companies/:company_id/transactions"
headers = [{"Authorization", "Bearer ${authorization_token}"}]
Req.get(url, headers: headers)
'
- label: 🐍 Python
lang: Python
source: 'import requests
base_url = "http://example.com" # Replace with the correct Sibill integration API host
url = base_url + "/api/v1/companies/:company_id/transactions"
headers = {"Authorization": "Bearer ${authorization_token}"}
response = requests.get(url, headers=headers)
print(response.text)
'
- label: ☕ Java
lang: Java
source: "import java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\nimport java.net.URI;\n\nString base_url = \"http://example.com\"; // Replace with the correct Sibill integration API host\nString url = base_url + \"/api/v1/companies/:company_id/transactions\";\n\nHttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n .uri(URI.create(url))\n .header(\"Authorization\", \"Bearer ${authorization_token}\")\n .GET()\n .build();\n\nHttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());\n"
- label: 🐘 PHP
lang: PHP
source: "<?php\n\n$url = \"http://example.com/api/v1/companies/:company_id/transactions\"; // Replace with the correct Sibill integration API host\n\n$ch = curl_init($url);\n\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"GET\");\n\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n \"Authorization: Bearer ${authorization_token}\"\n]);\n\n$response = curl_exec($ch);\n\nif (curl_errno($ch)) {\n echo 'Curl error: ' . curl_error($ch);\n} else {\n echo 'Response:' . PHP_EOL;\n echo $response;\n}\n\ncurl_close($ch);\n"
/api/v1/companies/{company_id}/transactions/{id}:
get:
callbacks: {}
description: Returns all the information for a specific transaction from its identifier
operationId: SibillWeb.Integration.V1.TransactionsController.show
parameters:
- description: The company the transaction belongs to
in: path
name: company_id
required: true
schema:
type: string
- description: The transaction identifier
in: path
name: id
required: true
schema:
type: string
- description: 'Fields that will be expanded. Expandable fields: `category`, `subcategory`, `reconciliations`, `reconciliations.flow`'
in: query
name: expand
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionData'
description: Ok
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Too Many Requests
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Internal Server Error
security:
- authorization: []
summary: Get a transaction
tags:
- Transaction
x-codeSamples:
- label: ⚡ cURL
lang: Shell
source: "base_url=\"http://example.com\" # Replace with the correct Sibill integration API host\n\ncurl --request GET \\\n --url ${base_url}/api/v1/companies/:company_id/transactions/:transaction_id \\\n --header \"Authorization: Bearer ${authorization_token}\"\n"
- label: 🌐 HTTP
lang: HTTP
source: 'GET /api/v1/companies/:company_id/transactions/:transaction_id HTTP/1.1
Host: example.com # Replace with the correct Sibill integration API host
Authorization: Bearer ${authorization_token}
'
- label: 💜 Elixir
lang: Elixir
source: 'Mix.install([:req])
base_url = "http://example.com" # Replace with the correct Sibill integration API host
url = base_url <> "/api/v1/companies/:company_id/transactions/:transaction_id"
headers = [{"Authorization", "Bearer ${authorization_token}"}]
Req.get(url, headers: headers)
'
- label: 🐍 Python
lang: Python
source: 'import requests
base_url = "http://example.com" # Replace with the correct Sibill integration API host
url = base_url + "/api/v1/companies/:company_id/transactions/:transaction_id"
headers = {"Authorization": "Bearer ${authorization_token}"}
response = requests.get(url, headers=headers)
print(response.text)
'
- label: ☕ Java
lang: Java
source: "import java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\nimport java.net.URI;\n\nString base_url = \"http://example.com\"; // Replace with the correct Sibill integration API host\nString url = base_url + \"/api/v1/companies/:company_id/transactions/:transaction_id\";\n\nHttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n .uri(URI.create(url))\n .header(\"Authorization\", \"Bearer ${authorization_token}\")\n .GET()\n .build();\n\nHttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());\n"
- label: 🐘 PHP
lang: PHP
source: "<?php\n\n$url = \"http://example.com/api/v1/companies/:company_id/transactions/:transaction_id\"; // Replace with the correct Sibill integration API host\n\n$ch = curl_init($url);\n\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"GET\");\n\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n \"Authorization: Bearer ${authorization_token}\"\n]);\n\n$response = curl_exec($ch);\n\nif (curl_errno($ch)) {\n echo 'Curl error: ' . curl_error($ch);\n} else {\n echo 'Response:' . PHP_EOL;\n echo $response;\n}\n\ncurl_close($ch);\n"
patch:
callbacks: {}
operationId: SibillWeb.Integration.V1.TransactionsController.update
parameters:
- description: The company where to execute the operation
in: path
name: company_id
required: true
schema:
type: string
- description: The transaction identifier
in: path
name: id
required: true
schema:
type: string
- description: 'Fields that will be expanded. Expandable fields: `category`, `subcategory`, `reconciliations`, `reconciliations.flow`'
in: query
name: expand
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionUpdate'
description: Transaction
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionData'
description: Transaction updated
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Bad request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Unprocessable Entity
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Too Many Requests
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationError'
description: Internal Server Error
security:
- authorization: []
summary: Update an existing transaction
tags:
- Transaction
x-codeSamples:
- label: ⚡ cURL
lang: Shell
source: "base_url=\"http://example.com\" # Replace with the correct Sibill integration API host\n\ncurl --request PATCH \\\n --url ${base_url}/api/v1/companies/:company_id/transactions/:transaction_id \\\n --header \"Authorization: Bearer ${authorization_token}\" \\\n --header \"Content-Type: application/json\" \\\n --data '${your payload here}'\n"
- label: 🌐 HTTP
lang: HTTP
source: 'PATCH /api/v1/companies/:company_id/transactions/:transaction_id HTTP/1.1
Host: example.com # Replace with the correct Sibill integration API host
Authorization: Bearer ${authorization_token}
Content-Type: application/json
${your payload here}
'
- label: 💜 Elixir
lang: Elixir
source: 'Mix.install([:req])
base_url = "http://example.com" # Replace with the correct Sibill integration API host
url = base_url <> "/api/v1/companies/:company_id/transactions/:transaction_id"
headers = [{"Authorization", "Bearer ${authorization_token}"}, {"Content-Type", "application/json"}]
payload = ${your payload here}
Req.patch(url, headers: headers, body: payload)
'
- label: 🐍 Python
lang: Python
source: 'import requests
base_url = "http://example.com" # Replace with the correct Sibill integration API host
url = base_url + "/api/v1/companies/:company_id/transactions/:transaction_id"
headers = {"Authorization": "Bearer ${authorization_token}", "Content-Type": "application/json"}
payload = ${your payload here}
response = requests.patch(url, headers=headers, json=payload)
print(response.text)
'
- label: ☕ Java
lang: Java
source: "import java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\nimport java.net.URI;\n\nString base_url = \"http://example.com\"; // Replace with the correct Sibill integration API host\nString url = base_url + \"/api/v1/companies/:company_id/transactions/:transaction_id\";\n\nHttpClient client = HttpClient.newHttpClient();\nHttpRequest request = HttpRequest.newBuilder()\n .uri(URI.create(url))\n .header(\"Authorization\", \"Bearer ${authorization_token}\")\n .header(\"Content-Type\", \"application/json\")\n .PATCH(HttpRequest.BodyPublishers.ofString(${your payload here}))\n .build();\n\nHttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());\nSystem.out.println(response.body());\n"
- label: 🐘 PHP
lang: PHP
source: "<?php\n\n$url = \"http://example.com/api/v1/companies/:company_id/transactions/:transaction_id\"; // Replace with the correct Sibill integration API host\n\n$ch = curl_init($url);\n\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"PATCH\");\n\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n \"Authorization: Bearer ${authorization_token}\",\n \"Content-Type: application/json\"\n]);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, <<<BODY\n${your payload here}\nBODY\n);\n\n$response = curl_exec($ch);\n\nif (curl_errno($ch)) {\n echo 'Curl error: ' . curl_error($ch);\n} else {\n echo 'Response:' . PHP_EOL;\n echo $response;\n}\n\ncurl_close($ch);\n"
components:
schemas:
Page:
properties:
cursor:
description: A cursor that can be used to fetch the next page of results
nullable: true
type: string
size:
description: The current page size
type: integer
title: Page
type: object
TransactionData:
description: Transaction data object
properties:
data:
$ref: '#/components/schemas/TransactionSchema'
title: TransactionData
type: object
ReconciliationSchema:
description: Reconciliation data representation
properties:
created_at:
description: Creation date of the reconciliation
format: date-time
readOnly: true
type: string
flow:
anyOf:
- $ref: '#/components/schemas/FlowSchema'
nullable: true
readOnly: true
flow_id:
description: The ID of the relative flow
example: 019f8035-9d48-7786-bcec-8f030557370d
format: uuid
readOnly: true
type: string
id:
description: The processed reconciliation identifier
example: 019f8035-9d48-7c47-ad94-07b96040f2fd
format: uuid
readOnly: true
type: string
transaction:
anyOf:
- $ref: '#/components/schemas/TransactionSchema'
nullable: true
readOnly: true
transaction_id:
description: The ID of the relative transaction
example: 019f8035-9d48-75e4-bfe0-8633cb3d815f
format: uuid
readOnly: true
type: string
required:
- id
- flow_id
- transaction_id
title: ReconciliationSchema
type: object
TransactionSchema:
description: Transaction data representation
properties:
account_id:
description: The id of the bank account
example: 019f8035-9d9a-7bcc-afc7-c326bae66d33
format: uuid
readOnly: true
type: string
amount:
description: Money representation through amount and currency properties
example:
amount: '12.3'
currency: EUR
properties:
amount:
minLength: 1
pattern: ^[0-9]*\.?[0-9]+$
readOnly: false
type: string
currency:
enum:
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BOV
- BRL
- BSD
- BTN
- BWP
- BYN
- BZD
- CAD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRU
- MUR
- MVR
- MWK
- MXN
- MXV
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SLL
- SOS
- SRD
- SSP
- STN
- SVC
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- USN
- UYI
- UYU
- UYW
- UZS
- VES
- VND
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- XBD
- XCD
- XDR
- XOF
- XPD
- XPF
- XPT
- XSU
- XTS
- XUA
- XXX
- YER
- ZAR
- ZMW
- ZWL
readOnly: false
type: string
required:
- currency
- amount
type: object
bank_code:
description: The bank code referring to the type of a bank transaction.
nullable: true
readOnly: true
type: string
booking_date_time:
description: The date when the transaction was done
format: date-time
nullable: true
readOnly: true
type: string
category:
nullable: true
properties:
id:
description: The id of the category
example: 019f8035-d6ba-74eb-a48a-cfc8445fa575
format: uuid
readOnly: true
type: string
name:
description: The description of the category
readOnly: true
type: string
readOnly: true
type: object
clean_description:
description: The description of the transaction after it has been cleaned up
nullable: true
readOnly: true
type: string
counterpart_name:
description: The name of the counterpart
nullable: true
readOnly: true
type: string
created_at:
description: Creation date of the record
format: date-time
readOnly: true
type: string
date:
description: The date when the transaction was done
format: date-time
nullable: true
readOnly: true
type: string
description:
description: The original description of the transaction
nullable: true
readOnly: true
type: string
id:
description: The id of the transaction
example: 019f8035-9d9a-7361-88e5-71cba72de431
format: uuid
readOnly: true
type: string
reconciliations:
description: A list of reconciliations related to the transaction
items:
$ref: '#/components/schemas/ReconciliationSchema'
readOnly: true
type: array
subcategory:
nullable: true
properties:
id:
description: The id of the subcategory
example: 019f8035-d6ba-7bdc-a8cc-ebeb5c95f88a
format: uuid
readOnly: true
type: string
name:
description: The description of the subcategory
readOnly: true
type: string
readOnly: true
type: object
type:
description: The type of the bank transaction.
enum:
- CARDS
- CARD_AUTHORIZATION
- CASH
- CHECK
- DEPOSITS
- DIRECT_DEBIT
- FEES
- FINANCIAL_EXPENSES
- FINANCING
- INTERNAL_TRANSFER
- OTHER
- POS
- RIBA
- TAXES
- TRANSFER
- WITHDRAWALS
nullable: true
readOnly: true
type: string
value_date_time:
description: The date when the exchange of money took place
format: date-time
nullable: true
readOnly: true
type: string
title: TransactionSchema
type: object
TransactionUpdate:
description: Update transaction data object
properties:
category_id:
description: The category identifier. Pass `null` to clear the category and the subcategory.
example: 019f8035-d6ff-73dd-8af1-111d6de30803
format: uuid
nullable: true
type: string
subcategory_id:
description: The subcategory identifier. Must belong to the category_id set in the same request, or to the current category if category_id is not provided, otherwise the request returns `422 Unprocessable Entity`.
example: 019f8035-d6ff-76c8-bd5c-10da006a11b9
format: uuid
nullable: true
type: string
title: TransactionUpdate
type: object
IntegrationError:
properties:
errors:
description: The list of errors encountered during the operation with detailed information
items:
properties:
code:
description: Short code identifying an error type
example: bad_request
type: string
detail:
description: The message detail that describes the error
example: null value where string expected
nullable: true
type: string
source:
nullable: true
properties:
pointer:
description: The exact position in the request where the error occurred
example: /data/attributes/name
type: string
type: object
title:
description: The message title that describes the error. It is a short, human-readable summary of the problem
example: Invalid value
type: string
type: object
type: array
required:
- errors
title: IntegrationError
type: object
TransactionList:
description: List of transaction representations
properties:
data:
items:
$ref: '#/components/schemas/TransactionSchema'
type: array
page:
$ref: '#/components/schemas/Page'
title: TransactionList
type: object
FlowSchema:
description: Flow data representation
properties:
account_id:
description: The id of the account
example: 019f8035-d726-7b45-847b-05e0fb123222
format: uuid
nullable: true
readOnly: true
type: string
amount:
description: Money representation through amount and currency properties
example:
amount: '12.3'
currency: EUR
properties:
amount:
minLength: 1
pattern: ^[0-9]*\.?[0-9]+$
readOnly: false
type: string
currency:
enum:
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BOV
- BRL
- BSD
- BTN
- BWP
- BYN
- BZD
- CAD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HRK
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KPW
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRU
- MUR
- MVR
- MWK
- MXN
- MXV
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RUB
- RWF
- SAR
- SBD
- SCR
- SDG
- SEK
- SGD
- SHP
- SLL
- SOS
- SRD
- SSP
- STN
- SVC
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- USD
- USN
- UYI
- UYU
- UYW
- UZS
- VES
- VND
- VUV
- WST
- XAF
- XAG
- XAU
- XBA
- XBB
- XBC
- XBD
- XCD
- XDR
- XOF
- XPD
- XPF
- XPT
- XSU
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sibill/refs/heads/main/openapi/sibill-transaction-api-openapi.yml