Getting Started
Duty Pro enables logistics companies and merchants to manage customs duties, tariffs, and ancillary fees for cross-border shipments. The platform calculates fees, communicates charges to end-customers (consignees), collects payments securely, and relays status data back to your systems.
How it works
Section titled “How it works”- You submit a shipment via the API with item details, origin, destination, and consignee contact information.
- Duty Pro resolves HS codes, calculates duties and taxes using Exelot’s tariff database, and applies your configured additional fees.
- The consignee receives an email and/or SMS with a payment link.
- The consignee pays on a branded payment page.
- Duty Pro relays status updates back to your systems via webhook or SFTP.
Key concepts
Section titled “Key concepts”| Term | Definition |
|---|---|
| Brand | A customer-facing identity under your organization. Each brand has its own visual identity, fee schedule, payment configuration, and communication preferences. You can have multiple brands. |
| Shipment | A cross-border package submitted via API for fee calculation. Belongs to a brand. |
| Consignee | The individual receiving a shipment and paying customs fees via the payment page. |
| HS Code | Harmonized System code used internationally to classify traded products for customs purposes. If you don’t provide one, Duty Pro classifies the item automatically. |
Quick start
Section titled “Quick start”1. Get your API key
Section titled “1. Get your API key”Log in to the Duty Pro dashboard and navigate to Settings > API Keys. Generate a test key (dp_test_...) to start experimenting without real charges or notifications.
2. Create your first shipment
Section titled “2. Create your first shipment”curl -X POST https://api.dutypro.exelot.com/api/shipments/ \ -H "Content-Type: application/json" \ -H "X-API-Key: dp_test_YOUR_KEY_HERE" \ -d '{ "brand_id": "my-brand", "currency": "USD", "items": [ { "description": "Leather handbag", "declared_value": 150.00, "currency": "USD", "country_of_origin": "CN", "quantity": 1 } ], "reference": "ORD-2026-00123", "consignee_name": "Jane Smith", "consignee_email": "jane@example.com", "consignee_city": "London", "consignee_zip": "SW1A 2AA", "consignee_country": "GB", "sender_name": "Acme Corp", "sender_city": "New York", "sender_zip": "10001", "sender_country": "US" }'3. Review the response
Section titled “3. Review the response”The API returns a 201 Created response with the full fee breakdown, resolved HS codes, and a payment link for the consignee.
{ "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "brand_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "brand_slug": "my-brand", "reference": "ORD-2026-00123", "is_test": true, "currency": "USD", "total_duties": 22.50, "total_taxes": 30.00, "total_additional_fees": 5.00, "total_amount": 57.50, "payment_status": "PENDING", "created": "2026-04-09T12:00:00Z", "items": [ { "description": "Leather handbag", "description_resolved": "Handbags with outer surface of leather", "hs_code": null, "hs_code_resolved": "4202.21", "hs_code_resolved_import": "4202.21.6000", "hs_code_resolved_export": "4202.21", "country_of_origin": "CN", "declared_value": 150.00, "currency": "USD", "quantity": 1, "total_value": 150.00, "duty_amount": 22.50, "tax_amount": 30.00 } ], "fees": [ { "fee_type": "CONSTANT", "display_name": "Processing Fee", "amount": 5.00, "original_amount": 5.00, "original_currency": "USD", "is_visible": true } ], "payment_link": "https://pay.dutypro.exelot.com/abc123def456/pay"}Next steps
Section titled “Next steps”- Authentication — Learn about API key management and live vs. test mode.
- Shipment Lifecycle — Understand the full end-to-end flow.
- Fee Configuration — Set up additional fees for your brands.
- API Reference — Full endpoint documentation with request/response schemas.