{"files":{"SKILL.md":"---\nname: billingo-api-v3\ndescription: \"Billingo API v3 API skill. Use when working with Billingo API v3 for bank-accounts, currencies, document-blocks. Covers 31 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Billingo API v3\nAPI version: 3.0.7\n\n## Auth\nApiKey X-API-KEY in header\n\n## Base URL\nhttps://api.billingo.hu/v3\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /bank-accounts -- verify access\n3. POST /bank-accounts -- create first bank-accounts\n\n## Endpoints\n\n31 endpoints across 8 groups. See references/api-spec.lap for full details.\n\n### bank-accounts\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /bank-accounts | List all bank account |\n| POST | /bank-accounts | Create a bank account |\n| GET | /bank-accounts/{id} | Retrieve a bank account |\n| PUT | /bank-accounts/{id} | Update a bank account |\n| DELETE | /bank-accounts/{id} | Delete a bank account |\n\n### currencies\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /currencies | Get currencies exchange rate. |\n\n### document-blocks\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /document-blocks | List all document blocks |\n\n### documents\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /documents | List all documents |\n| POST | /documents | Create a document |\n| GET | /documents/{id} | Retrieve a document |\n| POST | /documents/{id}/cancel | Cancel a document |\n| POST | /documents/{id}/create-from-proforma | Create a document from proforma. |\n| GET | /documents/{id}/download | Download a document in PDF format. |\n| GET | /documents/{id}/online-szamla | Retrieve a document Online Számla status |\n| GET | /documents/{id}/payments | Retrieve a payment histroy |\n| PUT | /documents/{id}/payments | Update payment history |\n| DELETE | /documents/{id}/payments | Delete all payment history on document |\n| GET | /documents/{id}/public-url | Retrieve a document download public url. |\n| POST | /documents/{id}/send | Send invoice to given email adresses. |\n\n### organization\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /organization | Retrieve a organization data. |\n\n### partners\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /partners | List all partners |\n| POST | /partners | Create a partner |\n| GET | /partners/{id} | Retrieve a partner |\n| PUT | /partners/{id} | Update a partner |\n| DELETE | /partners/{id} | Delete a partner |\n\n### products\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /products | List all product |\n| POST | /products | Create a product |\n| GET | /products/{id} | Retrieve a product |\n| PUT | /products/{id} | Update a product |\n| DELETE | /products/{id} | Delete a product |\n\n### utils\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /utils/convert-legacy-id/{id} | Convert legacy ID to v3 ID. |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all bank-accounts?\" -> GET /bank-accounts\n- \"Create a bank-account?\" -> POST /bank-accounts\n- \"Get bank-account details?\" -> GET /bank-accounts/{id}\n- \"Update a bank-account?\" -> PUT /bank-accounts/{id}\n- \"Delete a bank-account?\" -> DELETE /bank-accounts/{id}\n- \"List all currencies?\" -> GET /currencies\n- \"List all document-blocks?\" -> GET /document-blocks\n- \"List all documents?\" -> GET /documents\n- \"Create a document?\" -> POST /documents\n- \"Get document details?\" -> GET /documents/{id}\n- \"Create a cancel?\" -> POST /documents/{id}/cancel\n- \"Create a create-from-proforma?\" -> POST /documents/{id}/create-from-proforma\n- \"List all download?\" -> GET /documents/{id}/download\n- \"List all online-szamla?\" -> GET /documents/{id}/online-szamla\n- \"List all payments?\" -> GET /documents/{id}/payments\n- \"List all public-url?\" -> GET /documents/{id}/public-url\n- \"Create a send?\" -> POST /documents/{id}/send\n- \"List all organization?\" -> GET /organization\n- \"List all partners?\" -> GET /partners\n- \"Create a partner?\" -> POST /partners\n- \"Get partner details?\" -> GET /partners/{id}\n- \"Update a partner?\" -> PUT /partners/{id}\n- \"Delete a partner?\" -> DELETE /partners/{id}\n- \"List all products?\" -> GET /products\n- \"Create a product?\" -> POST /products\n- \"Get product details?\" -> GET /products/{id}\n- \"Update a product?\" -> PUT /products/{id}\n- \"Delete a product?\" -> DELETE /products/{id}\n- \"Get convert-legacy-id details?\" -> GET /utils/convert-legacy-id/{id}\n- \"How to authenticate?\" -> See Auth section\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- List endpoints may support pagination; check for limit, offset, or cursor params\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get billingo-api-v3 -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search billingo-api-v3\n```\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Billingo API v3\n@base https://api.billingo.hu/v3\n@version 3.0.7\n@auth ApiKey X-API-KEY in header\n@endpoints 31\n@hint download_for_search\n@toc bank-accounts(5), currencies(1), document-blocks(1), documents(12), organization(1), partners(5), products(5), utils(1)\n\n@group bank-accounts\n@endpoint GET /bank-accounts\n@desc List all bank account\n@optional {page: int=1, per_page: int=25}\n@returns(200) {data: [map], total: int, per_page: int, current_page: int, last_page: int, prev_page_url: str, next_page_url: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /bank-accounts\n@desc Create a bank account\n@required {name: str, account_number: str, currency: str(AUD/BGN/BRL/CAD/CHF/CNY/CZK/DKK/EUR/GBP/HKD/HRK/HUF/IDR/ILS/INR/ISK/JPY/KRW/LTL/LVL/MXN/MYR/NOK/NZD/PHP/PLN/RON/RSD/RUB/SEK/SGD/THB/TRY/UAH/USD/ZAR)}\n@optional {id: int, account_number_iban: str, swift: str, need_qr: bool=false}\n@returns(201) {id: int, name: str, account_number: str, account_number_iban: str, swift: str, currency: str, need_qr: bool} # BankAccount created successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /bank-accounts/{id}\n@desc Retrieve a bank account\n@required {id: int}\n@returns(200) {id: int, name: str, account_number: str, account_number_iban: str, swift: str, currency: str, need_qr: bool} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint PUT /bank-accounts/{id}\n@desc Update a bank account\n@required {id: int, name: str, account_number: str, currency: str(AUD/BGN/BRL/CAD/CHF/CNY/CZK/DKK/EUR/GBP/HKD/HRK/HUF/IDR/ILS/INR/ISK/JPY/KRW/LTL/LVL/MXN/MYR/NOK/NZD/PHP/PLN/RON/RSD/RUB/SEK/SGD/THB/TRY/UAH/USD/ZAR)}\n@optional {id: int, account_number_iban: str, swift: str, need_qr: bool=false}\n@returns(200) {id: int, name: str, account_number: str, account_number_iban: str, swift: str, currency: str, need_qr: bool} # Bank account updated successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint DELETE /bank-accounts/{id}\n@desc Delete a bank account\n@required {id: int}\n@returns(204) Bank account deleted successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 500: Internal server error.}\n\n@endgroup\n\n@group currencies\n@endpoint GET /currencies\n@desc Get currencies exchange rate.\n@required {from: str, to: str}\n@returns(200) {from_currency: str, to_currency: str, conversation_rate: num(float)} # Currencies exchange rate returned.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endgroup\n\n@group document-blocks\n@endpoint GET /document-blocks\n@desc List all document blocks\n@optional {page: int=1, per_page: int=25}\n@returns(200) {data: [map], total: int, per_page: int, current_page: int, last_page: int, prev_page_url: str, next_page_url: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endgroup\n\n@group documents\n@endpoint GET /documents\n@desc List all documents\n@optional {page: int=1, per_page: int=25, block_id: int # Filter documents by the identifier of your DocumentBlock., partner_id: int # Filter documents by the identifier of your Partner., payment_method: str # Filter documents by PaymentMethod value., payment_status: str # Filter documents by PaymentStatus value., start_date: str(date) # Filter documents by date., end_date: str(date) # Filter documents by date., start_number: int # Starting number of the document, should not contain year or any other formatting. Required if `start_year` given, end_number: int # Ending number of the document, should not contain year or any other formatting. Required if `end_year` given, start_year: int # Year for `start_number` parameter. Required if `start_number` given., end_year: int # Year for `end_number` parameter. Required if `end_number` given.}\n@returns(200) {data: [map], total: int, per_page: int, current_page: int, last_page: int, prev_page_url: str, next_page_url: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /documents\n@desc Create a document\n@required {partner_id: int, block_id: int, type: str(advance/draft/invoice/proforma), fulfillment_date: str(date), due_date: str(date), payment_method: str(aruhitel/bankcard/barion/barter/cash/cash_on_delivery/coupon/elore_utalas/ep_kartya/kompenzacio/levonas/online_bankcard/payoneer/paypal/paypal_utolag/payu/pick_pack_pont/postai_csekk/postautalvany/skrill/szep_card/transferwise/upwork/utalvany/valto/wire_transfer), language: str(de/en/fr/hr/hu/it/ro/sk), currency: str(AUD/BGN/BRL/CAD/CHF/CNY/CZK/DKK/EUR/GBP/HKD/HRK/HUF/IDR/ILS/INR/ISK/JPY/KRW/LTL/LVL/MXN/MYR/NOK/NZD/PHP/PLN/RON/RSD/RUB/SEK/SGD/THB/TRY/UAH/USD/ZAR)}\n@optional {vendor_id: str, bank_account_id: int, conversion_rate: num(float)=1, electronic: bool=false, paid: bool=false, items: [any], comment: str, settings: map{mediated_service: bool, without_financial_fulfillment: bool, online_payment: str, round: str, place_id: int}}\n@returns(201) {id: int, invoice_number: str, type: str, cancelled: bool, block_id: int, payment_status: str, payment_method: str, gross_total: num(float), currency: str, conversion_rate: num(float), invoice_date: str(date), fulfillment_date: str(date), due_date: str(date), paid_date: str(date), organization: map{name: str, tax_number: str, bank_account: map{id: int, name: str, account_number: str, account_number_iban: str, swift: str}, address: map{country_code: str, post_code: str, city: str, address: str}, small_taxpayer: bool, ev_number: str, eu_tax_number: str, cash_settled: bool}, partner: any, electronic: bool, comment: str, tags: [str], notification_status: str, language: str, items: [map], summary: map{net_amount: num(float), net_amount_local: num(float), gross_amount_local: num(float), vat_amount: num(float), vat_amount_local: num(float), vat_rate_summary: [map]}, settings: map{mediated_service: bool, without_financial_fulfillment: bool, online_payment: str, round: str, place_id: int}} # Document created successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /documents/{id}\n@desc Retrieve a document\n@required {id: int}\n@returns(200) {id: int, invoice_number: str, type: str, cancelled: bool, block_id: int, payment_status: str, payment_method: str, gross_total: num(float), currency: str, conversion_rate: num(float), invoice_date: str(date), fulfillment_date: str(date), due_date: str(date), paid_date: str(date), organization: map{name: str, tax_number: str, bank_account: map{id: int, name: str, account_number: str, account_number_iban: str, swift: str}, address: map{country_code: str, post_code: str, city: str, address: str}, small_taxpayer: bool, ev_number: str, eu_tax_number: str, cash_settled: bool}, partner: any, electronic: bool, comment: str, tags: [str], notification_status: str, language: str, items: [map], summary: map{net_amount: num(float), net_amount_local: num(float), gross_amount_local: num(float), vat_amount: num(float), vat_amount_local: num(float), vat_rate_summary: [map]}, settings: map{mediated_service: bool, without_financial_fulfillment: bool, online_payment: str, round: str, place_id: int}} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /documents/{id}/cancel\n@desc Cancel a document\n@required {id: int}\n@returns(200) {id: int, invoice_number: str, type: str, cancelled: bool, block_id: int, payment_status: str, payment_method: str, gross_total: num(float), currency: str, conversion_rate: num(float), invoice_date: str(date), fulfillment_date: str(date), due_date: str(date), paid_date: str(date), organization: map{name: str, tax_number: str, bank_account: map{id: int, name: str, account_number: str, account_number_iban: str, swift: str}, address: map{country_code: str, post_code: str, city: str, address: str}, small_taxpayer: bool, ev_number: str, eu_tax_number: str, cash_settled: bool}, partner: any, electronic: bool, comment: str, tags: [str], notification_status: str, language: str, items: [map], summary: map{net_amount: num(float), net_amount_local: num(float), gross_amount_local: num(float), vat_amount: num(float), vat_amount_local: num(float), vat_rate_summary: [map]}, settings: map{mediated_service: bool, without_financial_fulfillment: bool, online_payment: str, round: str, place_id: int}} # Document cancellation successfully. Cancel document returned.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /documents/{id}/create-from-proforma\n@desc Create a document from proforma.\n@required {id: int}\n@returns(201) {id: int, invoice_number: str, type: str, cancelled: bool, block_id: int, payment_status: str, payment_method: str, gross_total: num(float), currency: str, conversion_rate: num(float), invoice_date: str(date), fulfillment_date: str(date), due_date: str(date), paid_date: str(date), organization: map{name: str, tax_number: str, bank_account: map{id: int, name: str, account_number: str, account_number_iban: str, swift: str}, address: map{country_code: str, post_code: str, city: str, address: str}, small_taxpayer: bool, ev_number: str, eu_tax_number: str, cash_settled: bool}, partner: any, electronic: bool, comment: str, tags: [str], notification_status: str, language: str, items: [map], summary: map{net_amount: num(float), net_amount_local: num(float), gross_amount_local: num(float), vat_amount: num(float), vat_amount_local: num(float), vat_rate_summary: [map]}, settings: map{mediated_service: bool, without_financial_fulfillment: bool, online_payment: str, round: str, place_id: int}} # Document created successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /documents/{id}/download\n@desc Download a document in PDF format.\n@required {id: int}\n@returns(200) Document PDF file.\n@returns(202) {message: str} # Document PDF has not generated yet. You should try to download again later.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /documents/{id}/online-szamla\n@desc Retrieve a document Online Számla status\n@required {id: int}\n@returns(200) {transaction_id: str, status: str, messages: [map]} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /documents/{id}/payments\n@desc Retrieve a payment histroy\n@required {id: int}\n@returns(200) Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint PUT /documents/{id}/payments\n@desc Update payment history\n@required {id: int}\n@returns(200) Payment history updated successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint DELETE /documents/{id}/payments\n@desc Delete all payment history on document\n@required {id: int}\n@returns(200) Payment history deleted successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 500: Internal server error.}\n\n@endpoint GET /documents/{id}/public-url\n@desc Retrieve a document download public url.\n@required {id: int}\n@returns(200) {public_url: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /documents/{id}/send\n@desc Send invoice to given email adresses.\n@required {id: int}\n@optional {emails: [str]}\n@returns(200) {emails: [str]} # List of email adresses where the invoice sent.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endgroup\n\n@group organization\n@endpoint GET /organization\n@desc Retrieve a organization data.\n@returns(200) {tax_code: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endgroup\n\n@group partners\n@endpoint GET /partners\n@desc List all partners\n@optional {page: int=1, per_page: int=25}\n@returns(200) {data: [any], total: int, per_page: int, current_page: int, last_page: int, prev_page_url: str, next_page_url: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /partners\n@desc Create a partner\n@required {name: str, address: map{country_code!: str, post_code!: str, city!: str, address!: str}}\n@optional {emails: [str], taxcode: str, iban: str, swift: str, account_number: str, phone: str, general_ledger_number: str}\n@returns(201) Partner created successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /partners/{id}\n@desc Retrieve a partner\n@required {id: int}\n@returns(200) Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint PUT /partners/{id}\n@desc Update a partner\n@required {id: int, name: str, address: map{country_code!: str, post_code!: str, city!: str, address!: str}}\n@optional {emails: [str], taxcode: str, iban: str, swift: str, account_number: str, phone: str, general_ledger_number: str}\n@returns(200) Partner updated successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint DELETE /partners/{id}\n@desc Delete a partner\n@required {id: int}\n@returns(204) Partner deleted successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 500: Internal server error.}\n\n@endgroup\n\n@group products\n@endpoint GET /products\n@desc List all product\n@optional {page: int=1, per_page: int=25}\n@returns(200) {data: [map], total: int, per_page: int, current_page: int, last_page: int, prev_page_url: str, next_page_url: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint POST /products\n@desc Create a product\n@required {name: str, currency: str(AUD/BGN/BRL/CAD/CHF/CNY/CZK/DKK/EUR/GBP/HKD/HRK/HUF/IDR/ILS/INR/ISK/JPY/KRW/LTL/LVL/MXN/MYR/NOK/NZD/PHP/PLN/RON/RSD/RUB/SEK/SGD/THB/TRY/UAH/USD/ZAR), vat: str(0%/1%/10%/11%/12%/13%/14%/15%/16%/17%/18%/19%/2%/20%/21%/22%/23%/24%/25%/26%/27%/3%/4%/5%/6%/7%/8%/9%/AAM/AM/EU/EUK/F.AFA/FAD/K.AFA/MAA/TAM/ÁKK/ÁTHK), unit: str}\n@optional {id: int, comment: str, net_unit_price: num(float), general_ledger_number: str, general_ledger_taxcode: str}\n@returns(201) {id: int, name: str, comment: str, currency: str, vat: str, net_unit_price: num(float), unit: str, general_ledger_number: str, general_ledger_taxcode: str} # Product created successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint GET /products/{id}\n@desc Retrieve a product\n@required {id: int}\n@returns(200) {id: int, name: str, comment: str, currency: str, vat: str, net_unit_price: num(float), unit: str, general_ledger_number: str, general_ledger_taxcode: str} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint PUT /products/{id}\n@desc Update a product\n@required {id: int, name: str, currency: str(AUD/BGN/BRL/CAD/CHF/CNY/CZK/DKK/EUR/GBP/HKD/HRK/HUF/IDR/ILS/INR/ISK/JPY/KRW/LTL/LVL/MXN/MYR/NOK/NZD/PHP/PLN/RON/RSD/RUB/SEK/SGD/THB/TRY/UAH/USD/ZAR), vat: str(0%/1%/10%/11%/12%/13%/14%/15%/16%/17%/18%/19%/2%/20%/21%/22%/23%/24%/25%/26%/27%/3%/4%/5%/6%/7%/8%/9%/AAM/AM/EU/EUK/F.AFA/FAD/K.AFA/MAA/TAM/ÁKK/ÁTHK), unit: str}\n@optional {id: int, comment: str, net_unit_price: num(float), general_ledger_number: str, general_ledger_taxcode: str}\n@returns(200) {id: int, name: str, comment: str, currency: str, vat: str, net_unit_price: num(float), unit: str, general_ledger_number: str, general_ledger_taxcode: str} # Product updated successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endpoint DELETE /products/{id}\n@desc Delete a product\n@required {id: int}\n@returns(204) Product deleted successfully.\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 403: Authenticated user doesn't have access to the resource., 404: Non-existent resource is requested., 500: Internal server error.}\n\n@endgroup\n\n@group utils\n@endpoint GET /utils/convert-legacy-id/{id}\n@desc Convert legacy ID to v3 ID.\n@required {id: int}\n@returns(200) {id: int, legacy_id: int} # Success response\n@errors {400: The request is malformed., 401: Authorization information is missing or invalid., 404: Non-existent resource is requested., 422: Validation errors occured., 500: Internal server error.}\n\n@endgroup\n\n@end\n"}}