VÝVOJÁŘI · Referenční dokumentace Integration API

Referenční dokumentace Fabrixa Integration API

6 min čtení Poslední aktualizace: 22-09-2026 21:12

Integration API vám pomáhá vytvářet a spravovat objednávky Fabrixa, spouštět Fabrixa Studio a zůstat prostřednictvím webhooků v souladu se stavem výroby a plnění. API se řídí konvencemi REST a pro všechna těla požadavků i odpovědí používá JSON.

ZÁKLADNÍ URL

https://api.fabrixa.com/v2/integration

Všechny požadavky posílejte na tuto základní URL, za kterou následuje cesta konkrétního endpointu. Základní URL je výchozím bodem pro práci s Fabrixa API - získávání, vytváření, aktualizaci nebo mazání zdrojů.

PŘED PRVNÍM POŽADAVKEM

Autentizace

Pro přístup k Integration API autentizujte své požadavky pomocí přístupového tokenu aplikace a klíče aplikace:

Hlavička Authorization
Authorization: Bearer APPLICATION_ACCESS_TOKEN
Hlavička s klíčem aplikace
X-Application-Key: APPLICATION_KEY
Ukázkový příkaz cURL
curl -X 'GET' \
  'https://api.fabrixa.com/v2/integration/ping' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer APPLICATION_ACCESS_TOKEN' \
  -H 'X-Application-Key: APPLICATION_KEY'

Nahraďte APPLICATION_ACCESS_TOKEN svým skutečným přístupovým tokenem a APPLICATION_KEY svým skutečným klíčem aplikace.

JAK JSOU ODPOVĚDI STRUKTUROVÁNY

Endpointy a požadavky

Endpointy Integration API jsou organizovány podle typu zdroje a dodržují architektonický styl REST. Každý endpoint představuje zdroj a akce nad těmito zdroji se provádějí standardními metodami HTTP.

Všechny požadavky a odpovědi Integration API jsou ve formátu JSON, což poskytuje konzistentní a snadno použitelné rozhraní pro práci s API.

Úplné podrobnosti o všech endpointech včetně ukázek požadavků a odpovědí najdete v naší dokumentaci Swagger.

Formát odpovědi

Všechny endpointy vracejí data ve standardizovaném formátu s těmito objekty:

{
  "links": {
    "self": "https://api.fabrixa.com/v2/integration/products",
    "first_page": "https://api.fabrixa.com/v2/integration/products?page=1",
    "last_page": "https://api.fabrixa.com/v2/integration/products?page=2",
    "next_page": "https://api.fabrixa.com/v2/integration/products?page=2",
    "prev_page": null
  },
  "meta": {
    "total": 2,
    "current_page": 1,
    "per_page": 10
  },
  "data": [
    {
      "id": 1,
      "name": "Product 1",
      "description": "Description of Product 1"
    },
    {
      "id": 2,
      "name": "Product 2",
      "description": "Description of Product 2"
    }
  ]
}

Popis objektů odpovědi

links

Obsahuje odkazy pro stránkování, kterými se lze pohybovat mezi výsledky.

  • self — URL aktuální stránky.
  • first_page — URL první stránky výsledků.
  • last_page — URL poslední stránky výsledků.
  • next_page — URL následující stránky. null, pokud další stránka neexistuje.
  • prev_page — URL předchozí stránky. null, pokud předchozí stránka neexistuje.

meta

Obsahuje metadata o odpovědi, například informace o stránkování.

  • total — celkový počet položek dostupných na všech stránkách.
  • current_page — číslo aktuální stránky výsledků.
  • per_page — počet položek na stránku.

data

Hlavní obsah odpovědi. data se liší podle endpointu - může jít o jeden objekt, například jeden produkt, nebo o pole objektů, například seznam produktů.

KDYŽ SE NĚCO POKAZÍ

Chyby a stavové kódy

Všechny požadavky na API vracejí stavové kódy HTTP, které poskytují informaci o odpovědi.

400 Bad Request

Server nemůže požadavek zpracovat kvůli chybám validace - chybějícím nebo neplatným parametrům.

401 Unauthorized

Klient neposkytl platné autentizační údaje. Vrací se také tehdy, když byl přístupový token zneplatněn.

403 Forbidden

Server požadavek zamítl kvůli nedostatečným oprávněním, obvykle způsobeným nesprávnými nebo chybějícími přístupovými právy.

404 Not Found

Požadovaný zdroj nebyl na serveru nalezen.

429 Too Many Requests

Klient překročil povolený počet požadavků v daném časovém úseku. Viz Limity požadavků.

5xx Errors

Došlo k interní chybě serveru. Kontaktujte prosím podporu Fabrixa s podrobnostmi o neúspěšném požadavku.

Tělo chybové odpovědi

Ukázka těla chybové odpovědi:

{
    "links": {
        "self": "https://api.fabrixa.com/v2/integration/ping"
    },
    "meta": [],
    "errors": {
        "messages": [
            "Application Key is not specified."
        ]
    }
}

errors obsahuje podrobnosti o tom, co selhalo. Pole messages uvádí popisy chyb. U chyby Bad Request obdržíte názvy polí, která neprošla validací.

ZNEJTE SVÉ LIMITY POŽADAVKŮ

Limity požadavků

Integration API podporuje limit 30 požadavků na aplikaci za minutu.

Pokud tento limit překročíte, obdržíte odpověď 429 Too Many Requests.

Všechny odpovědi Integration API obsahují hlavičku X-RateLimit-Remaining, tedy kolik požadavků může klient ještě provést, a hlavičku X-RateLimit-Limit, tedy celkový povolený počet za minutu.

VYTVÁŘENÍ A SLEDOVÁNÍ OBJEDNÁVEK

Objednávky

Vytvářejte objednávky ve Fabrixe ze svého vlastního obchodu nebo platformy, přiložte potřebné tiskové soubory a sledujte každou položku, jak postupuje plněním.

PŘIPRAVTE SI DATA OBJEDNÁVKY

Vytvoření objednávky

Chcete-li vytvořit objednávku přes Fabrixa Integration API, odešlete požadavek POST na https://api.fabrixa.com/v2/integration/orders. Tělo požadavku musí obsahovat:

Struktura těla požadavku

  • number (nepovinné) - číslo objednávky. Pokud není uvedeno, vygeneruje se unikátní číslo.
  • comments (nepovinné) - jakékoli další komentáře nebo poznámky k objednávce.
  • purchased_at - datum a čas nákupu objednávky ve formátu YYYY-MM-DD HH:MM:SS.
  • client_ip (nepovinné) - IP adresa zákazníka.
  • client_user_agent (nepovinné) - řetězec user-agent zákazníka.
  • rows - pole položek objednávky, každá obsahuje:
    • sku - SKU varianty produktu. Podrobnosti viz Swagger.
    • quantity - objednané množství varianty produktu.
    • client_barcode (nepovinné) - unikátní identifikátor na straně klienta pro každou položku objednávky ve formátu Code 128.
    • cart_item_key (povinné bez sources) - unikátní identifikátor z platformy, která vkládá Fabrixa Studio, používaný ke spojení uložených personalizací s objednávkou.
    • sources (povinné bez cart_item_key) - pole zdrojových souborů spojených s produktem, každý obsahuje:
      • type - typ produktu, ve výchozím nastavení použijte "file".
      • url - URL zdrojového souboru.
  • customer - údaje o zákazníkovi:
    • first_name, last_name, email, phone.
  • shipping_address - údaje o doručení:
    • address, address2 (nepovinné), address3 (nepovinné).
    • city, country_code (ISO 3166-2), country, postal_code, state (nepovinné).
    • first_name, last_name, phone (nepovinné), company (nepovinné).
  • shipping_label (nepovinné) - údaje o etiketě:
    • method_name - např. "Post NL".
    • tracking_number, tracking_url, label_pdf_url.
    • date_created - ve formátu YYYY-MM-DD HH:MM:SS.

Ukázkový požadavek

{
  "number": "NL2024010201",
  "comments": "Customer agrees with a low resolution file.",
  "purchased_at": "2024-06-26 21:12:22",
  "client_ip": "127.0.0.1",
  "client_user_agent": "Mozilla",
  "rows": [
    {
      "variant_id": 2705,
      "quantity": 1,
      "client_barcode": "1234567890",
      "sources": [
        {
          "type": "file",
          "url": "https://samples-files.com/samples/sample.pdf"
        }
      ]
    }
  ],
  "customer": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "3VJtP@example.com",
    "phone": "0647185332"
  },
  "shipping_address": {
    "address": "Pierre cuypershof",
    "address2": "17",
    "city": "Amsterdam",
    "country_code": "NL",
    "country": "Netherlands",
    "postal_code": "1012 AB",
    "state": "North Holland",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "0647185332"
  },
  "shipping_label": {
    "method_name": "Post NL",
    "tracking_number": "3SYZXG1585577",
    "tracking_url": "https://postnl.nl/tracktrace/3SYZXG1585577",
    "label_pdf_url": "https://api.fabrixa.com/storage/8966630826422f36d822f91680012141.pdf",
    "date_created": "2024-01-01 00:00:00"
  }
}
SLEDUJTE POLOŽKY OBJEDNÁVKY

Sledování plnění

Chcete-li získat stav plnění konkrétní objednávky, odešlete požadavek GET na https://api.fabrixa.com/v2/integration/orders/{order_id}/fulfillments. Odpověď obsahuje seznam plnění spojených s objednávkou včetně stavu každé položky, podrobností o produktu a průběhu výrobních kroků.

Ukázková odpověď

{
    "data": [
        {
            "id": 1499,
            "barcode": "1200004169200",
            "status": "unfulfilled",
            "created_at": "2024-08-19T12:38:59.000000Z",
            "updated_at": "2024-08-19T12:39:00.000000Z",
            "variant": {
                "id": 32327,
                "name": "Test iAPI blanket product",
                "subtitle": "100 x 150 cm",
                "SKU": "COF099191"
            },
            "product": {
                "id": 1306,
                "name": "Test iAPI blanket product",
                "subtitle": "Test iAPI blanket product"
            },
            "production_steps": [
                {
                    "id": 5,
                    "name": "Print duvet",
                    "description": "Printing the duvet according to the specified design and dimensions.",
                    "status": {
                        "value": "pending",
                        "notes": null,
                        "updated_at": null
                    }
                },
                {
                    "id": 6,
                    "name": "Print pillow",
                    "description": "Printing the pillow cover with the assigned design.",
                    "status": {
                        "value": "pending",
                        "notes": null,
                        "updated_at": null
                    }
                }
            ]
        }
    ]
}

Odpověď obsahuje seznam plnění, každé z nich poskytuje:

  • id - unikátní identifikátor plnění.
  • barcode - čárový kód pro interní sledování a identifikaci; může být vytištěn i na produktu.
  • status - aktuální stav plnění: unfulfilled nebo fulfilled.
  • created_at a updated_at - časové značky vytvoření plnění a jeho poslední aktualizace.
  • variant - podrobné informace o variantě produktu: název, podtitul, SKU.
  • product - údaje o produktu: název, podtitul.
  • production_steps - pole výrobních kroků. Seznam kroků závisí na typu produktu. Pro každý krok:
    • id - unikátní identifikátor výrobního kroku.
    • name - např. "Tisk přikrývky".
    • description - co výrobní krok obnáší.
    • status - aktuální stav:
      • pending - dosud nezahájen.
      • in progress - právě probíhá.
      • rejected - u kroku nastal problém a nebyl úspěšně dokončen.
      • done - krok byl dokončen.
    • notes - jakékoli další poznámky ke kroku.
    • updated_at - kdy byl stav kroku naposledy aktualizován.

Každý záznam plnění odpovídá konkrétnímu produktu nebo jeho variantě v objednávce a každý kus produktu v objednávce má svůj vlastní záznam plnění - každá položka je během výroby sledována samostatně.

Pokud pro objednávku nejsou vrácena žádná plnění, objednávka dosud nevstoupila do fáze zpracování.

JAK POSKYTNOUT TISKOVÉ SOUBORY

Požadavky na zdrojové soubory

Pokud k objednávce přikládáte zdrojové soubory, ujistěte se, že splňují následující požadavky:

type

Jako zdroj musíte poskytnout soubor PDF. Pokud váš design obsahuje více produktových vrstev, vložte každou vrstvu jako samostatnou stránku téhož PDF. Při zpracování je každá stránka považována za jednotlivou vrstvu, takže můžete odeslat vícevrstvý design jako jediný zdrojový soubor. Viz požadavky na PDF a pořadí stránek.

Hodnota type v objektu source musí být nastavena na "file".

"sources": [
    {
        "type": "file",
        "url": "https://samples-files.com/samples/source.pdf"
    }
]

Další podrobnosti najdete v dokumentaci Swagger.

url

Pole url musí obsahovat přímý odkaz na zdrojový soubor. Ujistěte se, že je URL dostupná a že soubor lze stáhnout bez autentizace. Odkaz musí zůstat dostupný po celou dobu výrobního procesu.

Formát souboru

Soubory poskytujte ve formátu PDF. Ujistěte se, že obrázky mají vysokou kvalitu a jsou vhodné pro tisk.

Rozměry obrázku

Maximální rozměry jsou 15 000 pixelů na každé straně. Obrázky, které tento limit překročí, mohou být zmenšeny nebo odmítnuty. Rozlišení obrázku by mělo odpovídat rozměrům produktu; jinak mohou být obrázky zmenšeny nebo obříznuty, aby se přizpůsobily.

Rozlišení

Žádný konkrétní požadavek na rozlišení - jen se ujistěte, že kvalita obrázku je pro tisk dostatečná.

Barevný prostor

Obrázky by měly být v barevném prostoru RGB, aby byly barvy reprodukovány správně. Jiné barevné prostory budou při zpracování převedeny, což může vést k nesprávným barvám.

Velikost souboru

Každý zdrojový soubor by neměl přesáhnout 50 MB. Větší soubory mohou být odmítnuty nebo způsobit zdržení při zpracování.

Požadavky na PDF a pořadí stránek

Pořadí stránek v PDF je důležité. Stránky se k produktovým vrstvám přiřazují podle pozice a očekávané pořadí stránek závisí na typu produktu. Ujistěte se, že stránky ve vašem PDF odpovídají správné posloupnosti vrstev pro produkt, který odesíláte.

ProduktPořadí stránek PDF
Duvet Cover
  1. Duvet cover
  2. Pillow front
  3. Pillow back
Curtains
  1. Left curtain
  2. Right curtain
T-shirt
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Collar
Tanktop
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Collar
Sweater
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Left cuff
  6. Right cuff
  7. Collar
  8. Waistband
Hoodie
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Left cuff
  6. Right cuff
  7. Hood inside left
  8. Hood inside right
  9. Hood outside left
  10. Hood outside right
  11. Waistband
  12. Pocket lower left
  13. Pocket lower right
  14. Pocket upper right
  15. Pocket upper left
Sweatpants
  1. Front right
  2. Front left
  3. Back left
  4. Back right
  5. Left cuff
  6. Right cuff
  7. Waistband
  8. Right pocket
  9. Left pocket
  10. Back pocket
  11. Back pocket interfacing
Sweatshorts
  1. Front right
  2. Front left
  3. Back left
  4. Back right
  5. Waistband
  6. Right pocket
  7. Left pocket

Důležité: každá stránka PDF musí odpovídat požadovaným rozměrům pro svou produktovou vrstvu a mít správnou orientaci. Umístěte grafiku tak, aby horní část designu byla zarovnána s horním okrajem stránky. Nesprávná velikost nebo orientace stránky může ve výrobě způsobit problémy se škálováním, otočením nebo zarovnáním.

PERSONALIZACE PRODUKTU

Fabrixa Studio

Fabrixa Studio je nástroj, který uživatelům umožňuje plynule personalizovat produkty v reálném čase díky intuitivnímu rozhraní, ve kterém mohou vytvářet nebo nahrávat vlastní designy.

Fabrixa Studio je ideální pro firmy nabízející produkty na míru - zákazníci si mohou svůj design zobrazit ještě před dokončením objednávky.

PŘIDEJTE STUDIO DO SVÉHO OBCHODU

Vložení Fabrixa Studia

Fabrixa Studio můžete vložit do svého webu pomocí iframe. To vašim zákazníkům umožní personalizovat produkty přímo na vašem webu během nákupu.

Ukázka iframe pro vložení Fabrixa Studia:

<iframe id="fabrixa-studio"
    src="https://studio.fabrixa.com?application_key={application_key}&sku={product_sku}&cart_item_key={cart_item_key}"
    name="FabrixaStudio"
    scrolling="no"
    frameborder="1"
    width="100%"
    height="100%"
    allowfullscreen="">
</iframe>

Nahraďte hodnoty product_sku, cart_item_key a application_key svými dynamickými hodnotami.

Požadavek na vytvoření objednávky s cart_item_key

{
  "number": "NL2024010201",
  "purchased_at": "2024-06-26 21:12:22",
  "client_ip": "127.0.0.1",
  "client_user_agent": "Mozilla",
  "rows": [
    {
      "sku": "SB796162",
      "quantity": 1,
      "cart_item_key": "0cb76770-de2d-4524-aa48-47b6e5f0d8a5"
    }
  ],
  "customer": {
    "...": "..."
  },
  "shipping_address": {
    "...": "..."
  },
  "shipping_label": {
    "...": "..."
  }
}
NASLOUCHEJTE AKCÍM ZÁKAZNÍKA

Zpracování událostí Studia

Když se uvnitř iframe klikne na tlačítko Přidat do košíku, provede se následující příkaz:

window.parent.postMessage('customizationFinished', '*');

Obdobně při kliknutí na tlačítko Zpět:

window.parent.postMessage('closeButtonClicked', '*');

Metoda postMessage umožňuje komunikaci mezi iframe a jeho nadřazeným oknem přes různé domény, takže může nadřazené okno informovat o konkrétních akcích uživatele.

Prvním argumentem postMessage jsou data, která chcete odeslat. Řetězec 'customizationFinished' znamená, že uživatel dokončil personalizaci a přidává produkt do košíku. 'closeButtonClicked' znamená, že se uživatel rozhodl vrátit zpět.

V nadřazeném okně tyto zprávy odchytávejte pomocí posluchače události message:

window.addEventListener('message', function(event) {
    if (event.origin === 'https://studio.fabrixa.com') {
        if (event.data === 'customizationFinished') {
            // Handle the Add to Cart event
            console.log('Customization finished and item can be added to cart.');
        } else if (event.data === 'closeButtonClicked') {
            // Handle the Back button event
            console.log('Back button clicked.');
        }
    }
});

Vždy kontrolujte origin příchozích zpráv, abyste se ujistili, že přicházejí z důvěryhodného zdroje. Podle přijaté zprávy provádějte potřebné akce - aktualizaci uživatelského rozhraní, zpracování košíku a podobně. Validace origin je pro bezpečnost klíčová - zabraňuje neoprávněným skriptům v interakci s vaší aplikací.

ZOBRAZTE HOTOVÝ DESIGN

Náhled personalizace

Po dokončení personalizace zobrazte finální design pomocí níže uvedené URL náhledu. Tato URL vrací obrázek personalizovaného produktu vhodný jako hodnota src ve značce <img>. Je ideální pro zobrazení personalizovaného produktu v košíku, v souhrnu objednávky nebo kdekoli v rozhraní vašeho obchodu.

https://api.fabrixa.com/v2/studio/customizations/{CART_ITEM_KEY}/preview?Application-Key={APPLICATION_KEY}

Nahraďte {CART_ITEM_KEY} skutečným klíčem položky košíku a {APPLICATION_KEY} svým platným klíčem aplikace.

Ukázka použití ve značce obrázku:

<img
    src="https://api.fabrixa.com/v2/studio/customizations/{CART_ITEM_KEY}/preview?Application-Key={APPLICATION_KEY}"
    alt="Customized Product Preview"
    style="max-width: 100%; height: auto;" />
VYZKOUŠEJTE S VLASTNÍMI HODNOTAMI

Živé demo

Náhled personalizace se zde zobrazí po dokončení designu.

Customization preview
PŘIJÍMEJTE AKTUALIZACE UDÁLOSTÍ

Webhooky

Fabrixa používá webhooky k tomu, aby váš systém informovala o událostech v reálném čase - aktualizacích nebo vytvoření objednávek. Když událost nastane, Fabrixa odešle na váš server webhook s příslušnými informacemi. Váš server musí vystavit veřejný POST endpoint, který příchozí webhooky zpracuje.

PROJDĚTE PŘÍCHOZÍ HLAVIČKY

Hlavičky požadavku webhooku

Požadavek webhooku obsahuje následující hlavičky, které vám pomohou příchozí požadavek identifikovat a ověřit:

{
  "content-type": "application/json",
  "x-webhook-signature": "YmEwNjBhMGMyMzE3ZWQ5NGQ5NDYwOGVhNzNhMjQ4M2MyODZkZmI3NTQ1YzYxYjdkMzNhZjgzYzBmMTkxYTAxMw==",
  "x-webhook-topic": "order.updated"
}
Rozpis hlaviček
VYBERTE SI TÉMATA UDÁLOSTÍ

Události webhooků

Webhooky Fabrixa informují váš systém o změnách stavu objednávky nebo o aktivitě. Každý webhook je spuštěn konkrétní hodnotou x-webhook-topic. Aktuálně podporovaná témata:

TémaPopis
order.created Spuštěno, když je ve Fabrixe zadána nová objednávka, ať už požadavkem na API, nebo přímo v platformě.
order.updated Spuštěno, když se aktualizují údaje objednávky, například stav objednávky nebo stav plnění.

Stavy objednávky

Stavy plnění

PROZKOUMEJTE PAYLOAD UDÁLOSTI

Ukázka payloadu webhooku

Ukázka payloadu odesílaného s webhookem. Tento payload představuje aktualizaci objednávky:

{
  "id": 23069,
  "number": "1250211835",
  "comments": null,
  "is_archived": false,
  "status": "imported",
  "fulfillment_status": "unfulfilled",
  "purchased_at": "2025-04-17T16:17:21.000000Z",
  "created_at": "2025-04-17T16:17:23.000000Z",
  "updated_at": "2025-04-18T07:43:52.000000Z",
  "rows": [
    {
      "id": 27954,
      "quantity": 1,
      "client_barcode": "1250211835",
      "fulfillment_status": "unfulfilled",
      "variant": {
        "id": 293457,
        "name": "Sherpa fleece deken",
        "subtitle": "100x150",
        "SKU": "SFD787231",
        "product": {
          "id": 5319,
          "name": "Sherpa fleece deken",
          "subtitle": "Sherpa fleece deken"
        }
      },
      "sources": [
        {
          "type": "print",
          "url": "https://storage.googleapis.com/fabrixa-api/storage/99b10aaa-df4d-47e4-9bc9-b1d6a785df4c/orders/merchandise-sources/120002795400.pdf",
          "properties": {
            "fill_style": "contain"
          }
        }
      ]
    }
  ]
}
OVĚŘTE ZDROJ WEBHOOKU

Ověření podpisů webhooků

Chcete-li se ujistit, že je požadavek webhooku pravý a nezměněný, ověřte hlavičku x-webhook-signature. Znamená to znovu vypočítat podpis HMAC-SHA256 z nezpracovaného payloadu požadavku a vašeho tajného klíče a poté jej porovnat s přijatým podpisem.

Ukázka v čistém PHP

$payload = file_get_contents('php://input');
$yourSecret = 'your-secret-key';
$expectedSignature = base64_encode(hash_hmac('sha256', $payload, $yourSecret, true));
$receivedSignature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';

if (!hash_equals($expectedSignature, $receivedSignature)) {
    http_response_code(403);
    exit('Invalid signature');
}

Ukázka v Laravelu

public function handle(Request $request)
{
    $yourSecret = 'your-secret-key';
    $payload = $request->getContent();
    $expectedSignature = base64_encode(hash_hmac('sha256', $payload, $yourSecret, true));
    $receivedSignature = $request->header('x-webhook-signature');

    if (!hash_equals($expectedSignature, $receivedSignature)) {
        abort(403, 'Invalid signature');
    }

    // Continue processing...
}

Nahraďte $yourSecret svým společným tajným klíčem. Pro porovnávání podpisů vždy používejte hash_equals, abyste omezili časovací útoky.

CO KDYŽ DORUČENÍ SELŽE?

Opakované pokusy webhooků

Webhooky se ve výchozím nastavení deaktivují po 10 neúspěšných pokusech o doručení. Pokud váš endpoint vrátí neúspěšný stav, například 404 nebo jakoukoli chybu 5xx, webhook se pokusí doručit celkem 10krát. Pokud bude i dále vracet jiný kód než 2xx nebo 3xx, bude deaktivován. Za úspěšné odpovědi se považují:

VRAŤTE JEDNOZNAČNOU ODPOVĚĎ

Odpověď na webhook

Důrazně doporučujeme, aby váš endpoint vracel stavový kód 200 OK co nejdříve a potvrdil tak úspěšné přijetí webhooku. Za úspěšnou se sice považuje jakákoli odpověď 2xx nebo 3xx, ale 200 je nejběžnější a nejspolehlivější.

Abyste se vyhnuli vypršení časového limitu doručení nebo opakovaným pokusům, vraťte okamžitě 200 OK a payload webhooku zpracujte asynchronně, například na pozadí ve frontě nebo úloze. Pokud vašemu endpointu odpověď trvá příliš dlouho, může být pokus vyhodnocen jako neúspěšný, i když je odpověď nakonec úspěšná.

Odpovědi se stavovými kódy v rozsahu 4xx nebo 5xx a vypršení časového limitu spustí opakované pokusy podle mechanismu opakování.