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. Required on every shipment item alongside a product description. |
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", "hs_code": "4202.21", "declared_value": 150.00, "country_of_origin": "CN", "quantity": 1 } ], "reference": "ORD-2026-00123", "consignee": { "name": "Jane Smith", "email": "jane@example.com", "city": "New York", "state": "NY", "zip": "10001", "country": "US" }, "sender": { "name": "Acme Corp", "city": "London", "zip": "SW1A 2AA", "country": "GB" } }'Every item must include both a description and an hs_code. Duty Pro uses the HS code as the basis for tariff lookup and the description to validate and refine the classification for the destination country.
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": "4202.21", "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: API key management and live vs. test mode.
- Shipment Lifecycle: the full end-to-end flow.
- Fee Configuration: set up additional fees for your brands.
- API Reference: full endpoint documentation with request/response schemas.