listo-delivery 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- listo_delivery-0.1.0/.gitignore +4 -0
- listo_delivery-0.1.0/LICENSE +21 -0
- listo_delivery-0.1.0/PKG-INFO +193 -0
- listo_delivery-0.1.0/README.md +177 -0
- listo_delivery-0.1.0/listo_delivery/__init__.py +27 -0
- listo_delivery-0.1.0/listo_delivery/_events.py +31 -0
- listo_delivery-0.1.0/listo_delivery/_generated/__init__.py +8 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/account_connection/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/account_connection/create_connect_request.py +284 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/account_connection/create_connection.py +252 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/authentication/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/authentication/ping.py +181 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/balance/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/balance/get_balance.py +326 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/balance/get_store_balance.py +166 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/card_onboarding/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/card_onboarding/create_card_onboarding.py +181 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/card_onboarding/create_store_card_onboarding.py +192 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/card_onboarding/get_card_status.py +155 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/card_onboarding/get_store_card_status.py +178 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/cancel_delivery.py +281 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/create_delivery.py +859 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/get_delivery.py +281 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/list_deliveries.py +333 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/refund_delivery.py +221 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/reschedule_delivery.py +395 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/deliveries/retry_delivery.py +232 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/events/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/events/get_event.py +304 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/events/list_events.py +289 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/events/resend_event.py +427 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/events/send_test_webhook.py +404 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/ledger/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/ledger/list_ledger_entries.py +485 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/ledger/list_store_ledger_entries.py +217 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/quotes/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/quotes/create_quote.py +567 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/request_logs/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/request_logs/get_request_log.py +219 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/request_logs/list_request_logs.py +320 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/cancel_store_plan.py +269 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/create_store.py +532 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/create_store_owner.py +325 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/get_store.py +169 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/list_stores.py +209 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/reactivate_store_plan.py +282 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/undo_store_plan_cancellation.py +211 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/stores/update_store.py +293 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/webhook_deliveries/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/webhook_deliveries/list_webhook_deliveries.py +289 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/withdrawals/__init__.py +1 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/withdrawals/create_withdrawal.py +345 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/withdrawals/get_withdrawal.py +189 -0
- listo_delivery-0.1.0/listo_delivery/_generated/api/withdrawals/list_withdrawals.py +174 -0
- listo_delivery-0.1.0/listo_delivery/_generated/client.py +280 -0
- listo_delivery-0.1.0/listo_delivery/_generated/errors.py +16 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/__init__.py +299 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/balance.py +105 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/balance_currency.py +20 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/cancel_delivery_request.py +74 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/cancel_delivery_request_reason.py +25 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/card_onboarding_link.py +62 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/card_status.py +67 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/card_status_status.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/connect_request.py +71 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/courier_ping.py +118 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/courier_ping_location.py +69 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_connect_request_request.py +81 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_connection_request.py +62 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request.py +275 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request_dropoff.py +116 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request_handoff.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request_payment_method.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request_simulate.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request_vehicle.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_delivery_request_verification.py +62 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_quote_request.py +194 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_quote_request_dropoff.py +91 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_quote_request_payment_method.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_quote_request_vehicle.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_store_owner_request.py +70 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_store_request.py +178 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_store_request_access_tier.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_withdrawal_request.py +145 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_withdrawal_request_kind_type_1.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_withdrawal_request_kind_type_2_type_1.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/create_withdrawal_request_kind_type_3_type_1.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery.py +987 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_cancellation_type_0.py +158 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_cancellation_type_0_party.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_cancellation_type_0_reason_type_1.py +25 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_cancellation_type_0_reason_type_2_type_1.py +25 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_cancellation_type_0_reason_type_3_type_1.py +25 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_charges_item.py +87 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_charges_item_type.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_courier_location_event.py +110 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_courier_location_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_courier_type_0.py +196 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_courier_type_0_location_type_0.py +97 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_courier_type_0_phone_type_0.py +78 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_currency.py +20 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_dropoff.py +145 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_dropoff_handoff.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_failure_reason_type_1.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_failure_reason_type_2_type_1.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_failure_reason_type_3_type_1.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_list.py +98 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_manifest_type_0.py +82 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_manifest_type_0_items_item.py +83 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_manifest_type_0_items_item_size.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_message_skipped.py +96 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_message_skipped_event.py +113 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_message_skipped_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_message_skipped_moment.py +28 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_message_skipped_reason.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_origin.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_payment.py +137 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_payment_method.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_payment_status.py +24 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_pickup.py +114 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_proof_type_0.py +134 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_proofs.py +161 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_proofs_dropoff_type_0.py +136 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_proofs_pickup_type_0.py +96 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_proofs_return_type_0.py +141 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_refunds_item.py +169 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_refunds_item_party.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_refunds_item_requested_via.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_refunds_item_status.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_return_verification.py +79 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_status.py +31 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_status_changed_event.py +120 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_status_changed_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_updated_event.py +120 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_updated_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_vehicle.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/delivery_verification_type_0.py +74 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/error.py +126 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/error_response.py +70 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/event_list.py +222 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/ledger_entry.py +131 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/ledger_entry_list.py +98 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/list_events_type.py +26 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/list_request_logs_status.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/list_webhook_deliveries_status.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/manifest_item.py +148 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/manifest_item_size_type_1.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/manifest_item_size_type_2_type_1.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/manifest_item_size_type_3_type_1.py +23 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/manifest_type_0.py +101 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/owner_invitation.py +71 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/ping.py +87 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/ping_mode.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/ping_partner.py +70 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/quote.py +196 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/quote_currency.py +20 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/quote_vehicle.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/refund_delivery_request.py +71 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/request_log.py +188 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/request_log_detail.py +203 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/request_log_list.py +98 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/reschedule_delivery_request.py +90 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/reschedule_delivery_request_dropoff.py +69 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/same_day_terms.py +239 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/same_day_terms_unavailable_reason_type_1.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/same_day_terms_unavailable_reason_type_2_type_1.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/same_day_terms_unavailable_reason_type_3_type_1.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/send_test_webhook_request.py +64 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/send_test_webhook_request_type.py +26 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store.py +332 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_access_tier.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_balance.py +99 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_balance_billing.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_balance_currency.py +20 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_billing.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_connected_event.py +108 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_connected_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_default_fee_split_mode.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_list.py +98 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_plan_type_0.py +302 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_plan_type_0_paid_by.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_plan_type_0_status.py +24 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_updated_event.py +108 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/store_updated_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/update_store_request.py +192 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/update_store_request_access_tier.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/webhook_delivery.py +189 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/webhook_delivery_event_type.py +26 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/webhook_delivery_list.py +98 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/webhook_event_envelope.py +88 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal.py +221 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal_currency.py +20 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal_kind.py +21 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal_list.py +98 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal_status.py +22 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal_updated_event.py +107 -0
- listo_delivery-0.1.0/listo_delivery/_generated/models/withdrawal_updated_event_type.py +10 -0
- listo_delivery-0.1.0/listo_delivery/_generated/types.py +54 -0
- listo_delivery-0.1.0/listo_delivery/_operation.py +28 -0
- listo_delivery-0.1.0/listo_delivery/_resources.py +722 -0
- listo_delivery-0.1.0/listo_delivery/_version.py +4 -0
- listo_delivery-0.1.0/listo_delivery/client.py +272 -0
- listo_delivery-0.1.0/listo_delivery/errors.py +60 -0
- listo_delivery-0.1.0/listo_delivery/events.py +112 -0
- listo_delivery-0.1.0/listo_delivery/models.py +7 -0
- listo_delivery-0.1.0/listo_delivery/py.typed +0 -0
- listo_delivery-0.1.0/listo_delivery/webhooks.py +129 -0
- listo_delivery-0.1.0/pyproject.toml +38 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Cheto Labs, S.A.P.I. de C.V.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: listo-delivery
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Official Python client for the Listo Delivery API.
|
|
5
|
+
Project-URL: Homepage, https://docs.listo.delivery
|
|
6
|
+
Project-URL: Documentation, https://docs.listo.delivery/en/quickstart
|
|
7
|
+
Project-URL: Changelog, https://docs.listo.delivery/en/changelog
|
|
8
|
+
Project-URL: Source, https://github.com/listo-delivery/listo-python
|
|
9
|
+
Project-URL: Issues, https://github.com/listo-delivery/listo-python/issues
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Requires-Dist: attrs>=23.2
|
|
14
|
+
Requires-Dist: httpx<1,>=0.27
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# listo-delivery (Python)
|
|
18
|
+
|
|
19
|
+
The official Python client for the [Listo Delivery API](https://docs.listo.delivery).
|
|
20
|
+
Models are generated from the published OpenAPI schema, so every response is a typed
|
|
21
|
+
object that matches the schema. Needs Python 3.11 or newer (the generated models
|
|
22
|
+
use `typing.Self` and `StrEnum`); its only dependencies are `httpx` and `attrs`.
|
|
23
|
+
|
|
24
|
+
## Install
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install listo-delivery
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Quickstart
|
|
31
|
+
|
|
32
|
+
Quote a delivery, book it in test mode and check a webhook:
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
import os
|
|
36
|
+
from listo_delivery import Listo
|
|
37
|
+
|
|
38
|
+
listo = Listo(os.environ["LISTO_API_KEY"]) # lst_test_... acts in test mode
|
|
39
|
+
print(listo.mode) # "test"
|
|
40
|
+
|
|
41
|
+
dropoff = {
|
|
42
|
+
"name": "Ana",
|
|
43
|
+
"phone": "+523312345678",
|
|
44
|
+
"street": "Av. Vallarta 1234, Guadalajara",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
quote = listo.quotes.create({"store_id": "st_...", "dropoff": dropoff, "order_value_cents": 25000})
|
|
48
|
+
|
|
49
|
+
delivery = listo.deliveries.create(
|
|
50
|
+
{
|
|
51
|
+
"store_id": "st_...",
|
|
52
|
+
"quote_id": quote.id,
|
|
53
|
+
"external_id": "order-1042",
|
|
54
|
+
"payment_method": "prepaid",
|
|
55
|
+
"order_value_cents": 25000,
|
|
56
|
+
"dropoff": dropoff,
|
|
57
|
+
},
|
|
58
|
+
idempotency_key="order-1042", # key it on your own order id
|
|
59
|
+
)
|
|
60
|
+
print(delivery.id, delivery.status)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The ids are placeholders; the schema is the reference for every field
|
|
64
|
+
(`listo_delivery.models.CreateQuoteRequest`, `CreateDeliveryRequest`).
|
|
65
|
+
|
|
66
|
+
Verify a webhook in your receiver (no API key needed). Pass the body exactly as
|
|
67
|
+
it arrived on the wire, never a parsed and re-serialized one:
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from listo_delivery import ListoError, webhooks
|
|
71
|
+
from listo_delivery.models import DeliveryStatusChangedEvent
|
|
72
|
+
|
|
73
|
+
try:
|
|
74
|
+
event = webhooks.construct_event(
|
|
75
|
+
raw_body, # bytes or str, as received
|
|
76
|
+
headers["X-Listo-Signature"],
|
|
77
|
+
[os.environ["LISTO_WEBHOOK_SECRET"]], # two secrets while rotating
|
|
78
|
+
)
|
|
79
|
+
except ListoError: # invalid_signature or invalid_payload
|
|
80
|
+
... # answer 400
|
|
81
|
+
|
|
82
|
+
if isinstance(event, DeliveryStatusChangedEvent):
|
|
83
|
+
print(event.data.id, event.data.status)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`webhooks.verify(raw_body, header, secrets)` returns a boolean instead of raising,
|
|
87
|
+
and both are also on the client (`listo.webhooks.verify`, `listo.webhooks.construct_event`).
|
|
88
|
+
The rule is the server's own: `t=<unix seconds>,v1=<lowercase hex>` signed over
|
|
89
|
+
`"<t>.<raw body>"` with HMAC-SHA256, a 300 second tolerance in both directions
|
|
90
|
+
(`tolerance=300`, `now=None` are arguments), blank secrets ignored, and `False`
|
|
91
|
+
rather than an exception for anything malformed. An event whose `type` this SDK
|
|
92
|
+
version does not know comes back as `listo_delivery.UnknownEvent` (`id`, `type`,
|
|
93
|
+
`type_`, `created_at`, `data`, `raw`), never as an error, and every event, known or
|
|
94
|
+
not, has `type_`. A known `type` whose body the models cannot read raises `ListoError`
|
|
95
|
+
with `code="invalid_payload"` (a delivery event must never be ignored silently).
|
|
96
|
+
|
|
97
|
+
## Calling convention
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
listo.deliveries.retrieve(delivery_id) # path parameters are positional
|
|
101
|
+
listo.deliveries.cancel(delivery_id, {"reason": "customer_canceled"}) # then the body
|
|
102
|
+
listo.deliveries.list({"status": "delivered"}) # or the query, for a read
|
|
103
|
+
listo.deliveries.create(body, idempotency_key=...) # then keyword options
|
|
104
|
+
listo.ping() # a few calls live on the client itself
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Bodies and queries are plain dicts keyed by the wire names (`order_value_cents`);
|
|
108
|
+
a generated model (anything with `.to_dict()`) is accepted for a body too.
|
|
109
|
+
Responses are the generated attrs models: `delivery.status`, `delivery.to_dict()`.
|
|
110
|
+
A field the server adds later is kept (`delivery["new_field"]`, `to_dict()`), and an
|
|
111
|
+
enum value it adds later parses as a member carrying that string (every enum but an
|
|
112
|
+
event's own `type`, which stays strict so the event union can tell its members apart). Because `type`
|
|
113
|
+
and similar names are Python builtins, the generator spells those attributes with a
|
|
114
|
+
trailing underscore (`event.type_`). Every operation of the API is a method, named after it; the API reference at
|
|
115
|
+
[docs.listo.delivery](https://docs.listo.delivery) lists them all.
|
|
116
|
+
|
|
117
|
+
## Errors
|
|
118
|
+
|
|
119
|
+
Every refusal raises `listo_delivery.ListoError`, built from the API's `error`
|
|
120
|
+
envelope: `code` (the one field to branch on), `message`, `param`, `retryable`,
|
|
121
|
+
`status`, `request_id`, `doc_url` and the raw `body`.
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from listo_delivery import ListoConnectionError, ListoError
|
|
125
|
+
|
|
126
|
+
try:
|
|
127
|
+
listo.deliveries.create(body)
|
|
128
|
+
except ListoConnectionError:
|
|
129
|
+
... # no response arrived; a write may have happened, repeat it with the same idempotency key
|
|
130
|
+
except ListoError as error:
|
|
131
|
+
if error.code == "insufficient_balance": ...
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
A body that is not the envelope (a proxy's HTML page) still raises `ListoError`, with
|
|
135
|
+
`code="http_<status>"`, `message="Unexpected response with status <status>"` and
|
|
136
|
+
`retryable` true for 429, 502, 503 and 504. `ListoConnectionError` (a subclass, code
|
|
137
|
+
`connection_error`, `status=None`, `retryable=False`) covers DNS, refused connections and
|
|
138
|
+
timeouts. A 2xx the SDK cannot read raises `code="invalid_response"` (the Python SDK checks
|
|
139
|
+
required fields, so a response missing one raises it). The API key is
|
|
140
|
+
never part of an error message.
|
|
141
|
+
|
|
142
|
+
## Idempotency
|
|
143
|
+
|
|
144
|
+
The operations whose schema declares the `Idempotency-Key` header (create and refund a
|
|
145
|
+
delivery, create a store, reactivate and cancel a store plan) always send it: yours when
|
|
146
|
+
you pass `idempotency_key=`, otherwise a fresh UUID v4 for that call, reused only by that
|
|
147
|
+
call's own retries. A key that is empty or only whitespace raises `ValueError`, and one
|
|
148
|
+
that is not a `str` raises `TypeError`, both before any request. No other operation
|
|
149
|
+
sends the header.
|
|
150
|
+
|
|
151
|
+
## Pagination
|
|
152
|
+
|
|
153
|
+
List calls return the page as the schema has it: `page.data`, `page.has_more` and
|
|
154
|
+
`page.cursor`. Pass the cursor back for the next page:
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
cursor = None
|
|
158
|
+
while True:
|
|
159
|
+
page = listo.deliveries.list({"cursor": cursor})
|
|
160
|
+
for delivery in page.data:
|
|
161
|
+
handle(delivery)
|
|
162
|
+
if not page.has_more:
|
|
163
|
+
break
|
|
164
|
+
cursor = page.cursor
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
There is no auto-paging iterator in this SDK.
|
|
168
|
+
|
|
169
|
+
## Retries and timeouts
|
|
170
|
+
|
|
171
|
+
Nothing is retried by default. `Listo(key, max_retries=2)` retries a 429, and only a
|
|
172
|
+
429, after its `Retry-After` (seconds or an HTTP date; one second when missing or
|
|
173
|
+
unreadable; at most 60), with the same idempotency key. 5xx answers and network
|
|
174
|
+
errors are never retried for you. `timeout` (seconds, default 30) applies to each request.
|
|
175
|
+
|
|
176
|
+
## Options
|
|
177
|
+
|
|
178
|
+
```python
|
|
179
|
+
Listo(api_key, base_url=None, max_retries=0, timeout=30.0, *, http_client=None)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
`base_url` defaults to `https://api.listo.delivery`. The key must start with `lst_test_` or
|
|
183
|
+
`lst_live_`, and the SDK reads no environment variables. Every request sends
|
|
184
|
+
`User-Agent` and `X-Listo-Client` as `listo-python/<sdk version> api/<API version>`.
|
|
185
|
+
Use the client as a context manager (`with Listo(key) as listo:`) or call `listo.close()`.
|
|
186
|
+
`http_client` takes your own `httpx.Client` (a proxy, a mock transport in your tests).
|
|
187
|
+
|
|
188
|
+
## About this repository
|
|
189
|
+
|
|
190
|
+
This code is generated from Listo's API definition. Issues and questions are
|
|
191
|
+
welcome in this repository. Changes are made upstream by Listo and released
|
|
192
|
+
here, so a pull request cannot be merged as it stands: open an issue and the
|
|
193
|
+
change is made at the source.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# listo-delivery (Python)
|
|
2
|
+
|
|
3
|
+
The official Python client for the [Listo Delivery API](https://docs.listo.delivery).
|
|
4
|
+
Models are generated from the published OpenAPI schema, so every response is a typed
|
|
5
|
+
object that matches the schema. Needs Python 3.11 or newer (the generated models
|
|
6
|
+
use `typing.Self` and `StrEnum`); its only dependencies are `httpx` and `attrs`.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install listo-delivery
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Quickstart
|
|
15
|
+
|
|
16
|
+
Quote a delivery, book it in test mode and check a webhook:
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
import os
|
|
20
|
+
from listo_delivery import Listo
|
|
21
|
+
|
|
22
|
+
listo = Listo(os.environ["LISTO_API_KEY"]) # lst_test_... acts in test mode
|
|
23
|
+
print(listo.mode) # "test"
|
|
24
|
+
|
|
25
|
+
dropoff = {
|
|
26
|
+
"name": "Ana",
|
|
27
|
+
"phone": "+523312345678",
|
|
28
|
+
"street": "Av. Vallarta 1234, Guadalajara",
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
quote = listo.quotes.create({"store_id": "st_...", "dropoff": dropoff, "order_value_cents": 25000})
|
|
32
|
+
|
|
33
|
+
delivery = listo.deliveries.create(
|
|
34
|
+
{
|
|
35
|
+
"store_id": "st_...",
|
|
36
|
+
"quote_id": quote.id,
|
|
37
|
+
"external_id": "order-1042",
|
|
38
|
+
"payment_method": "prepaid",
|
|
39
|
+
"order_value_cents": 25000,
|
|
40
|
+
"dropoff": dropoff,
|
|
41
|
+
},
|
|
42
|
+
idempotency_key="order-1042", # key it on your own order id
|
|
43
|
+
)
|
|
44
|
+
print(delivery.id, delivery.status)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The ids are placeholders; the schema is the reference for every field
|
|
48
|
+
(`listo_delivery.models.CreateQuoteRequest`, `CreateDeliveryRequest`).
|
|
49
|
+
|
|
50
|
+
Verify a webhook in your receiver (no API key needed). Pass the body exactly as
|
|
51
|
+
it arrived on the wire, never a parsed and re-serialized one:
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
from listo_delivery import ListoError, webhooks
|
|
55
|
+
from listo_delivery.models import DeliveryStatusChangedEvent
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
event = webhooks.construct_event(
|
|
59
|
+
raw_body, # bytes or str, as received
|
|
60
|
+
headers["X-Listo-Signature"],
|
|
61
|
+
[os.environ["LISTO_WEBHOOK_SECRET"]], # two secrets while rotating
|
|
62
|
+
)
|
|
63
|
+
except ListoError: # invalid_signature or invalid_payload
|
|
64
|
+
... # answer 400
|
|
65
|
+
|
|
66
|
+
if isinstance(event, DeliveryStatusChangedEvent):
|
|
67
|
+
print(event.data.id, event.data.status)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`webhooks.verify(raw_body, header, secrets)` returns a boolean instead of raising,
|
|
71
|
+
and both are also on the client (`listo.webhooks.verify`, `listo.webhooks.construct_event`).
|
|
72
|
+
The rule is the server's own: `t=<unix seconds>,v1=<lowercase hex>` signed over
|
|
73
|
+
`"<t>.<raw body>"` with HMAC-SHA256, a 300 second tolerance in both directions
|
|
74
|
+
(`tolerance=300`, `now=None` are arguments), blank secrets ignored, and `False`
|
|
75
|
+
rather than an exception for anything malformed. An event whose `type` this SDK
|
|
76
|
+
version does not know comes back as `listo_delivery.UnknownEvent` (`id`, `type`,
|
|
77
|
+
`type_`, `created_at`, `data`, `raw`), never as an error, and every event, known or
|
|
78
|
+
not, has `type_`. A known `type` whose body the models cannot read raises `ListoError`
|
|
79
|
+
with `code="invalid_payload"` (a delivery event must never be ignored silently).
|
|
80
|
+
|
|
81
|
+
## Calling convention
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
listo.deliveries.retrieve(delivery_id) # path parameters are positional
|
|
85
|
+
listo.deliveries.cancel(delivery_id, {"reason": "customer_canceled"}) # then the body
|
|
86
|
+
listo.deliveries.list({"status": "delivered"}) # or the query, for a read
|
|
87
|
+
listo.deliveries.create(body, idempotency_key=...) # then keyword options
|
|
88
|
+
listo.ping() # a few calls live on the client itself
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Bodies and queries are plain dicts keyed by the wire names (`order_value_cents`);
|
|
92
|
+
a generated model (anything with `.to_dict()`) is accepted for a body too.
|
|
93
|
+
Responses are the generated attrs models: `delivery.status`, `delivery.to_dict()`.
|
|
94
|
+
A field the server adds later is kept (`delivery["new_field"]`, `to_dict()`), and an
|
|
95
|
+
enum value it adds later parses as a member carrying that string (every enum but an
|
|
96
|
+
event's own `type`, which stays strict so the event union can tell its members apart). Because `type`
|
|
97
|
+
and similar names are Python builtins, the generator spells those attributes with a
|
|
98
|
+
trailing underscore (`event.type_`). Every operation of the API is a method, named after it; the API reference at
|
|
99
|
+
[docs.listo.delivery](https://docs.listo.delivery) lists them all.
|
|
100
|
+
|
|
101
|
+
## Errors
|
|
102
|
+
|
|
103
|
+
Every refusal raises `listo_delivery.ListoError`, built from the API's `error`
|
|
104
|
+
envelope: `code` (the one field to branch on), `message`, `param`, `retryable`,
|
|
105
|
+
`status`, `request_id`, `doc_url` and the raw `body`.
|
|
106
|
+
|
|
107
|
+
```python
|
|
108
|
+
from listo_delivery import ListoConnectionError, ListoError
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
listo.deliveries.create(body)
|
|
112
|
+
except ListoConnectionError:
|
|
113
|
+
... # no response arrived; a write may have happened, repeat it with the same idempotency key
|
|
114
|
+
except ListoError as error:
|
|
115
|
+
if error.code == "insufficient_balance": ...
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
A body that is not the envelope (a proxy's HTML page) still raises `ListoError`, with
|
|
119
|
+
`code="http_<status>"`, `message="Unexpected response with status <status>"` and
|
|
120
|
+
`retryable` true for 429, 502, 503 and 504. `ListoConnectionError` (a subclass, code
|
|
121
|
+
`connection_error`, `status=None`, `retryable=False`) covers DNS, refused connections and
|
|
122
|
+
timeouts. A 2xx the SDK cannot read raises `code="invalid_response"` (the Python SDK checks
|
|
123
|
+
required fields, so a response missing one raises it). The API key is
|
|
124
|
+
never part of an error message.
|
|
125
|
+
|
|
126
|
+
## Idempotency
|
|
127
|
+
|
|
128
|
+
The operations whose schema declares the `Idempotency-Key` header (create and refund a
|
|
129
|
+
delivery, create a store, reactivate and cancel a store plan) always send it: yours when
|
|
130
|
+
you pass `idempotency_key=`, otherwise a fresh UUID v4 for that call, reused only by that
|
|
131
|
+
call's own retries. A key that is empty or only whitespace raises `ValueError`, and one
|
|
132
|
+
that is not a `str` raises `TypeError`, both before any request. No other operation
|
|
133
|
+
sends the header.
|
|
134
|
+
|
|
135
|
+
## Pagination
|
|
136
|
+
|
|
137
|
+
List calls return the page as the schema has it: `page.data`, `page.has_more` and
|
|
138
|
+
`page.cursor`. Pass the cursor back for the next page:
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
cursor = None
|
|
142
|
+
while True:
|
|
143
|
+
page = listo.deliveries.list({"cursor": cursor})
|
|
144
|
+
for delivery in page.data:
|
|
145
|
+
handle(delivery)
|
|
146
|
+
if not page.has_more:
|
|
147
|
+
break
|
|
148
|
+
cursor = page.cursor
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
There is no auto-paging iterator in this SDK.
|
|
152
|
+
|
|
153
|
+
## Retries and timeouts
|
|
154
|
+
|
|
155
|
+
Nothing is retried by default. `Listo(key, max_retries=2)` retries a 429, and only a
|
|
156
|
+
429, after its `Retry-After` (seconds or an HTTP date; one second when missing or
|
|
157
|
+
unreadable; at most 60), with the same idempotency key. 5xx answers and network
|
|
158
|
+
errors are never retried for you. `timeout` (seconds, default 30) applies to each request.
|
|
159
|
+
|
|
160
|
+
## Options
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
Listo(api_key, base_url=None, max_retries=0, timeout=30.0, *, http_client=None)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
`base_url` defaults to `https://api.listo.delivery`. The key must start with `lst_test_` or
|
|
167
|
+
`lst_live_`, and the SDK reads no environment variables. Every request sends
|
|
168
|
+
`User-Agent` and `X-Listo-Client` as `listo-python/<sdk version> api/<API version>`.
|
|
169
|
+
Use the client as a context manager (`with Listo(key) as listo:`) or call `listo.close()`.
|
|
170
|
+
`http_client` takes your own `httpx.Client` (a proxy, a mock transport in your tests).
|
|
171
|
+
|
|
172
|
+
## About this repository
|
|
173
|
+
|
|
174
|
+
This code is generated from Listo's API definition. Issues and questions are
|
|
175
|
+
welcome in this repository. Changes are made upstream by Listo and released
|
|
176
|
+
here, so a pull request cannot be merged as it stands: open an issue and the
|
|
177
|
+
change is made at the source.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""Official Python client for the Listo Delivery API.
|
|
2
|
+
|
|
3
|
+
from listo_delivery import Listo
|
|
4
|
+
|
|
5
|
+
listo = Listo("lst_test_...")
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from . import models, webhooks
|
|
9
|
+
from ._version import API_VERSION, SDK_VERSION
|
|
10
|
+
from .client import Listo
|
|
11
|
+
from .errors import ListoConnectionError, ListoError, ListoSignatureError
|
|
12
|
+
from .events import UnknownEvent, WebhookEvent
|
|
13
|
+
|
|
14
|
+
__version__ = SDK_VERSION
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"API_VERSION",
|
|
18
|
+
"Listo",
|
|
19
|
+
"ListoConnectionError",
|
|
20
|
+
"ListoError",
|
|
21
|
+
"ListoSignatureError",
|
|
22
|
+
"UnknownEvent",
|
|
23
|
+
"WebhookEvent",
|
|
24
|
+
"__version__",
|
|
25
|
+
"models",
|
|
26
|
+
"webhooks",
|
|
27
|
+
]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated from Listo's API definition. Do not edit.
|
|
2
|
+
|
|
3
|
+
from ._generated.models import (
|
|
4
|
+
DeliveryCourierLocationEvent,
|
|
5
|
+
DeliveryMessageSkippedEvent,
|
|
6
|
+
DeliveryStatusChangedEvent,
|
|
7
|
+
DeliveryUpdatedEvent,
|
|
8
|
+
StoreConnectedEvent,
|
|
9
|
+
StoreUpdatedEvent,
|
|
10
|
+
WithdrawalUpdatedEvent,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
WebhookEvent = (
|
|
14
|
+
DeliveryCourierLocationEvent
|
|
15
|
+
| DeliveryMessageSkippedEvent
|
|
16
|
+
| DeliveryStatusChangedEvent
|
|
17
|
+
| DeliveryUpdatedEvent
|
|
18
|
+
| StoreConnectedEvent
|
|
19
|
+
| StoreUpdatedEvent
|
|
20
|
+
| WithdrawalUpdatedEvent
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
EVENT_TYPES: dict[str, type] = {
|
|
24
|
+
"delivery.courier_location": DeliveryCourierLocationEvent,
|
|
25
|
+
"delivery.message_skipped": DeliveryMessageSkippedEvent,
|
|
26
|
+
"delivery.status_changed": DeliveryStatusChangedEvent,
|
|
27
|
+
"delivery.updated": DeliveryUpdatedEvent,
|
|
28
|
+
"store.connected": StoreConnectedEvent,
|
|
29
|
+
"store.updated": StoreUpdatedEvent,
|
|
30
|
+
"withdrawal.updated": WithdrawalUpdatedEvent,
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Contains methods for accessing the API"""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Contains endpoint functions for accessing the API"""
|