Nie znaleziono żadnych przedmiotów.
Page title

Lista zdarzeń wysyłanych na webhook

Poznaj opcje integracji dzięki webhookom. Zobacz, jakie dane wysyłamy i odbierz je w jednym z narzędzi no-code jak Zapier czy Make, lub prześlij do swojego API.

Ostatnia aktualizacja:
2025-03-13

Jeśli sam obsługujesz automatyzację, możesz zrobić to programistycznie, lub z pomocą narzędzi jak Zapier. W ustawieniach produktu dodaj adres URL webhooka w zakładce Integracje i webhook. Po zakupie trafią na niego informacje na temat transakcji. Webhook możesz wygenerować za pomocą Zapiera lub Make (dawniej Integromat).

Główne zdarzenia, po których filtrujemy oznaczone są kluczem event i są to odpowiednio:

  • single_product_bought - zakup pojedynczego produktu
  • product_assigned - udane przypisanie dostępu do pojedynczego produktu
  • product_access_expiring - dostęp do pojedynczego produktu wkrótce wygaśnie
  • product_access_expired - wygaśnięcie dostępu do pojedynczego produktu
  • subscription_created - zakup nowej subskrypcji
  • subscription_plan_changed - zmiana planu przez panel Easycart
  • subscription_canceled - anulowanie subskrypcji w panelu Easycart (będzie ważna do końca okresu rozliczeniowego)
  • subscription_expired - ostateczne wygaśnięcie subskrypcji
  • subscription_renewed - odnowienie subskrypcji
  • subscription_renewal_failed - nieudana próba pobrania środków przy odnowieniu
  • subscription_renewal_upcoming - zbliżające się odnowienie
  • subscription_resumed - udane odnowienie subskrypcji
  • subscription_deleted
  • customer_data_changed - zmiana danych klienta

Wszystkie przypadki oraz odpowiedzi webhooka znajdziesz poniżej: 

Webhook po pomyślnym zakupie pojedynczego produktu

1{
2    "event": "single_product_bought",
3    "timestamp": 1741442518,
4    "success": true,
5    "is_subscription": false,
6    "is_renew": false,
7    "is_new": true,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": 50,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": "pi_sample123456",
18    "lang": "pl",
19    "customer_name": "Jane Doe",
20    "customer_first_name": "Jane",
21    "customer_last_name": "Doe",
22    "customer_email": "janedoe@example.com",
23    "customer_id": 100002,
24    "customer_stripe_id": "cus_sample654321",
25    "order_id": 500002,
26    "order_uuid": "00000000-0000-0000-0000-000000000004",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 50,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "samplescope2",
38    "invoice_vat_rate": "0",
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": true,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": null,
48    "delivery": null,
49    "payment_method": "p24",
50    "promo_code": null,
51    "product_id": "prod_sample654321",
52    "product_name": "Sample Online Workshop",
53    "product_description": "This is a sample description for an online workshop product. It includes details about the workshop, its content, schedule and other important information.",
54    "product_file": null,
55    "price_id": "price_sample654321",
56    "price_custom_id": null,
57    "price_name": "Online access",
58    "price_description": null,
59    "subscription_id": null,
60    "subscription_stripe_id": null,
61    "subscription_plan_custom_id": null,
62    "subscription_plan_name": null,
63    "subscription_price_name": null,
64    "subscription_plan_price": null,
65    "subscription_current_period_start": null,
66    "subscription_current_period_end": null,
67    "subscription_onetime": false,
68    "tenant_email": "contact@example.com",
69    "tenant_name": "Sample Brand",
70    "tenant_slug": "samplebrand",
71    "custom_fields": null,
72    "custom_params": {},
73    "custom_email": {
74        "heading": null,
75        "content": null
76    },
77    "cross_sells": [],
78    "ref": null,
79    "expiration_date": null
80}

Webhook po pomyślnym przypisaniu dostępu do pojedynczego produktu

1{
2    "event": "product_assigned",
3    "timestamp": 1741442523,
4    "success": true,
5    "is_subscription": false,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "John Smith",
20    "customer_first_name": "John",
21    "customer_last_name": "Smith",
22    "customer_email": "john.smith@example.com",
23    "customer_id": 100001,
24    "customer_stripe_id": "cus_XXXXXXXXXXXXXXXX",
25    "order_id": 500001,
26    "order_uuid": "00000000-0000-4000-a000-000000000001",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 50,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "demo",
38    "invoice_vat_rate": "0",
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": true,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": null,
48    "delivery": null,
49    "payment_method": "p24",
50    "promo_code": null,
51    "product_id": "prod_XXXXXXXXXXXX",
52    "product_name": "Sample Product",
53    "product_description": "This is a sample product description that replaces the original content. It contains information about what the customer will receive after purchasing this product.",
54    "product_file": null,
55    "price_id": "price_XXXXXXXXXXXX",
56    "price_custom_id": null,
57    "price_name": "online access",
58    "price_description": null,
59    "subscription_id": null,
60    "subscription_stripe_id": null,
61    "subscription_plan_custom_id": null,
62    "subscription_plan_name": null,
63    "subscription_price_name": null,
64    "subscription_plan_price": null,
65    "subscription_current_period_start": null,
66    "subscription_current_period_end": null,
67    "subscription_onetime": false,
68    "tenant_email": "info@example.com",
69    "tenant_name": "Demo Company",
70    "tenant_slug": "demo",
71    "custom_fields": null,
72    "custom_params": {},
73    "custom_email": {
74        "heading": null,
75        "content": null
76    },
77    "cross_sells": [],
78    "ref": null,
79    "assignee": {
80        "id": 100001,
81        "stripe_id": "cus_XXXXXXXXXXXXXXXX",
82        "name": "John Smith",
83        "first_name": "John",
84        "last_name": "Smith",
85        "email": "john.smith@example.com"
86    },
87    "expiration_date": null
88}

Webhook when the single product access is expiring

1{
2    "event": "product_access_expiring",
3    "timestamp": 1741428904,
4    "success": true,
5    "is_subscription": false,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "Robert Johnson",
20    "customer_first_name": "Robert",
21    "customer_last_name": "Johnson",
22    "customer_email": "robert.johnson@example.com",
23    "customer_id": 100003,
24    "customer_stripe_id": "cus_sample789012",
25    "order_id": 500003,
26    "order_uuid": "00000000-0000-0000-0000-000000000005",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 0,
30    "order_has_invoice": true,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": {
37        "nip": "0000000001",
38        "name": "SAMPLE COMPANY TWO SP. Z O.O.",
39        "first_name": "Robert",
40        "last_name": "Johnson",
41        "street": "Sample Avenue",
42        "street_number": "456",
43        "house_number": null,
44        "city": "Another City",
45        "post_code": "00000",
46        "post_city": null,
47        "country_code": "PL"
48    },
49    "invoice_api_scope": "samplescope3",
50    "invoice_vat_rate": "23",
51    "invoice_flat_rate": null,
52    "invoice_gtu_code": "12",
53    "invoice_remarks": null,
54    "checkboxes": {
55        "newsletter": false,
56        "mandatory": false,
57        "optional": false
58    },
59    "shipping": null,
60    "delivery": null,
61    "payment_method": null,
62    "promo_code": "SAMPLE123",
63    "product_id": "prod_sample789012",
64    "product_name": "Sample Course Access",
65    "product_description": "Access to community focused on the course 'Sample Course Title' with additional materials and resources.",
66    "product_file": null,
67    "price_id": "price_sample789012",
68    "price_custom_id": "sample-course-yearly",
69    "price_name": "Yearly Access",
70    "price_description": null,
71    "subscription_id": null,
72    "subscription_stripe_id": null,
73    "subscription_plan_custom_id": null,
74    "subscription_plan_name": null,
75    "subscription_price_name": null,
76    "subscription_plan_price": null,
77    "subscription_current_period_start": null,
78    "subscription_current_period_end": null,
79    "subscription_onetime": true,
80    "tenant_email": "info@example.com",
81    "tenant_name": "sampleedu",
82    "tenant_slug": "sampleedu",
83    "custom_fields": null,
84    "custom_params": {},
85    "custom_email": {
86        "heading": null,
87        "content": null
88    },
89    "cross_sells": [],
90    "ref": null,
91    "expiration_date": "2025-03-11T11:14:56+01:00",
92    "assignee": {
93        "id": 100003,
94        "stripe_id": "cus_sample789012",
95        "name": "Robert Johnson",
96        "first_name": "Robert",
97        "last_name": "Johnson",
98        "email": "robert.johnson@example.com"
99    }
100}

Webhook after single product access expired

1{
2    "event": "product_access_expired",
3    "timestamp": 1741442044,
4    "success": true,
5    "is_subscription": false,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "Emily Wilson",
20    "customer_first_name": "Emily",
21    "customer_last_name": "Wilson",
22    "customer_email": "emily.wilson@example.com",
23    "customer_id": 100004,
24    "customer_stripe_id": "cus_sample345678",
25    "order_id": 500004,
26    "order_uuid": "00000000-0000-0000-0000-000000000006",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 0,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "samplescope3",
38    "invoice_vat_rate": "23",
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": "12",
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": null,
48    "delivery": null,
49    "payment_method": null,
50    "promo_code": "SAMPLE456",
51    "product_id": "prod_sample345678",
52    "product_name": "Sample Online Course",
53    "product_description": "Monthly access to online course 'Sample Course Title' by John Author including video materials and exercises.",
54    "product_file": null,
55    "price_id": "price_sample345678",
56    "price_custom_id": "sample-course-one-month",
57    "price_name": "",
58    "price_description": null,
59    "subscription_id": null,
60    "subscription_stripe_id": null,
61    "subscription_plan_custom_id": null,
62    "subscription_plan_name": null,
63    "subscription_price_name": null,
64    "subscription_plan_price": null,
65    "subscription_current_period_start": null,
66    "subscription_current_period_end": null,
67    "subscription_onetime": false,
68    "tenant_email": "info@example.com",
69    "tenant_name": "sampleedu",
70    "tenant_slug": "sampleedu",
71    "custom_fields": null,
72    "custom_params": {},
73    "custom_email": {
74        "heading": null,
75        "content": null
76    },
77    "cross_sells": [],
78    "ref": null,
79    "expiration_date": "2025-03-08T14:53:15+01:00",
80    "assignee": {
81        "id": 100004,
82        "stripe_id": "cus_sample345678",
83        "name": "Emily Wilson",
84        "first_name": "Emily",
85        "last_name": "Wilson",
86        "email": "emily.wilson@example.com"
87    }
88}

Webhook po pomyślnym zakupie subskrypcji

Jest to zdarzenie wysyłane po zakupie subskrypcji. Na tym etapie należy przydzielić dostęp do produktu.

Ważne: subskrypcja może być aktywowana w trybie okresu próbnego (Trial). W takiej sytuacji właściwość trial_ends_at będzie wskazywać na datę jego zakończenia. W przeciwnym razie będzie ustawione na wartość null.
1{
2    "event": "subscription_created",
3    "timestamp": 1741438333,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": true,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": "2025-03-22T13:52:05+01:00",
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": 0,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "John Doe",
20    "customer_first_name": "John",
21    "customer_last_name": "Doe",
22    "customer_email": "john.doe@example.com",
23    "customer_id": 10001,
24    "customer_stripe_id": "cus_XXXXXXXXXXXX",
25    "order_id": 500001,
26    "order_uuid": "00000000-0000-0000-0000-000000000001",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 0,
30    "order_has_invoice": true,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": {
37        "nip": "1234567890",
38        "name": "EXAMPLE COMPANY NAME",
39        "first_name": "John",
40        "last_name": "Doe",
41        "street": "Example Street",
42        "street_number": "10",
43        "house_number": "5",
44        "city": "Example City",
45        "post_code": "12345",
46        "post_city": "Example City",
47        "country_code": "PL"
48    },
49    "invoice_api_scope": "esy",
50    "invoice_vat_rate": "23",
51    "invoice_flat_rate": null,
52    "invoice_gtu_code": null,
53    "invoice_remarks": null,
54    "checkboxes": {
55        "newsletter": false,
56        "mandatory": false,
57        "optional": false
58    },
59    "shipping": null,
60    "delivery": null,
61    "payment_method": "card",
62    "promo_code": null,
63    "product_id": "prod_XXXXXXXXXXXX",
64    "product_name": "Example Product",
65    "product_description": "Example product description with multiple lines\n\n✔︎ Feature one\n\n✔︎ Feature two\n\n✔︎ Feature three",
66    "product_file": null,
67    "price_id": "price_XXXXXXXXXXXX",
68    "price_custom_id": "example:1+feature",
69    "price_name": "Example pricing tier",
70    "price_description": null,
71    "subscription_id": 100001,
72    "subscription_stripe_id": "sub_XXXXXXXXXXXX",
73    "subscription_plan_custom_id": "example:1+feature",
74    "subscription_plan_name": null,
75    "subscription_price_name": "Example pricing tier",
76    "subscription_plan_price": 99.99,
77    "subscription_current_period_start": "2025-03-08T13:52:05+01:00",
78    "subscription_current_period_end": "2025-03-22T13:52:05+01:00",
79    "subscription_onetime": false,
80    "tenant_email": "contact@example.com",
81    "tenant_name": "example",
82    "tenant_slug": "example",
83    "custom_fields": null,
84    "custom_params": {},
85    "custom_email": {
86        "heading": null,
87        "content": null
88    },
89    "cross_sells": [],
90    "ref": "app",
91    "next_payment_amount": 99.99,
92    "expiration_date": null
93

Webhook po kliknięciu Przełącz na ten plan w panelu subskrypcji

Klient ma możliwość przełączenia się na inny plan (o ile taki został zdefiniowany) z poziomu panelu Easycart. Nazwa planu przekazana do webhooka będzie pochodzić stąd:

  • Właściwość subscription_plan_name mówi Ci na jaki plan przełączył się użytkownik
  • Właściwość subscription_plan_price mówi jaka jest aktualna cena.
1{
2    "event": "subscription_plan_changed",
3    "timestamp": 1741348534,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": 99,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": "pi_XXXXXXXXXXXXX",
18    "lang": "pl",
19    "customer_name": "Michael Green",
20    "customer_first_name": "Michael",
21    "customer_last_name": "Green",
22    "customer_email": "michael.green@example.com",
23    "customer_id": 100006,
24    "customer_stripe_id": "cus_DDDDDDDDDDDD",
25    "order_id": 500006,
26    "order_uuid": "00000000-0000-4000-a000-000000000006",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 99,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "edu",
38    "invoice_vat_rate": "23",
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": null,
48    "delivery": null,
49    "payment_method": "card",
50    "promo_code": null,
51    "product_id": "prod_DDDDDDDDDDDD",
52    "product_name": "Education Platform Access",
53    "product_description": "Education platform subscription in any variant - covering all or selected specializations, and access to the community.",
54    "product_file": null,
55    "price_id": "price_DDDDDDDDDDDD",
56    "price_custom_id": "full-access-monthly",
57    "price_name": "full access",
58    "price_description": null,
59    "subscription_id": 90004,
60    "subscription_stripe_id": "sub_DDDDDDDDDDDD",
61    "subscription_plan_custom_id": "full-access-monthly",
62    "subscription_plan_name": null,
63    "subscription_price_name": "full access",
64    "subscription_plan_price": 199,
65    "subscription_current_period_start": "2025-02-10T14:10:04+01:00",
66    "subscription_current_period_end": "2025-03-10T14:10:04+01:00",
67    "subscription_onetime": false,
68    "tenant_email": "support@example.com",
69    "tenant_name": "education",
70    "tenant_slug": "education",
71    "custom_fields": {
72        "specialization": "Full-stack Development"
73    },
74    "custom_params": {},
75    "custom_email": {
76        "heading": "Thank you for your purchase!",
77        "content": "<p>Transactions are handled by a secure payment processor to provide the highest quality, security, and support for your purchases.</p>\n<p>You will soon receive an email with access to the platform. You can manage your subscription, invoices, and payment methods from your account.</p>\n<p>Thank you for being with us 😊</p>\n"
78    },
79    "cross_sells": [],
80    "ref": null,
81    "assignee": {
82        "id": 100006,
83        "stripe_id": "cus_DDDDDDDDDDDD",
84        "name": "Michael Green",
85        "first_name": "Michael",
86        "last_name": "Green",
87        "email": "michael.green@example.com"
88    }
89}

Webhook po kliknięciu przez użytkownika Anuluj w panelu subskrypcji

Właściwość subscription_current_period_end wskazuje na datę w której plan powinien zostać wyłączony (i tym samym odebrany dostęp do produktu).
1{
2    "event": "subscription_canceled",
3    "timestamp": 1741441696,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": "2025-03-12T20:18:06+01:00",
11    "subscription_renews_at": null,
12    "subscription_canceled": true,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "John Smith",
20    "customer_first_name": "John",
21    "customer_last_name": "Smith",
22    "customer_email": "example@example.com",
23    "customer_id": 100001,
24    "customer_stripe_id": "cus_sample123456",
25    "order_id": 500001,
26    "order_uuid": "00000000-0000-0000-0000-000000000001",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 0,
30    "order_has_invoice": true,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": {
37        "nip": "0000000000",
38        "name": "SAMPLE COMPANY NAME SP. Z O.O.",
39        "first_name": null,
40        "last_name": null,
41        "street": "ul. Sample Street",
42        "street_number": "123",
43        "house_number": null,
44        "city": "Sample City",
45        "post_code": "00000",
46        "post_city": "Sample City",
47        "country_code": "PL"
48    },
49    "invoice_api_scope": "samplescope",
50    "invoice_vat_rate": "23",
51    "invoice_flat_rate": null,
52    "invoice_gtu_code": null,
53    "invoice_remarks": null,
54    "checkboxes": {
55        "newsletter": false,
56        "mandatory": false,
57        "optional": false
58    },
59    "shipping": {
60        "first_name": "John",
61        "last_name": "Smith",
62        "phone": null,
63        "address": "Sample Street 123",
64        "post_code": "00-000",
65        "city": "Sample City",
66        "country_code": null
67    },
68    "delivery": null,
69    "payment_method": "googlePay",
70    "promo_code": null,
71    "product_id": "prod_sample123456",
72    "product_name": "Sample Product",
73    "product_description": "This is a sample description for the product with multiple bullet points:\n* Feature 1\n* Feature 2\n* Feature 3\n* Additional benefits and more details",
74    "product_file": null,
75    "price_id": "price_sample123456",
76    "price_custom_id": "sample-subscription-yearly",
77    "price_name": "Yearly subscription (35% discount)",
78    "price_description": null,
79    "subscription_id": 100001,
80    "subscription_stripe_id": "sub_sample123456",
81    "subscription_plan_custom_id": "sample-subscription-yearly",
82    "subscription_plan_name": null,
83    "subscription_price_name": "Yearly subscription (35% discount)",
84    "subscription_plan_price": 1499,
85    "subscription_current_period_start": "2025-02-26T20:18:06+01:00",
86    "subscription_current_period_end": "2025-03-12T20:18:06+01:00",
87    "subscription_onetime": false,
88    "tenant_email": "admin@example.com",
89    "tenant_name": "sample",
90    "tenant_slug": "sample",
91    "custom_fields": null,
92    "custom_params": {},
93    "custom_email": {
94        "heading": null,
95        "content": null
96    },
97    "cross_sells": [
98        {
99            "id": "00000000-0000-0000-0000-000000000002",
100            "variant_id": 60001,
101            "name": "Cross-sell Product 1",
102            "variant_name": "",
103            "is_recurring": false,
104            "photo_url": "https://example.com/sample-image-1.webp",
105            "description": "This is a sample description for cross-sell product 1. It highlights features and benefits of the product.",
106            "original_amount": 9700,
107            "amount": 7700,
108            "gross_amount": 7700,
109            "show_net_price": false,
110            "is_net_amount": false,
111            "currency": "pln",
112            "tax_behavior": "inclusive",
113            "tax_rate": 5,
114            "active_days": null,
115            "interval_count": null,
116            "interval": null,
117            "active_cycles": null,
118            "trial_period_days": null,
119            "discount_code_id": 50001,
120            "discount_amount_off": 2000,
121            "discount_percent_off": null,
122            "discount_duration": {
123                "type": "once",
124                "until": null
125            },
126            "human_interval": "",
127            "url": "https://app.example.com/cross-sell/00000000-0000-0000-0000-000000000002/00000000-0000-0000-0000-000000000001"
128        },
129        {
130            "id": "00000000-0000-0000-0000-000000000003",
131            "variant_id": 60002,
132            "name": "Cross-sell Product 2",
133            "variant_name": "Lifetime access",
134            "is_recurring": false,
135            "photo_url": "https://example.com/sample-image-2.webp",
136            "description": "This is a sample description for cross-sell product 2. It highlights features and benefits of this second product.",
137            "original_amount": 19700,
138            "amount": 9700,
139            "gross_amount": 9700,
140            "show_net_price": false,
141            "is_net_amount": false,
142            "currency": "pln",
143            "tax_behavior": "inclusive",
144            "tax_rate": null,
145            "active_days": null,
146            "interval_count": null,
147            "interval": null,
148            "active_cycles": null,
149            "trial_period_days": null,
150            "discount_code_id": 50002,
151            "discount_amount_off": 10000,
152            "discount_percent_off": null,
153            "discount_duration": {
154                "type": "once",
155                "until": null
156            },
157            "human_interval": "",
158            "url": "https://app.example.com/cross-sell/00000000-0000-0000-0000-000000000003/00000000-0000-0000-0000-000000000001"
159        }
160    ],
161    "ref": null
162}

Webhook po wygaśnięciu subskrypcji

Zdarzenie wysyłane w chwili gdy subskrypcja przestaje być aktywna w wyniku jej anulowania przez klienta lub ręcznego anulowania w panelu Stripe lub w sytuacji gdy nie udało się pobrać opłaty określoną liczbę razy. Jest to moment w którym dostęp do produktu powinien zostać wyłączony.

See on GitHub

Webhook po poprawnym pobraniu pieniędzy za kolejny okres rozliczeniowy

Po pobraniu opłaty za okres rozliczeniowy, wysyłane jest zdarzenie zawierające poniższe dane.

  • Właściwość amount_paid to pobrana kwota w PLN - na tę kwotę należy wystawić fakturę
  • Dane do faktury znajdują się we właściwości invoice_data (która może być wartością null w przypadku ich braku)
1{
2    "event": "subscription_renewed",
3    "timestamp": 1741442223,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": true,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": 39,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": "pi_XXXXXXXXXXXXX",
18    "lang": "pl",
19    "customer_name": "Robert Jones",
20    "customer_first_name": "Robert",
21    "customer_last_name": "Jones",
22    "customer_email": "robert.jones@example.com",
23    "customer_id": 100003,
24    "customer_stripe_id": "cus_ZZZZZZZZZZZZZZ",
25    "order_id": 500003,
26    "order_uuid": "00000000-0000-4000-a000-000000000003",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 0,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "12345678",
38    "invoice_vat_rate": 23,
39    "invoice_flat_rate": 8.5,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": {
48        "first_name": "Robert",
49        "last_name": "Jones",
50        "phone": null,
51        "address": "Main Street 123",
52        "post_code": "00-000",
53        "city": "Sample City",
54        "country_code": null
55    },
56    "delivery": null,
57    "payment_method": "card",
58    "promo_code": null,
59    "product_id": "prod_AAAAAAAAAAAA",
60    "product_name": "Regular Access",
61    "product_description": "This subscription provides all the tools you need. One subscription - three services with special pricing!",
62    "product_file": null,
63    "price_id": "price_AAAAAAAAAAAA",
64    "price_custom_id": null,
65    "price_name": "",
66    "price_description": null,
67    "subscription_id": 90001,
68    "subscription_stripe_id": "sub_AAAAAAAAAAAA",
69    "subscription_plan_custom_id": null,
70    "subscription_plan_name": null,
71    "subscription_price_name": "",
72    "subscription_plan_price": 39,
73    "subscription_current_period_start": "2025-03-08T13:55:44+01:00",
74    "subscription_current_period_end": "2025-04-08T14:55:44+02:00",
75    "subscription_onetime": false,
76    "tenant_email": "admin@example.com",
77    "tenant_name": "Service Provider",
78    "tenant_slug": "service",
79    "custom_fields": null,
80    "custom_params": {},
81    "custom_email": {
82        "heading": null,
83        "content": null
84    },
85    "cross_sells": [],
86    "ref": null
87}

Webhook przy nieudanej próbie pobrania pieniędzy za kolejny okres rozliczeniowy

W przypadku nieudanej próby pobrania pieniędzy za okres rozliczeniowy. Właściwość error_message zawiera informację o błędzie.

1{
2    "event": "subscription_renewal_failed",
3    "timestamp": 1741441970,
4    "success": false,
5    "is_subscription": true,
6    "is_renew": true,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": "do_not_honor",
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": "2025-03-09T13:52:44+01:00",
17    "invoice_stripe_id": "in_XXXXXXXXXXXXX",
18    "lang": "pl",
19    "customer_name": "Emily Brown",
20    "customer_first_name": "Emily",
21    "customer_last_name": "Brown",
22    "customer_email": "emily.brown@example.com",
23    "customer_id": 100005,
24    "customer_stripe_id": "cus_CCCCCCCCCCCCC",
25    "order_id": 500005,
26    "order_uuid": "00000000-0000-4000-a000-000000000005",
27    "order_delegated": true,
28    "order_assign_url": null,
29    "order_amount": 24.6,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "demo",
38    "invoice_vat_rate": "23",
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": null,
48    "delivery": null,
49    "payment_method": "card",
50    "promo_code": null,
51    "product_id": "prod_CCCCCCCCCCCC",
52    "product_name": "Calendar App",
53    "product_description": "Subscribe to Calendar App in monthly or yearly plan and forget about scheduling meetings. Net price. VAT will be added after selecting country.",
54    "product_file": null,
55    "price_id": "price_CCCCCCCCCCCC",
56    "price_custom_id": "basic-monthly",
57    "price_name": "Monthly Subscription Basic Plan",
58    "price_description": null,
59    "subscription_id": 90003,
60    "subscription_stripe_id": "sub_CCCCCCCCCCCC",
61    "subscription_plan_custom_id": "basic-monthly",
62    "subscription_plan_name": null,
63    "subscription_price_name": "Monthly Subscription Basic Plan",
64    "subscription_plan_price": 20,
65    "subscription_current_period_start": "2025-03-08T13:51:52+01:00",
66    "subscription_current_period_end": "2025-04-08T14:51:52+02:00",
67    "subscription_onetime": false,
68    "tenant_email": "hello@example.com",
69    "tenant_name": "calendar",
70    "tenant_slug": "calendar",
71    "custom_fields": null,
72    "custom_params": {},
73    "custom_email": {
74        "heading": null,
75        "content": null
76    },
77    "cross_sells": [],
78    "ref": null
79}

Webhook na X dni przed kolejnym pobraniem pieniędzy

Poniższe dane wysyłane są na webhook na X dni przed kolejnym pobraniem pieniędzy. Właściwość subscription_renews_at wskazuje na datę, kiedy nastąpi najbliższe pobranie opłaty.

Webhook wysyłany jest na podstawie zdarzenia invoice.upcoming od Stripe.
1{
2    "event": "subscription_renewal_upcoming",
3    "timestamp": 1741442558,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": "2025-03-11T16:01:42+01:00",
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "Sarah Wilson",
20    "customer_first_name": "Sarah",
21    "customer_last_name": "Wilson",
22    "customer_email": "sarah.wilson@example.com",
23    "customer_id": 100004,
24    "customer_stripe_id": "cus_BBBBBBBBBBBBBB",
25    "order_id": 500004,
26    "order_uuid": "00000000-0000-4000-a000-000000000004",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 26,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "12345678",
38    "invoice_vat_rate": 23,
39    "invoice_flat_rate": 8.5,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": {
48        "first_name": "Sarah",
49        "last_name": "Wilson",
50        "phone": null,
51        "address": "Central Avenue 42",
52        "post_code": "10-100",
53        "city": "Another City",
54        "country_code": null
55    },
56    "delivery": null,
57    "payment_method": "card",
58    "promo_code": null,
59    "product_id": "prod_BBBBBBBBBBBB",
60    "product_name": "Music Library",
61    "product_description": "This is a streaming service that gives you access to thousands of music tracks with just one click. Now you can have all songs and music backgrounds in one place.",
62    "product_file": null,
63    "price_id": "price_BBBBBBBBBBBB",
64    "price_custom_id": null,
65    "price_name": "1-month (subscription)",
66    "price_description": null,
67    "subscription_id": 90002,
68    "subscription_stripe_id": "sub_BBBBBBBBBBBB",
69    "subscription_plan_custom_id": null,
70    "subscription_plan_name": null,
71    "subscription_price_name": "1-month (subscription)",
72    "subscription_plan_price": 26,
73    "subscription_current_period_start": "2025-02-11T15:01:42+01:00",
74    "subscription_current_period_end": "2025-03-11T15:01:42+01:00",
75    "subscription_onetime": false,
76    "tenant_email": "admin@example.com",
77    "tenant_name": "Music Service",
78    "tenant_slug": "music",
79    "custom_fields": null,
80    "custom_params": {},
81    "custom_email": {
82        "heading": null,
83        "content": null
84    },
85    "cross_sells": [],
86    "ref": null,
87    "next_payment_amount": 26
88}

Webhook na X dni przed zakończeniem trial

Webhook jest identyczny jak powyższy, ale jeżeli właściwość trial_ends_atnie jest równanull, to znaczy, że będzie to pierwsze pobranie.

W Stripe masz możliwość ustawienia ile dni przed pobraniem pierwszej płatności ma zostać wysłane powiadomienie do klienta.

Aby to zrobić:

  1. Przejdź do ustawień w Stripe
  2. W sekcji Prevent failed payments wybierz odpowiednią liczbę dni
1{
2    "event": "subscription_renewal_upcoming",
3    "timestamp": 1741442558,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": "2025-03-11T16:01:42+01:00",
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "Sarah Wilson",
20    "customer_first_name": "Sarah",
21    "customer_last_name": "Wilson",
22    "customer_email": "sarah.wilson@example.com",
23    "customer_id": 100004,
24    "customer_stripe_id": "cus_BBBBBBBBBBBBBB",
25    "order_id": 500004,
26    "order_uuid": "00000000-0000-4000-a000-000000000004",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 26,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "12345678",
38    "invoice_vat_rate": 23,
39    "invoice_flat_rate": 8.5,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": {
48        "first_name": "Sarah",
49        "last_name": "Wilson",
50        "phone": null,
51        "address": "Central Avenue 42",
52        "post_code": "10-100",
53        "city": "Another City",
54        "country_code": null
55    },
56    "delivery": null,
57    "payment_method": "card",
58    "promo_code": null,
59    "product_id": "prod_BBBBBBBBBBBB",
60    "product_name": "Music Library",
61    "product_description": "This is a streaming service that gives you access to thousands of music tracks with just one click. Now you can have all songs and music backgrounds in one place.",
62    "product_file": null,
63    "price_id": "price_BBBBBBBBBBBB",
64    "price_custom_id": null,
65    "price_name": "1-month (subscription)",
66    "price_description": null,
67    "subscription_id": 90002,
68    "subscription_stripe_id": "sub_BBBBBBBBBBBB",
69    "subscription_plan_custom_id": null,
70    "subscription_plan_name": null,
71    "subscription_price_name": "1-month (subscription)",
72    "subscription_plan_price": 26,
73    "subscription_current_period_start": "2025-02-11T15:01:42+01:00",
74    "subscription_current_period_end": "2025-03-11T15:01:42+01:00",
75    "subscription_onetime": false,
76    "tenant_email": "admin@example.com",
77    "tenant_name": "Music Service",
78    "tenant_slug": "music",
79    "custom_fields": null,
80    "custom_params": {},
81    "custom_email": {
82        "heading": null,
83        "content": null
84    },
85    "cross_sells": [],
86    "ref": null,
87    "next_payment_amount": 26
88}

Webhook po udanym wznowieniu subskrypcji

1{
2    "event": "subscription_resumed",
3    "timestamp": 1741395873,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": false,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "Anna Johnson",
20    "customer_first_name": "Anna",
21    "customer_last_name": "Johnson",
22    "customer_email": "anna.johnson@example.com",
23    "customer_id": 100002,
24    "customer_stripe_id": "cus_YYYYYYYYYYYYYYYY",
25    "order_id": 500002,
26    "order_uuid": "00000000-0000-4000-a000-000000000002",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 99,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "12345678",
38    "invoice_vat_rate": 23,
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": {
48        "first_name": "Anna",
49        "last_name": "Johnson",
50        "phone": "+48000000000",
51        "address": null,
52        "post_code": null,
53        "city": null,
54        "country_code": null
55    },
56    "delivery": null,
57    "payment_method": "paymentRequest",
58    "promo_code": null,
59    "product_id": "prod_YYYYYYYYYYYY",
60    "product_name": "Premium Subscription",
61    "product_description": "This is a sample subscription product with various features and benefits for the subscriber. It includes access to premium content and other services.",
62    "product_file": null,
63    "price_id": "price_YYYYYYYYYYYY",
64    "price_custom_id": null,
65    "price_name": "Monthly Membership",
66    "price_description": null,
67    "subscription_id": 90000,
68    "subscription_stripe_id": "sub_ZZZZZZZZZZZZZZ",
69    "subscription_plan_custom_id": null,
70    "subscription_plan_name": null,
71    "subscription_price_name": "Monthly Membership",
72    "subscription_plan_price": 99,
73    "subscription_current_period_start": "2025-02-28T19:59:22+01:00",
74    "subscription_current_period_end": "2025-03-31T20:59:22+02:00",
75    "subscription_onetime": false,
76    "tenant_email": "contact@example.com",
77    "tenant_name": "Premium Service",
78    "tenant_slug": "premium",
79    "custom_fields": null,
80    "custom_params": {},
81    "custom_email": {
82        "heading": "Order Summary",
83        "content": "<p><strong>Thank you for your purchase!</strong> We're excited to have you as a member.</p>\n<p>Below is your order summary and access to manage your subscription.</p>\n<p>Remember that your subscription will <strong>automatically renew each month.</strong> You can cancel anytime. If you have any questions, just reach out to us!</p>\n<p><strong>Click here to access your account and get started!</strong></p>\n"
84    },
85    "cross_sells": [],
86    "ref": null
87}

Webhook po usunięciu subskrypcji

1{
2    "event": "subscription_deleted",
3    "timestamp": 1741441453,
4    "success": true,
5    "is_subscription": true,
6    "is_renew": false,
7    "is_new": false,
8    "last_chance": false,
9    "error_message": null,
10    "trial_ends_at": null,
11    "subscription_renews_at": null,
12    "subscription_canceled": false,
13    "subscription_expired": true,
14    "subscription_new_plan_name": null,
15    "amount_paid": null,
16    "next_payment_attempt": null,
17    "invoice_stripe_id": null,
18    "lang": "pl",
19    "customer_name": "Jessica Taylor",
20    "customer_first_name": "Jessica",
21    "customer_last_name": "Taylor",
22    "customer_email": "jessica.taylor@example.com",
23    "customer_id": 100007,
24    "customer_stripe_id": "cus_EEEEEEEEEEEEE",
25    "order_id": 500007,
26    "order_uuid": "00000000-0000-4000-a000-000000000007",
27    "order_delegated": false,
28    "order_assign_url": null,
29    "order_amount": 199,
30    "order_has_invoice": false,
31    "recovered_checkout_session": null,
32    "currency": "pln",
33    "quantity": 1,
34    "qr_code_image": null,
35    "qr_code_info": null,
36    "invoice_data": null,
37    "invoice_api_scope": "12345678",
38    "invoice_vat_rate": "23",
39    "invoice_flat_rate": null,
40    "invoice_gtu_code": null,
41    "invoice_remarks": null,
42    "checkboxes": {
43        "newsletter": false,
44        "mandatory": false,
45        "optional": false
46    },
47    "shipping": null,
48    "delivery": null,
49    "payment_method": "card",
50    "promo_code": null,
51    "product_id": "prod_EEEEEEEEEEEE",
52    "product_name": "PRO",
53    "product_description": null,
54    "product_file": null,
55    "price_id": "price_EEEEEEEEEEEE",
56    "price_custom_id": "planner-15",
57    "price_name": "Card Payment",
58    "price_description": null,
59    "subscription_id": 90005,
60    "subscription_stripe_id": "sub_EEEEEEEEEEEE",
61    "subscription_plan_custom_id": "planner-15",
62    "subscription_plan_name": null,
63    "subscription_price_name": "Card Payment",
64    "subscription_plan_price": 199,
65    "subscription_current_period_start": "2024-05-10T21:05:29+02:00",
66    "subscription_current_period_end": "2024-06-10T21:05:29+02:00",
67    "subscription_onetime": false,
68    "tenant_email": "info@example.com",
69    "tenant_name": "Planning App",
70    "tenant_slug": "planning",
71    "custom_fields": null,
72    "custom_params": {},
73    "custom_email": {
74        "heading": null,
75        "content": null
76    },
77    "cross_sells": [],
78    "ref": null
79}

Webhook po modyfikacji danych klienta

1{
2    "event": "customer_data_changed",
3    "timestamp": 1741440113,
4    "data": {
5        "previous": {
6            "customer_name": "Alice Brown",
7            "customer_email": "alice.b@example.com"
8        },
9        "current": {
10            "customer_name": "Alice Smith-Brown",
11            "customer_email": "alice.b@example.com"
12        }
13    }
14}
15
Zacznij korzystać z Easycart
Zacznij korzystać z Easycart
Opłaty i metody płatności
Opłaty i metody płatności
Migracja z innych narzędzi
Migracja z innych narzędzi
Koszyk
Koszyk
Ceny
Ceny
Po zakupie
Po zakupie
Pliki cyfrowe do pobrania
Pliki cyfrowe do pobrania
Ratowanie koszyków
Ratowanie koszyków
Zniżki i oferty specjalne
Zniżki i oferty specjalne
Zasady, RODO, Podatki
Zasady, RODO, Podatki
Partnerzy
Partnerzy
Analityka i reklamy
Analityka i reklamy
Lista oczekujących
Lista oczekujących
Automatyzacje i integracje
Automatyzacje i integracje
Zamówienia i klienci
Zamówienia i klienci
Webhooki
Webhooki
API
API
Strony z ofertą z Easyoffer
Strony z ofertą z Easyoffer
Opinie z Easylove
Opinie z Easylove
Strony prawne z Easylegal
Strony prawne z Easylegal
Kursy wideo z Easyplayer
Kursy wideo z Easyplayer
Powiadomienia o cookie z Easycookie
Powiadomienia o cookie z Easycookie
Darowizny z Easycoffee
Darowizny z Easycoffee
Strony FAQ z Easyfaq
Strony FAQ z Easyfaq
Liczniki czasu z Easytimer
Liczniki czasu z Easytimer