[{"data":1,"prerenderedAt":1024},["ShallowReactive",2],{"seite-\u002Fen\u002Fratgeber\u002Fbexio-api-make-zapier\u002F":3},{"id":4,"title":5,"body":6,"description":1015,"extension":1016,"meta":1017,"navigation":1018,"path":1019,"robots":1020,"seo":1021,"stem":1022,"__hash__":1023},"seiten_en\u002Fratgeber\u002Fbexio-api-make-zapier.md","bexio API from Make and Zapier: what the modules cannot do",{"type":7,"value":8,"toc":1002},"minimark",[9,14,26,31,36,51,55,82,102,306,317,321,340,357,398,413,417,426,449,453,462,480,497,501,510,560,652,656,665,699,703,712,719,755,765,769,778,801,805,954,972,976,979,992,998],[10,11,13],"h1",{"id":12},"bexio-api-from-make-and-zapier-what-the-ready-made-modules-cannot-do","bexio API from Make and Zapier: what the ready-made modules cannot do",[15,16,17,18,25],"p",{},"Make and Zapier offer bexio as a ready-made app: fill in a few fields and the invoice lands in\nyour accounting. Yet the community forums of both services hold questions about bexio dating\nback to 2023 that never got solved, because the module lacks a field or an endpoint. I went\nthrough these threads and compared them with the\n",[19,20,24],"a",{"href":21,"rel":22},"https:\u002F\u002Fdocs.bexio.com\u002F",[23],"nofollow","official bexio API documentation",". This guide shows, case by case,\nwhere the forum got stuck and which field of the bexio API solves it. It describes the modules\nas the people asking describe them; it is not based on my own experience with Make or Zapier.",[27,28],"produkt-ablauf",{":schritte":29,"titel":30},"[{\"ort\":\"Shop, form, payment provider\",\"text\":\"Order, enquiry or payment\"},{\"ort\":\"Dedicated service\",\"text\":\"Every field of the API, errors are retried\",\"eigen\":true},{\"ort\":\"api.bexio.com\",\"text\":\"Invoice with line items, quote, time entry, PDF\"}]","Flow: the shop, form or payment provider delivers the data, a dedicated service talks to the bexio API with every field, api.bexio.com creates the invoice, quote or time entry",[32,33,35],"h2",{"id":34},"where-the-eight-cases-come-from","Where the eight cases come from",[15,37,38,39,44,45,50],{},"The cases come from the public forums ",[19,40,43],{"href":41,"rel":42},"https:\u002F\u002Fcommunity.make.com\u002F",[23],"community.make.com"," and\n",[19,46,49],{"href":47,"rel":48},"https:\u002F\u002Fcommunity.zapier.com\u002F",[23],"community.zapier.com",", questions asked between 2023 and 2025.\nEach case is linked below. “Unsolved” means: the thread has no answer confirmed by the person\nasking, or the answer points to support. Several people report the same pattern, sometimes\nmonths apart. The solution through the API is backed by the documentation in every case; the\npaths appear there exactly as written.",[32,52,54],{"id":53},"case-1-several-line-items-on-one-invoice","Case 1: several line items on one invoice",[15,56,57,58,63,64,69,70,75,76,81],{},"The most common problem. In Make, someone wants to write\n",[19,59,62],{"href":60,"rel":61},"https:\u002F\u002Fcommunity.make.com\u002Ft\u002Fcreate-multiple-positions-for-invoice-in-bexio\u002F83340",[23],"several line items into one bexio invoice",";\nthe module rejects the list, and “Update Invoice” offers no line item at all. In Zapier the\nsame thing fails with a\n",[19,65,68],{"href":66,"rel":67},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=32203&fid=99",[23],"Shopify order containing several products",",\nwith a ",[19,71,74],{"href":72,"rel":73},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=26149&fid=3",[23],"WooCommerce order"," through a\ndetour with a loop and temporary storage, and with a\n",[19,77,80],{"href":78,"rel":79},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=50864&fid=99",[23],"Payrexx payment",", where the error\nsays the list of amounts is not the same length as the list of items; what remains is a draft\nwithout line items and a total of 0.",[15,83,84,85,89,90,93,94,97,98,101],{},"In the API this is not a special case. ",[86,87,88],"code",{},"POST \u002F2.0\u002Fkb_invoice"," accepts an array ",[86,91,92],{},"positions",",\nand the documentation states explicitly that position types can be mixed: ",[86,95,96],{},"KbPositionCustom","\nfor free lines, ",[86,99,100],{},"KbPositionArticle"," for items from the catalogue, plus text, subtotal,\ndiscount and page-break positions. An invoice with two lines looks like this:",[103,104,109],"pre",{"className":105,"code":106,"language":107,"meta":108,"style":108},"language-json shiki shiki-themes github-light github-dark","{\n  \"contact_id\": 14,\n  \"user_id\": 1,\n  \"mwst_type\": 0,\n  \"mwst_is_net\": true,\n  \"positions\": [\n    { \"type\": \"KbPositionArticle\", \"article_id\": 3, \"amount\": \"2\", \"unit_price\": \"45.00\", \"tax_id\": 4 },\n    { \"type\": \"KbPositionCustom\", \"text\": \"Shipping\", \"amount\": \"1\", \"unit_price\": \"9.00\", \"tax_id\": 4 }\n  ]\n}\n","json","",[86,110,111,120,136,149,162,175,184,243,294,300],{"__ignoreMap":108},[112,113,116],"span",{"class":114,"line":115},"line",1,[112,117,119],{"class":118},"sVt8B","{\n",[112,121,123,127,130,133],{"class":114,"line":122},2,[112,124,126],{"class":125},"sj4cs","  \"contact_id\"",[112,128,129],{"class":118},": ",[112,131,132],{"class":125},"14",[112,134,135],{"class":118},",\n",[112,137,139,142,144,147],{"class":114,"line":138},3,[112,140,141],{"class":125},"  \"user_id\"",[112,143,129],{"class":118},[112,145,146],{"class":125},"1",[112,148,135],{"class":118},[112,150,152,155,157,160],{"class":114,"line":151},4,[112,153,154],{"class":125},"  \"mwst_type\"",[112,156,129],{"class":118},[112,158,159],{"class":125},"0",[112,161,135],{"class":118},[112,163,165,168,170,173],{"class":114,"line":164},5,[112,166,167],{"class":125},"  \"mwst_is_net\"",[112,169,129],{"class":118},[112,171,172],{"class":125},"true",[112,174,135],{"class":118},[112,176,178,181],{"class":114,"line":177},6,[112,179,180],{"class":125},"  \"positions\"",[112,182,183],{"class":118},": [\n",[112,185,187,190,193,195,199,202,205,207,210,212,215,217,220,222,225,227,230,232,235,237,240],{"class":114,"line":186},7,[112,188,189],{"class":118},"    { ",[112,191,192],{"class":125},"\"type\"",[112,194,129],{"class":118},[112,196,198],{"class":197},"sZZnC","\"KbPositionArticle\"",[112,200,201],{"class":118},", ",[112,203,204],{"class":125},"\"article_id\"",[112,206,129],{"class":118},[112,208,209],{"class":125},"3",[112,211,201],{"class":118},[112,213,214],{"class":125},"\"amount\"",[112,216,129],{"class":118},[112,218,219],{"class":197},"\"2\"",[112,221,201],{"class":118},[112,223,224],{"class":125},"\"unit_price\"",[112,226,129],{"class":118},[112,228,229],{"class":197},"\"45.00\"",[112,231,201],{"class":118},[112,233,234],{"class":125},"\"tax_id\"",[112,236,129],{"class":118},[112,238,239],{"class":125},"4",[112,241,242],{"class":118}," },\n",[112,244,246,248,250,252,255,257,260,262,265,267,269,271,274,276,278,280,283,285,287,289,291],{"class":114,"line":245},8,[112,247,189],{"class":118},[112,249,192],{"class":125},[112,251,129],{"class":118},[112,253,254],{"class":197},"\"KbPositionCustom\"",[112,256,201],{"class":118},[112,258,259],{"class":125},"\"text\"",[112,261,129],{"class":118},[112,263,264],{"class":197},"\"Shipping\"",[112,266,201],{"class":118},[112,268,214],{"class":125},[112,270,129],{"class":118},[112,272,273],{"class":197},"\"1\"",[112,275,201],{"class":118},[112,277,224],{"class":125},[112,279,129],{"class":118},[112,281,282],{"class":197},"\"9.00\"",[112,284,201],{"class":118},[112,286,234],{"class":125},[112,288,129],{"class":118},[112,290,239],{"class":125},[112,292,293],{"class":118}," }\n",[112,295,297],{"class":114,"line":296},9,[112,298,299],{"class":118},"  ]\n",[112,301,303],{"class":114,"line":302},10,[112,304,305],{"class":118},"}\n",[15,307,308,309,312,313,316],{},"bexio recommends at most 150 positions when creating a document; further lines are appended\nafterwards with ",[86,310,311],{},"POST \u002F2.0\u002Fkb_invoice\u002F{document_id}\u002Fkb_position_article"," or\n",[86,314,315],{},"…\u002Fkb_position_custom",". Shipping and discount are thus ordinary lines, no workaround needed.",[32,318,320],{"id":319},"case-2-document-number-on-quotes","Case 2: document number on quotes",[15,322,323,324,329,330,333,334,339],{},"A Zapier user ",[19,325,328],{"href":326,"rel":327},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=21008&fid=99",[23],"cannot create a quote",":\nbexio demands ",[86,331,332],{},"document_nr",", the action has no field for it; a second person affected turns\nup in the same thread. Another\n",[19,335,338],{"href":336,"rel":337},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=24884&fid=99",[23],"cannot find a quote by its number",",\nalthough the same number returns a hit in a different tool.",[15,341,342,343,346,347,349,350,353,354,356],{},"The documentation for ",[86,344,345],{},"POST \u002F2.0\u002Fkb_offer"," explains the rule: ",[86,348,332],{}," must not be set\nwhen automatic numbering is active in bexio, and it is required when automatic numbering is\nswitched off. A module without this field therefore only works with automatic numbering.\nAnyone keeping their own numbers sets them through the API. Searching goes through\n",[86,351,352],{},"POST \u002F2.0\u002Fkb_offer\u002Fsearch"," with ",[86,355,332],{}," as the search field:",[103,358,360],{"className":105,"code":359,"language":107,"meta":108,"style":108},"[{ \"field\": \"document_nr\", \"value\": \"AN-00001\", \"criteria\": \"=\" }]\n",[86,361,362],{"__ignoreMap":108},[112,363,364,367,370,372,375,377,380,382,385,387,390,392,395],{"class":114,"line":115},[112,365,366],{"class":118},"[{ ",[112,368,369],{"class":125},"\"field\"",[112,371,129],{"class":118},[112,373,374],{"class":197},"\"document_nr\"",[112,376,201],{"class":118},[112,378,379],{"class":125},"\"value\"",[112,381,129],{"class":118},[112,383,384],{"class":197},"\"AN-00001\"",[112,386,201],{"class":118},[112,388,389],{"class":125},"\"criteria\"",[112,391,129],{"class":118},[112,393,394],{"class":197},"\"=\"",[112,396,397],{"class":118}," }]\n",[15,399,400,401,404,405,408,409,412],{},"Without ",[86,402,403],{},"criteria",", bexio searches with “like”, i.e. partial matches; for a number, ",[86,406,407],{},"="," is\nthe safe choice. The same search fields exist for invoices under ",[86,410,411],{},"POST \u002F2.0\u002Fkb_invoice\u002Fsearch",".",[32,414,416],{"id":415},"case-3-tax-rate-per-line-item","Case 3: tax rate per line item",[15,418,419,420,425],{},"An invoice arrives in bexio with ",[19,421,424],{"href":422,"rel":423},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=29926&fid=3",[23],"7.7% instead of 8.1%",",\nand the tax rate cannot be chosen in the module. Zapier confirms a bug report in the thread;\nthe workaround is to store the rate on the product in bexio.",[15,427,428,429,432,433,436,437,201,440,201,442,445,446,448],{},"In the API every position carries its field ",[86,430,431],{},"tax_id",". The valid values come from\n",[86,434,435],{},"GET \u002F3.0\u002Ftaxes?types=sales_tax&scope=active","; this is exactly the call the documentation\nrecommends, because only active sales taxes are allowed on quotes, orders and invoices. The\nresponse lists ",[86,438,439],{},"id",[86,441,86],{},[86,443,444],{},"value"," and the years of validity for each rate. A service reads\nthis list once and picks the ",[86,447,431],{}," by percentage instead of hard-coding a number that\nbecomes wrong at the next rate change.",[32,450,452],{"id":451},"case-4-reference-for-payment-matching","Case 4: reference for payment matching",[15,454,455,456,461],{},"Someone creates invoices from a Google Sheet and wants to write the\n",[19,457,460],{"href":458,"rel":459},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=23831&fid=3",[23],"27-digit reference number"," into\nthe reference field so that bexio matches incoming bank payments automatically. Zapier files a\nfeature request; no date is given.",[15,463,464,465,468,469,472,473,475,476,479],{},"The invoice in the API has two reference fields. ",[86,466,467],{},"reference"," is free text on the document.\n",[86,470,471],{},"api_reference",", according to the documentation, can only be read and edited through the API\nand is meant to store references to other systems, such as the shop’s order number or the\npayment provider’s payment ID; it is also a search field of ",[86,474,411],{},".\nThe response for an invoice also contains ",[86,477,478],{},"qr_invoice_id",". A field for setting the reference\nof the QR payment part yourself is not described in the documentation.",[15,481,482,483,486,487,201,490,492,493,496],{},"Anyone who gets the payment reported by a payment provider anyway does not need bank matching\nfor it: ",[86,484,485],{},"POST \u002F2.0\u002Fkb_invoice\u002F{invoice_id}\u002Fpayment"," books the payment directly onto the\ninvoice with ",[86,488,489],{},"date",[86,491,444],{}," and ",[86,494,495],{},"bank_account_id",". The payment then shows on the invoice in\nbexio, and nobody sends reminders to customers who paid long ago.",[32,498,500],{"id":499},"case-5-user-in-time-tracking","Case 5: user in time tracking",[15,502,503,504,509],{},"Time entries from a Google Sheet should belong to the right employee in bexio. In the Zapier\nmodule the ",[19,505,508],{"href":506,"rel":507},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=49831&fid=3",[23],"user ID cannot be set",";\nthe field gets filled with a contact, and the person asking finds no way out.",[15,511,512,515,516,519,520,523,524,527,528,531,532,353,535,492,537,540,541,544,545,548,549,552,553,201,556,559],{},[86,513,514],{},"POST \u002F2.0\u002Ftimesheet"," requires ",[86,517,518],{},"user_id"," as a mandatory field, along with ",[86,521,522],{},"client_service_id","\nfor the service, ",[86,525,526],{},"allowable_bill"," for “billable” and an object ",[86,529,530],{},"tracking",", either as a\nduration (",[86,533,534],{},"type: duration",[86,536,489],{},[86,538,539],{},"duration",") or as a time range (",[86,542,543],{},"type: range",").\nUsers come from ",[86,546,547],{},"GET \u002F3.0\u002Fusers",", services from ",[86,550,551],{},"GET \u002F2.0\u002Fclient_service",". Contact and project\nare optional (",[86,554,555],{},"contact_id",[86,557,558],{},"pr_project_id","). An entry of one hour and forty minutes:",[103,561,563],{"className":105,"code":562,"language":107,"meta":108,"style":108},"{\n  \"user_id\": 1,\n  \"client_service_id\": 1,\n  \"allowable_bill\": true,\n  \"contact_id\": 2,\n  \"tracking\": { \"type\": \"duration\", \"date\": \"2026-11-04\", \"duration\": \"01:40\" }\n}\n",[86,564,565,569,579,590,601,612,648],{"__ignoreMap":108},[112,566,567],{"class":114,"line":115},[112,568,119],{"class":118},[112,570,571,573,575,577],{"class":114,"line":122},[112,572,141],{"class":125},[112,574,129],{"class":118},[112,576,146],{"class":125},[112,578,135],{"class":118},[112,580,581,584,586,588],{"class":114,"line":138},[112,582,583],{"class":125},"  \"client_service_id\"",[112,585,129],{"class":118},[112,587,146],{"class":125},[112,589,135],{"class":118},[112,591,592,595,597,599],{"class":114,"line":151},[112,593,594],{"class":125},"  \"allowable_bill\"",[112,596,129],{"class":118},[112,598,172],{"class":125},[112,600,135],{"class":118},[112,602,603,605,607,610],{"class":114,"line":164},[112,604,126],{"class":125},[112,606,129],{"class":118},[112,608,609],{"class":125},"2",[112,611,135],{"class":118},[112,613,614,617,620,622,624,627,629,632,634,637,639,641,643,646],{"class":114,"line":177},[112,615,616],{"class":125},"  \"tracking\"",[112,618,619],{"class":118},": { ",[112,621,192],{"class":125},[112,623,129],{"class":118},[112,625,626],{"class":197},"\"duration\"",[112,628,201],{"class":118},[112,630,631],{"class":125},"\"date\"",[112,633,129],{"class":118},[112,635,636],{"class":197},"\"2026-11-04\"",[112,638,201],{"class":118},[112,640,626],{"class":125},[112,642,129],{"class":118},[112,644,645],{"class":197},"\"01:40\"",[112,647,293],{"class":118},[112,649,650],{"class":114,"line":186},[112,651,305],{"class":118},[32,653,655],{"id":654},"case-6-pdf-of-a-quote","Case 6: PDF of a quote",[15,657,658,659,664],{},"A Make user wants to ",[19,660,663],{"href":661,"rel":662},"https:\u002F\u002Fcommunity.make.com\u002Ft\u002Fconvert-data-long-string-binary-to-pdf-bexio-to-docuware\u002F38702",[23],"archive quotes as PDF in DocuWare",".\nThere is a module for invoices but none for quotes; the attempt with an HTTP call yields a PDF\nthat will not open. The only reply points to HTTP basics.",[15,666,667,670,671,674,675,201,678,201,681,492,684,687,688,690,691,694,695,698],{},[86,668,669],{},"GET \u002F2.0\u002Fkb_offer\u002F{quote_id}\u002Fpdf"," returns the document, with or without letterhead\n(",[86,672,673],{},"logopaper","). The point where the person failed: the response is not a PDF but JSON with the\nfields ",[86,676,677],{},"name",[86,679,680],{},"size",[86,682,683],{},"mime",[86,685,686],{},"content",", and ",[86,689,686],{}," holds the file Base64-encoded. Only\nafter decoding do you have a valid PDF file. The same applies to invoices\n(",[86,692,693],{},"\u002F2.0\u002Fkb_invoice\u002F{invoice_id}\u002Fpdf",") and orders (",[86,696,697],{},"\u002F2.0\u002Fkb_order\u002F{order_id}\u002Fpdf",").",[32,700,702],{"id":701},"case-7-detecting-changed-invoices","Case 7: detecting changed invoices",[15,704,705,706,711],{},"According to one forum member, the Make trigger “Watch Invoices”\n",[19,707,710],{"href":708,"rel":709},"https:\u002F\u002Fcommunity.make.com\u002Ft\u002Fbexio-watch-invoice\u002F69633",[23],"delivers no records when an invoice is merely changed",".\nOne person replying suspects a bug in the module, a second suggests searching instead.",[15,713,714,715,718],{},"The API offers the search field ",[86,716,717],{},"updated_at"," with comparison criteria for this. A service\nremembers the timestamp of its last run and asks:",[103,720,722],{"className":105,"code":721,"language":107,"meta":108,"style":108},"[{ \"field\": \"updated_at\", \"value\": \"2026-11-04 06:00:00\", \"criteria\": \">\" }]\n",[86,723,724],{"__ignoreMap":108},[112,725,726,728,730,732,735,737,739,741,744,746,748,750,753],{"class":114,"line":115},[112,727,366],{"class":118},[112,729,369],{"class":125},[112,731,129],{"class":118},[112,733,734],{"class":197},"\"updated_at\"",[112,736,201],{"class":118},[112,738,379],{"class":125},[112,740,129],{"class":118},[112,742,743],{"class":197},"\"2026-11-04 06:00:00\"",[112,745,201],{"class":118},[112,747,389],{"class":125},[112,749,129],{"class":118},[112,751,752],{"class":197},"\">\"",[112,754,397],{"class":118},[15,756,757,758,761,762,764],{},"at ",[86,759,760],{},"POST \u002F2.0\u002Fkb_invoice\u002Fsearch?order_by=updated_at_desc",". The time format matches what bexio\nreturns in ",[86,763,717],{},". New and changed invoices thus show up the same way, for example a\nstatus change to “paid”.",[32,766,768],{"id":767},"case-8-invoice-from-an-order","Case 8: invoice from an order",[15,770,771,772,777],{},"A Shopify order becomes a bexio order in Make; the invoice from it is to be created by an HTTP\ncall because there is no module for it. The call\n",[19,773,776],{"href":774,"rel":775},"https:\u002F\u002Fcommunity.make.com\u002Ft\u002Fcorrectly-include-request-header-in-api-call-bexio\u002F33491",[23],"fails with status 415",",\nwhile the same call works in Postman. Make support confirms a known issue in the thread and\npasses it on to development, without a date.",[15,779,780,781,784,785,787,788,201,790,492,793,796,797,800],{},"The endpoint is ",[86,782,783],{},"POST \u002F2.0\u002Fkb_order\u002F{order_id}\u002Finvoice",". The body is optional: if it is\nmissing, bexio takes over all positions of the order; otherwise ",[86,786,92],{}," names the desired\nlines with ",[86,789,439],{},[86,791,792],{},"type",[86,794,795],{},"amount",". Status 415 means the server does not accept the content\ntype of the request; the documentation requires ",[86,798,799],{},"Accept: application\u002Fjson"," and JSON as the\nbody. A dedicated service sets the headers itself and does not depend on how an intermediary\npasses them on.",[32,802,804],{"id":803},"the-eight-cases-at-a-glance","The eight cases at a glance",[806,807,808,824],"table",{},[809,810,811],"thead",{},[812,813,814,818,821],"tr",{},[815,816,817],"th",{},"Case",[815,819,820],{},"In the forum",[815,822,823],{},"In the bexio API",[825,826,827,844,860,876,894,908,925,941],"tbody",{},[812,828,829,833,836],{},[830,831,832],"td",{},"Several line items",[830,834,835],{},"list rejected, draft with total 0",[830,837,838,840,841,843],{},[86,839,92],{}," in ",[86,842,88],{},", mixed types",[812,845,846,849,852],{},[830,847,848],{},"Document number",[830,850,851],{},"required field missing, search without hits",[830,853,854,856,857],{},[86,855,332],{},", search with ",[86,858,859],{},"criteria: \"=\"",[812,861,862,865,868],{},[830,863,864],{},"Tax rate",[830,866,867],{},"not selectable, wrong rate",[830,869,870,872,873],{},[86,871,431],{}," per position, list from ",[86,874,875],{},"\u002F3.0\u002Ftaxes",[812,877,878,881,884],{},[830,879,880],{},"Reference",[830,882,883],{},"field missing, feature request open",[830,885,886,201,888,890,891],{},[86,887,467],{},[86,889,471],{},", payment via ",[86,892,893],{},"…\u002Fpayment",[812,895,896,899,902],{},[830,897,898],{},"Time tracking",[830,900,901],{},"user cannot be set",[830,903,904,840,906],{},[86,905,518],{},[86,907,514],{},[812,909,910,913,916],{},[830,911,912],{},"Quote PDF",[830,914,915],{},"no module, unreadable file",[830,917,918,921,922,924],{},[86,919,920],{},"\u002F2.0\u002Fkb_offer\u002F{id}\u002Fpdf",", decode ",[86,923,686],{}," from Base64",[812,926,927,930,933],{},[830,928,929],{},"Changed invoices",[830,931,932],{},"trigger does not react",[830,934,935,936,353,938],{},"search on ",[86,937,717],{},[86,939,940],{},">",[812,942,943,946,949],{},[830,944,945],{},"Invoice from order",[830,947,948],{},"no module, status 415",[830,950,951],{},[86,952,953],{},"POST \u002F2.0\u002Fkb_order\u002F{id}\u002Finvoice",[15,955,956,957,962,963,967,968,412],{},"On top of that comes a risk no field can fix: a Zapier user reports that bexio\n",[19,958,961],{"href":959,"rel":960},"https:\u002F\u002Fcommunity.zapier.com\u002Ftopic\u002Fshow?tid=30103&fid=99",[23],"locked the client ID of the Zapier app","\nand his connection stopped with it. Anyone connecting through a third-party app depends on its\napproval; your own app in the Developer Portal depends only on yours. How to create one is in\nthe guide ",[19,964,966],{"href":965},"\u002Fen\u002Fratgeber\u002Fbexio-api-token\u002F","Create a bexio API token",", the sign-in via OAuth 2\nin the guide ",[19,969,971],{"href":970},"\u002Fen\u002Fratgeber\u002Fbexio-api-wordpress\u002F","Connect the bexio API to WordPress",[32,973,975],{"id":974},"when-the-direct-connection-pays-off","When the direct connection pays off",[15,977,978],{},"For a contact from a form, the ready-made modules are usually enough. As soon as invoices with\nseveral lines, your own numbers, tax rates, time entries per employee or PDFs come into play,\nthe detour through the intermediary platform costs more time than it saves: every missing\nfield turns into a forum thread with no end.",[15,980,981,982,986,987,991],{},"An interface that talks to the bexio API directly is something I build for a fixed price: you\ntell me the source system and the workflow, I define the scope on your real documents, the\nconnection runs on your own infrastructure without a subscription with a third party, with\nretries on errors and a log that shows what was transferred. For HubSpot the connection\nalready exists: ",[19,983,985],{"href":984},"\u002Fen\u002Fbexio-hubspot\u002F","bexio ↔ HubSpot"," turns a won deal into a quote or invoice\nwith line items and reports the payment status back. For everything else:\n",[19,988,990],{"href":989},"\u002Fen\u002Fkontakt\u002F","Contact",", with the source system and what is done by hand today.",[15,993,994],{},[19,995,997],{"href":996},"\u002Fen\u002Fratgeber\u002F","All guides",[999,1000,1001],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":108,"searchDepth":122,"depth":122,"links":1003},[1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014],{"id":34,"depth":122,"text":35},{"id":53,"depth":122,"text":54},{"id":319,"depth":122,"text":320},{"id":415,"depth":122,"text":416},{"id":451,"depth":122,"text":452},{"id":499,"depth":122,"text":500},{"id":654,"depth":122,"text":655},{"id":701,"depth":122,"text":702},{"id":767,"depth":122,"text":768},{"id":803,"depth":122,"text":804},{"id":974,"depth":122,"text":975},"bexio API from Make and Zapier: eight unsolved questions about line items, document number, tax rate, reference, time entries and PDF, and the API field for each.","md",{},true,"\u002Fratgeber\u002Fbexio-api-make-zapier",null,{"title":5,"description":1015},"ratgeber\u002Fbexio-api-make-zapier","XWrmrYMRD1Tfy-WXZn-lMRhczqpLxCvEVBuROACmwRo",1793785419198]