Programiści

Szybki start — wywołaj API ze swojego serwera

Wybierz piaskownicę, zapisz klucz `esk_test_`, potwierdź go, utwórz dokument na podstawie szablonu i wyślij go. Tokeny sesji podpisywania używają tego samego klucza. Webhook są zarejestrowane w aplikacji administratora.

Zanim zaczniesz

Potrzebujesz terminala z przyciskami `curl` i `jq` oraz kontrolowanej przez siebie skrzynki e-mail. Klucz piaskownicy to `esk_test_…`. Klucz produkcyjny to `esk_live_…`. Wyślij go jako `Autoryzacja: okaziciel`. Najemca pochodzi z klucza, więc nie wysyłaj `x-tenant-id`.

Klucz piaskownicy zawiera `integracje:zapier` i `podpisywanie:zapis`. Przesyłanie, kreator kopert i rejestracja webhook korzystają z sesji administratora po zalogowaniu się. Twój serwer używa klucza do poniższych połączeń.

Cztery wywołania serwera, następnie webhook w aplikacji administratora

  1. 1

    Odbierz swoją piaskownicę

    POST /api/auth/register with `mode: sandbox`. The response includes a full `esk_test_…` key, shown once, plus `demoCustomerId`. When seeding succeeds it also includes `sampleTemplateId`.

  2. 2

    Potwierdź klucz

    GET /api/v1/zapier/auth/test with the key. Expected output: HTTP 200 and `{ success: true, data: { tenantId, tenantName, zapierEnabled: true } }`.

  3. 3

    Utwórz dokument i wyślij go

    POST /api/v1/zapier/actions/create-from-template with `sampleTemplateId`, then POST /api/v1/zapier/actions/send-for-signing with the returned `documentId`. The signer receives the link by email.

  4. 4

    Zarejestruj webhook w Admin

    Zaloguj się i otwórz Administrator → Programista → Webhooks. Zapisz sekret podpisu. Dostawy korzystają z `X-Endorsed-Signature`. Kroki weryfikacji znajdują się w przewodniku webhook. Sprawdź próby w Admin → Programista → Konsola.

Krok 1 — odbierz piaskownicę

Wymagania wstępne: adres e-mail i hasło składające się z co najmniej 8 znaków. Oczekiwany wynik: HTTP 201 z `data.sandbox.apiKey` rozpoczynającym się od `esk_test_`.

bash
curl -sS -X POST https://api.endorsedsign.com/api/auth/register \
  -H 'Content-Type: application/json' \
  -d '{
    "tenantName": "Acme Dev Sandbox",
    "adminEmail": "you@acme.example",
    "password": "your-strong-password",
    "mode": "sandbox"
  }' | tee sandbox.json | jq '.data.sandbox'

# → {
#     "apiKey": "esk_test_…",
#     "keyPrefix": "esk_test_…",
#     "keyId": "…",
#     "scopes": ["signing:write", "integrations:zapier", …],
#     "demoCustomerId": "sandbox-signer-acme-dev-sandbox",
#     "demoCustomerName": "Sandbox Signer",
#     "sampleTemplateId": "…",
#     "expiresAt": "2026-…"
#   }

export ENDORSED_API_KEY="$(jq -r '.data.sandbox.apiKey' sandbox.json)"
export ENDORSED_TEMPLATE_ID="$(jq -r '.data.sandbox.sampleTemplateId // empty' sandbox.json)"

Przechowuj klucz w menedżerze tajnych serwerów. Weryfikacja e-mailem otwiera konsolę administracyjną. Klucz działa dla połączeń na tej stronie od razu po jego wydaniu.

Krok 2 — potwierdź klucz

Wymagania wstępne: `$ENDORSED_API_KEY` z kroku 1. Klucz piaskownicy ma już `integracje:zapier`. Oczekiwane dane wyjściowe: HTTP 200 i nazwa dzierżawy.

bash
curl -sS https://api.endorsedsign.com/api/v1/zapier/auth/test \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  | jq '{ success, tenantId: .data.tenantId, tenantName: .data.tenantName, zapierEnabled: .data.zapierEnabled }'

Brakujący lub zniekształcony klucz to 401. Prawidłowy klucz bez `integrations:zapier` to 403. Nie wysyłaj `X-Data-Mode`: `esk_test_` już wybiera dane testowe.

Krok 3 — utwórz dokument z szablonu piaskownicy i wyślij go

Wymagania wstępne: `$ENDORSED_API_KEY` i niepusty `$ENDORSED_TEMPLATE_ID`. Jeśli `sampleTemplateId` miało wartość null, utwórz szablon w aplikacji administracyjnej i wklej jego identyfikator. Oczekiwany wynik: HTTP 201 z `data.documentId`, następnie odpowiedź na wysłanie ze `status: "link-sent"`.

bash
curl -sS -X POST https://api.endorsedsign.com/api/v1/zapier/actions/create-from-template \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{
    \"templateId\": \"$ENDORSED_TEMPLATE_ID\",
    \"recipientEmail\": \"you@acme.example\",
    \"recipientName\": \"Sandbox Signer\"
  }" | tee created.json | jq '.data | { documentId, customerId, status }'

export ENDORSED_DOCUMENT_ID="$(jq -r '.data.documentId' created.json)"

curl -sS -X POST https://api.endorsedsign.com/api/v1/zapier/actions/send-for-signing \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{
    \"documentId\": \"$ENDORSED_DOCUMENT_ID\",
    \"channel\": \"email\",
    \"subject\": \"Please sign\"
  }" | jq '.data | { documentId, status, channel, shareLinkExpiresAt }'

Link do podpisu zostanie wysłany e-mailem na adres `recipientEmail`. Odpowiedź JSON zawiera identyfikator dokumentu, status i datę wygaśnięcia łącza. Otwórz wiadomość e-mail, aby dokończyć podpisywanie, a następnie obejrzyj „document.signed” na webhook zarejestrowanym w Admin.

Wybij token sesji podpisywania

Wymagania wstępne: `$ENDORSED_API_KEY` z `signing:write` (zawartym w kluczu piaskownicy) i identyfikatorem sesji podpisywania z sesji, którą już utworzyłeś. Oczekiwany wynik: HTTP 201 z jednorazowym tokenem `st_…`.

bash
curl -sS -X POST "https://api.endorsedsign.com/api/v1/signing-sessions/$ENDORSED_SESSION_ID/tokens" \
  -H "Authorization: Bearer $ENDORSED_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{ "scope": "embed", "ttl_seconds": 300 }' \
  | jq '{ token, expires_at, scope }'

Wskaż `st_…`, aby osadzić przeglądarkę. Zachowaj `esk_…` na serwerze. Instrukcje dotyczące wykorzystania znajdują się na stronie umieszczania elementów.

Kiedy coś pójdzie nie tak

Gotowy, aby zejść głębiej?

Po podpisaniu dokumentu od początku do końca, podłącz się do obszarów poniżej, aby przejść do następnego fragmentu integracji. Odniesienie