SmartBill MCP by usefulapi

Read SmartBill series, taxes, stock, clients and products; draft and issue invoices and estimates.

사용해야 할까요

품질 및 안전성

A
설명 품질
99%
스키마 완전성
94%
이름 품질
77%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (4)

  • LOWTool 'smartbill_get_invoice_payment_status' name length outside 3-30 rangesmartbill_get_invoice_payment_status에서
  • LOWTool 'smartbill_get_estimate_invoices' name length outside 3-30 rangesmartbill_get_estimate_invoices에서
  • LOWTool 'smartbill_create_invoice_from_estimate' name length outside 3-30 rangesmartbill_create_invoice_from_estimate에서
  • LOWTool 'smartbill_record_invoice_payment' name length outside 3-30 rangesmartbill_record_invoice_payment에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~6,969토큰 (도구 정의)
~2.5 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 5.44%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "smartbill": {
      "url": "https://smartbill.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://smartbill.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (23)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢smartbill_list_series(type)

List the document series configured in SmartBill Cloud with their next number. Invoice and proforma tools need a series name from here. type: f = invoice series, p = proforma, c = receipt (chitanta); omit for all. GET /series.

입력 스키마

{
  "type": "object",
  "properties": {
    "type": {
      "description": "f = invoices, p = proformas, c = receipts; omit for all.",
      "type": "string",
      "enum": [
        "f",
        "p",
        "c"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_list_taxes

List the VAT rates configured in the account (name and percentage). Use the name as tax_name and the percentage as tax_percentage on document lines. Works without a V3 token. GET /tax.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_get_stock(date, warehouse_name, product_name, product_code)

Stock quantities per warehouse as of a date (needs the SmartBill stock module). Optional filters: warehouse_name (case-sensitive), product_name, product_code. No filters = all products in all warehouses. GET /stocks.

입력 스키마

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "Date yyyy-mm-dd the stock is read at."
    },
    "warehouse_name": {
      "description": "Warehouse name, case-sensitive.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "product_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "product_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "required": [
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_get_invoice_payment_status(series_name, number)

Whether an invoice is paid and how much remains: invoiceTotalAmount, paidAmount, unpaidAmount and the paid flag. GET /invoice/paymentstatus.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Document number as text, e.g. \"0025\" (keep leading zeros)."
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_get_estimate_invoices(series_name, number)

Whether a proforma was invoiced and the invoices (series, number) made from it. A draft invoice shows with an empty number. GET /estimate/invoices.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Proforma series name."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Proforma number as text."
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_list_clients(name, code, vat_code, limit, after, ...)

List clients from the SmartBill client list, optionally filtered by name (partial, case-insensitive), internal code (exact) or CIF (exact). Needs the API V3 token. Cursor paged: pass the reply's next_args as the next call's arguments. GET /v3/companies/{cif}/clients.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Part of the client name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "code": {
      "description": "Exact internal client code (case-sensitive).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "vat_code": {
      "description": "Exact client CIF.",
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "limit": {
      "description": "Results per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "after": {
      "description": "Cursor: continue after this id (use next_args from the previous reply). Not together with before.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    },
    "before": {
      "description": "Cursor: go back before this id (use previous_args). Not together with after.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_get_client(id)

One client by V3 id (cus_...): name, CIF, address, bank, contact, VAT-payer flag and delivery addresses. Needs the API V3 token. GET /v3/companies/{cif}/clients/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^cus_[A-Za-z0-9]{1,64}$",
      "description": "The client id (cus_...), from the list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_list_suppliers(name, code, vat_code, limit, after, ...)

List suppliers, optionally filtered by name (partial), internal code (exact) or CIF (exact). Needs the API V3 token. Cursor paged: pass the reply's next_args as the next call's arguments. GET /v3/companies/{cif}/suppliers.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Part of the supplier name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "code": {
      "description": "Exact internal supplier code (case-sensitive).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "vat_code": {
      "description": "Exact supplier CIF.",
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "limit": {
      "description": "Results per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "after": {
      "description": "Cursor: continue after this id (use next_args from the previous reply). Not together with before.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    },
    "before": {
      "description": "Cursor: go back before this id (use previous_args). Not together with after.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_get_supplier(id)

One supplier by V3 id (sup_...). Needs the API V3 token. GET /v3/companies/{cif}/suppliers/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^sup_[A-Za-z0-9]{1,64}$",
      "description": "The supplier id (sup_...), from the list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_list_products(name, code, limit, after, before)

List the product and service catalog (price, unit, VAT rate, currency), optionally filtered by name (whole-word match) or internal code (exact). Needs the API V3 token. Cursor paged: pass the reply's next_args as the next call's arguments. GET /v3/companies/{cif}/products.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "A word of the product name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "code": {
      "description": "Exact product code (case-sensitive).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "limit": {
      "description": "Results per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "after": {
      "description": "Cursor: continue after this id (use next_args from the previous reply). Not together with before.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    },
    "before": {
      "description": "Cursor: go back before this id (use previous_args). Not together with after.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_get_product(id)

One product or service by V3 id (prod_...). Needs the API V3 token. GET /v3/companies/{cif}/products/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^prod_[A-Za-z0-9]{1,64}$",
      "description": "The product id (prod_...), from the list tool."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_list_warehouses(name, limit, after, before)

List warehouses (name, type en gros / en detail, keeper, address). Needs the API V3 token. Cursor paged: pass the reply's next_args as the next call's arguments. GET /v3/companies/{cif}/warehouses.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Part of the warehouse name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "limit": {
      "description": "Results per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "after": {
      "description": "Cursor: continue after this id (use next_args from the previous reply). Not together with before.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    },
    "before": {
      "description": "Cursor: go back before this id (use previous_args). Not together with after.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢smartbill_list_vat_rates(name, percentage, limit, after, before)

List VAT rates with ids, name, percentage and reverse-charge flag. Filter by name (partial) or percentage (exact). Needs the API V3 token (smartbill_list_taxes does the same without it). Cursor paged: pass the reply's next_args as the next call's arguments. GET /v3/companies/{cif}/vat-rates.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Part of the VAT rate name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "percentage": {
      "description": "Exact percentage.",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "limit": {
      "description": "Results per page, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "after": {
      "description": "Cursor: continue after this id (use next_args from the previous reply). Not together with before.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    },
    "before": {
      "description": "Cursor: go back before this id (use previous_args). Not together with after.",
      "type": "string",
      "pattern": "^[a-z]{2,5}_[A-Za-z0-9]{1,64}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_create_invoice(series_name, client, products, currency, exchange_rate, ...)

Create an invoice for a client with product/service lines. By default it is saved as a DRAFT (no number) for review in SmartBill Cloud. With draft=false the invoice is ISSUED: it takes the next number of the series, cannot be deleted or edited through this server, can only be cancelled or reversed (storno), and, depending on the account's e-Factura setup, may be transmitted to ANAF. Confirm every field with the user before draft=false. Returns series, number, documentId, documentUrl (needs login) and documentViewUrl (public PDF link). POST /invoice/v2.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
    },
    "client": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "Client name (company or person)."
        },
        "vat_code": {
          "description": "Client CUI/CIF or foreign VAT code.",
          "type": "string",
          "maxLength": 30
        },
        "is_tax_payer": {
          "description": "Client is a VAT payer (default false: stored as non-payer).",
          "type": "boolean"
        },
        "reg_com": {
          "description": "Trade register number.",
          "type": "string",
          "maxLength": 50
        },
        "address": {
          "type": "string",
          "maxLength": 255
        },
        "city": {
          "description": "City. When county is Bucuresti this must be Sector 1 - Sector 6, or e-Factura will not validate in SPV.",
          "type": "string",
          "maxLength": 100
        },
        "county": {
          "description": "County (or region/state for foreign clients).",
          "type": "string",
          "maxLength": 100
        },
        "country": {
          "description": "Country name or usual code (default Romania).",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "email": {
          "type": "string",
          "maxLength": 254
        },
        "phone": {
          "type": "string",
          "maxLength": 50
        },
        "contact": {
          "description": "Contact person.",
          "type": "string",
          "maxLength": 100
        },
        "iban": {
          "type": "string",
          "maxLength": 50
        },
        "bank": {
          "type": "string",
          "maxLength": 100
        },
        "save_to_db": {
          "description": "Also save the client in the SmartBill client list when new (default false).",
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "description": "The client the document is issued to."
    },
    "products": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Product or service name."
          },
          "code": {
            "description": "Product code (SKU); required when the account has \"use product code\" enabled.",
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "description": "Extra description.",
            "type": "string",
            "maxLength": 1000
          },
          "is_service": {
            "description": "True for a service.",
            "type": "boolean"
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000000,
            "description": "Quantity, greater than 0 (the API itself accepts 0 and negatives; this server does not)."
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Unit of measure as configured in SmartBill, e.g. buc, ora, kg."
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000000,
            "description": "Unit price: WITHOUT VAT unless is_tax_included is true."
          },
          "is_tax_included": {
            "description": "The price already includes VAT (default false).",
            "type": "boolean"
          },
          "tax_name": {
            "description": "VAT rate name as in the account (smartbill_list_taxes), e.g. Normala.",
            "type": "string",
            "maxLength": 100
          },
          "tax_percentage": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "VAT percentage of the line, e.g. 21, 11, 0."
          }
        },
        "required": [
          "name",
          "quantity",
          "unit",
          "price",
          "tax_percentage"
        ]
      },
      "description": "1-200 lines."
    },
    "currency": {
      "description": "Document currency (default RON).",
      "type": "string",
      "enum": [
        "RON",
        "EUR",
        "USD",
        "GBP",
        "CAD",
        "AUD",
        "CHF",
        "TRY",
        "CZK",
        "DKK",
        "HUF",
        "MDL",
        "SEK",
        "NOK",
        "JPY",
        "EGP",
        "PLN",
        "RUB",
        "AED",
        "BRL",
        "CNY",
        "HRK",
        "INR",
        "KRW",
        "MXN",
        "NZD",
        "RSD",
        "THB",
        "UAH",
        "XDR",
        "ZAR"
      ]
    },
    "exchange_rate": {
      "description": "Exchange rate to RON (default: SmartBill's rate for the date).",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000
    },
    "issue_date": {
      "description": "Issue date yyyy-mm-dd (default today).",
      "type": "string"
    },
    "due_date": {
      "description": "Due date yyyy-mm-dd.",
      "type": "string"
    },
    "language": {
      "description": "Document language (default RO).",
      "type": "string",
      "enum": [
        "RO",
        "EN",
        "DE",
        "FR",
        "IT",
        "ES"
      ]
    },
    "observations": {
      "description": "Observations shown on the document.",
      "type": "string",
      "maxLength": 2000
    },
    "mentions": {
      "description": "Mentions shown on the document.",
      "type": "string",
      "maxLength": 2000
    },
    "draft": {
      "description": "Default TRUE: the document is saved as a draft without a number, to be finalized in SmartBill Cloud. Pass false ONLY when the user explicitly wants it ISSUED now: that takes the next number of the series, cannot be undone from the API, and may be transmitted to e-Factura / ANAF depending on the account setup.",
      "type": "boolean"
    }
  },
  "required": [
    "series_name",
    "client",
    "products"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_create_invoice_from_estimate(series_name, estimate_series, estimate_number, issue_date, draft)

Create an invoice from an existing proforma (client and lines are copied from it). Default is a DRAFT; with draft=false the invoice is ISSUED with the next number of the series and may be transmitted to e-Factura / ANAF. Stock is not discharged. POST /invoice/v2 (useEstimateDetails).

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Invoice series to issue on."
    },
    "estimate_series": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Series of the source proforma."
    },
    "estimate_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Number of the source proforma as text."
    },
    "issue_date": {
      "description": "Issue date yyyy-mm-dd (default today).",
      "type": "string"
    },
    "draft": {
      "description": "Default TRUE: the document is saved as a draft without a number, to be finalized in SmartBill Cloud. Pass false ONLY when the user explicitly wants it ISSUED now: that takes the next number of the series, cannot be undone from the API, and may be transmitted to e-Factura / ANAF depending on the account setup.",
      "type": "boolean"
    }
  },
  "required": [
    "series_name",
    "estimate_series",
    "estimate_number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_create_estimate(series_name, client, products, currency, exchange_rate, ...)

Create a proforma (estimate) for a client with product/service lines. Default is a DRAFT (no number); with draft=false it takes the next number of the proforma series. A proforma is not a fiscal invoice. Returns series, number, documentId and links. POST /estimate/v2.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
    },
    "client": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "Client name (company or person)."
        },
        "vat_code": {
          "description": "Client CUI/CIF or foreign VAT code.",
          "type": "string",
          "maxLength": 30
        },
        "is_tax_payer": {
          "description": "Client is a VAT payer (default false: stored as non-payer).",
          "type": "boolean"
        },
        "reg_com": {
          "description": "Trade register number.",
          "type": "string",
          "maxLength": 50
        },
        "address": {
          "type": "string",
          "maxLength": 255
        },
        "city": {
          "description": "City. When county is Bucuresti this must be Sector 1 - Sector 6, or e-Factura will not validate in SPV.",
          "type": "string",
          "maxLength": 100
        },
        "county": {
          "description": "County (or region/state for foreign clients).",
          "type": "string",
          "maxLength": 100
        },
        "country": {
          "description": "Country name or usual code (default Romania).",
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "email": {
          "type": "string",
          "maxLength": 254
        },
        "phone": {
          "type": "string",
          "maxLength": 50
        },
        "contact": {
          "description": "Contact person.",
          "type": "string",
          "maxLength": 100
        },
        "iban": {
          "type": "string",
          "maxLength": 50
        },
        "bank": {
          "type": "string",
          "maxLength": 100
        },
        "save_to_db": {
          "description": "Also save the client in the SmartBill client list when new (default false).",
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ],
      "description": "The client the document is issued to."
    },
    "products": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Product or service name."
          },
          "code": {
            "description": "Product code (SKU); required when the account has \"use product code\" enabled.",
            "type": "string",
            "maxLength": 100
          },
          "description": {
            "description": "Extra description.",
            "type": "string",
            "maxLength": 1000
          },
          "is_service": {
            "description": "True for a service.",
            "type": "boolean"
          },
          "quantity": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000000,
            "description": "Quantity, greater than 0 (the API itself accepts 0 and negatives; this server does not)."
          },
          "unit": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Unit of measure as configured in SmartBill, e.g. buc, ora, kg."
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000000,
            "description": "Unit price: WITHOUT VAT unless is_tax_included is true."
          },
          "is_tax_included": {
            "description": "The price already includes VAT (default false).",
            "type": "boolean"
          },
          "tax_name": {
            "description": "VAT rate name as in the account (smartbill_list_taxes), e.g. Normala.",
            "type": "string",
            "maxLength": 100
          },
          "tax_percentage": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "VAT percentage of the line, e.g. 21, 11, 0."
          }
        },
        "required": [
          "name",
          "quantity",
          "unit",
          "price",
          "tax_percentage"
        ]
      },
      "description": "1-200 lines."
    },
    "currency": {
      "description": "Document currency (default RON).",
      "type": "string",
      "enum": [
        "RON",
        "EUR",
        "USD",
        "GBP",
        "CAD",
        "AUD",
        "CHF",
        "TRY",
        "CZK",
        "DKK",
        "HUF",
        "MDL",
        "SEK",
        "NOK",
        "JPY",
        "EGP",
        "PLN",
        "RUB",
        "AED",
        "BRL",
        "CNY",
        "HRK",
        "INR",
        "KRW",
        "MXN",
        "NZD",
        "RSD",
        "THB",
        "UAH",
        "XDR",
        "ZAR"
      ]
    },
    "exchange_rate": {
      "description": "Exchange rate to RON (default: SmartBill's rate for the date).",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000
    },
    "issue_date": {
      "description": "Issue date yyyy-mm-dd (default today).",
      "type": "string"
    },
    "due_date": {
      "description": "Due date yyyy-mm-dd.",
      "type": "string"
    },
    "language": {
      "description": "Document language (default RO).",
      "type": "string",
      "enum": [
        "RO",
        "EN",
        "DE",
        "FR",
        "IT",
        "ES"
      ]
    },
    "observations": {
      "description": "Observations shown on the document.",
      "type": "string",
      "maxLength": 2000
    },
    "mentions": {
      "description": "Mentions shown on the document.",
      "type": "string",
      "maxLength": 2000
    },
    "draft": {
      "description": "Default TRUE: the document is saved as a draft without a number, to be finalized in SmartBill Cloud. Pass false ONLY when the user explicitly wants it ISSUED now: that takes the next number of the series, cannot be undone from the API, and may be transmitted to e-Factura / ANAF depending on the account setup.",
      "type": "boolean"
    }
  },
  "required": [
    "series_name",
    "client",
    "products"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_reverse_invoice(series_name, number, issue_date)

ISSUE a storno (credit) invoice that reverses an issued invoice. It takes the next number, an invoice can be reversed only once, and the storno cannot be undone; it may be transmitted to e-Factura / ANAF. Confirm the exact series and number with the user first. POST /invoice/reverse.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Series of the invoice to reverse."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Number of the invoice to reverse, as text."
    },
    "issue_date": {
      "description": "Date of the storno invoice yyyy-mm-dd (default today; not before the original's date).",
      "type": "string"
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_cancel_invoice(series_name, number)

Cancel an existing invoice (it stays in the books as cancelled; smartbill_restore_invoice undoes it). Changes the document's fiscal status, so confirm with the user. PUT /invoice/cancel.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Document number as text, e.g. \"0025\" (keep leading zeros)."
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_restore_invoice(series_name, number)

Restore an invoice that was cancelled, making it active again. PUT /invoice/restore.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Document number as text, e.g. \"0025\" (keep leading zeros)."
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_cancel_estimate(series_name, number)

Cancel an existing proforma (smartbill_restore_estimate undoes it). PUT /estimate/cancel.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Proforma series name."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Proforma number as text."
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_restore_estimate(series_name, number)

Restore a proforma that was cancelled. PUT /estimate/restore.

입력 스키마

{
  "type": "object",
  "properties": {
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Proforma series name."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Proforma number as text."
    }
  },
  "required": [
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_record_invoice_payment(invoices, type, receipt_series, value, issue_date, ...)

Record a collection (incasare) against one or more issued invoices; client and amount are taken from the invoices. With value (single invoice only) a partial payment is recorded. type Chitanta issues a numbered RECEIPT on receipt_series (cannot be undone from this server); the other types (Card, Ordin plata, ...) record the payment without a document. It changes the invoice's paid status in the books: confirm with the user. Fiscal receipts (Bon) are not supported. POST /payment.

입력 스키마

{
  "type": "object",
  "properties": {
    "invoices": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "series_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
          },
          "number": {
            "type": "string",
            "minLength": 1,
            "maxLength": 30,
            "description": "Document number as text, e.g. \"0025\" (keep leading zeros)."
          }
        },
        "required": [
          "series_name",
          "number"
        ]
      },
      "description": "1-20 invoices the payment is for."
    },
    "type": {
      "type": "string",
      "enum": [
        "Chitanta",
        "Card",
        "Card online",
        "CEC",
        "Bilet ordin",
        "Ordin plata",
        "Mandat postal",
        "Extras de cont",
        "Ramburs",
        "Alta incasare"
      ],
      "description": "Payment type. Chitanta = a numbered receipt (needs receipt_series); the others create no document."
    },
    "receipt_series": {
      "description": "Receipt series; required for type Chitanta (smartbill_list_series with type c).",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "value": {
      "description": "Partial amount, for a single invoice only; omit to collect the invoice's full amount.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000000000
    },
    "issue_date": {
      "description": "Payment date yyyy-mm-dd (default today).",
      "type": "string"
    },
    "is_cash": {
      "description": "Mark the collection as cash (typically for Chitanta).",
      "type": "boolean"
    },
    "text": {
      "description": "Description of the payment.",
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "invoices",
    "type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴smartbill_send_document(type, series_name, number, to, cc, ...)

Send an issued invoice or proforma by email from SmartBill. This EMAILS A THIRD PARTY and cannot be recalled. Without `to` it goes to the client's email on the document; without subject/body_text the account's email template is used. Confirm the recipient with the user first. POST /document/send.

입력 스키마

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "factura",
        "proforma"
      ],
      "description": "factura = invoice, proforma = proforma."
    },
    "series_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Document series name exactly as configured in SmartBill Cloud (smartbill_list_series lists them)."
    },
    "number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30,
      "description": "Document number as text, e.g. \"0025\" (keep leading zeros)."
    },
    "to": {
      "description": "Recipient (default: the client's email on the document).",
      "type": "string",
      "maxLength": 254,
      "pattern": "^[^\\s@,;<>\"]+@[^\\s@,;<>\"]+\\.[^\\s@,;<>\"]+$"
    },
    "cc": {
      "description": "CC addresses, comma separated.",
      "type": "string",
      "maxLength": 500
    },
    "bcc": {
      "description": "BCC addresses, comma separated.",
      "type": "string",
      "maxLength": 500
    },
    "subject": {
      "description": "Email subject, plain text (default: the account template).",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "body_text": {
      "description": "Email body, plain text (default: the account template).",
      "type": "string",
      "minLength": 1,
      "maxLength": 5000
    }
  },
  "required": [
    "type",
    "series_name",
    "number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 23개