| title | Troubleshooting |
|---|---|
| description | Frequently asked questions, troubleshooting tips, and community resources for the GLS Action. |
The GLS Action is an integration for the Hercules automation platform that connects to the GLS ShipIT API. It lets you create and manage GLS shipments from within your flows without writing any API code.
The action supports all major GLS shipment types and services, including:
- Standard parcel delivery
- Shop delivery and shop returns
- Exchange shipments
- Delivery at work
- Deposit delivery
- Identity-verified delivery (Ident / IdentPIN)
- Flex delivery, signature, guaranteed 24h
- Tyre service, addressee-only delivery
- Saturday and next-working-day delivery (EXPRESS only)
See Functions for the complete list.
Yes. You need a GLS business account and API access.
Register on the GLS Developer Portal and create an application to obtain client_id and client_secret.
The contact_id is a GLS-assigned identifier linked to your contract.
It is required for some advanced operations (e.g. retrieving end-of-day reports with your account data).
Contact GLS support to request it. It is optional for basic shipment creation.
GLS provides sandbox/test environments for some regions.
Check the GLS Developer Portal for sandbox API endpoint URLs and test credentials.
Update ship_it_api_url and auth_url in your configuration to point to the sandbox endpoints.
Check the following:
HERCULES_AUTH_TOKEN— is it valid and not expired?HERCULES_AQUILA_URL— is the Aquila server reachable from the Docker container?- Docker logs:
docker compose logs -f— look for specific error messages
Saturday delivery (and next-working-day delivery) requires the shipment's Product to be set to "EXPRESS".
Change Product: "PARCEL" to Product: "EXPRESS" in your shipment data.
Use validateShipment first to check your shipment data before creating it.
The validation response includes specific Issues with Rule and Location fields pointing to the problematic field.
See Use Cases — Validate before creating.
No. Once GLS has scanned the parcel at a depot or delivery vehicle, cancellation is no longer possible.
The cancelShipment function will return result: "SCANNED" in that case.
The action supports: PDF, ZEBRA, INTERMEC, DATAMAX, TOSHIBA, PNG. For reprint, additionally PNG_200.
Choose the format that matches your label printer.
Decode CreatedShipment.PrintData[0].Data from base64, then:
- PDF: Save as a
.pdffile and send to a PDF-capable printer - ZPL (ZEBRA): Send the raw ZPL string directly to a Zebra label printer
- PNG: Save as a
.pngfile and print as an image
Yes, use the reprintParcel function with the TrackID and the original CreationDate.
Note that available template sets for reprinting are limited to NONE, ZPL_200, and ZPL_300.
| Error Code | Cause | Resolution |
|---|---|---|
ERROR_CREATING_GLS_SHIPMENT |
API returned an error during shipment creation or management | Check validateShipment output for details |
INVALID_PRODUCT |
Used "PARCEL" product with a service that requires "EXPRESS" |
Set Product: "EXPRESS" in the shipment |
If you cannot resolve your issue with the FAQ above:
- Check the action logs:
docker compose logs -fin the action directory - Check the GLS API status: Visit the GLS Developer Portal for service announcements
- Open an issue on GitHub (see below)
The source code for the GLS Action and all other Centaurus actions is available on GitHub:
🔗 https://github.com/code0-tech/centaurus
Use the GitHub repository to:
- Report bugs: Open an issue
- Request features: Open a discussion or issue with the
enhancementlabel - Ask questions: Use GitHub Discussions
Contributions to Centaurus are welcome! Here is how to get started:
git clone https://github.com/<your-username>/centaurus.git
cd centaurus
npm installUse the scaffolding script to create a new action:
npm run create-action -- my-new-actionThis creates a new directory at actions/my-new-action/ with the standard structure.
- Follow the existing code style (TypeScript, Zod for validation, Hercules SDK patterns)
- Add tests for your changes in
src/index.test.ts - Run the test suite:
npm run test - Run the linter:
npm run lint
Open a pull request against the main branch of code0-tech/centaurus. Include:
- A clear description of what you changed and why
- Test results showing your changes pass
| Command | Description |
|---|---|
npm run build |
Build all actions |
npm run test |
Run the test suite |
npm run test:watch |
Run tests in watch mode |
npm run lint |
Run ESLint |
npm run create-action -- <name> |
Scaffold a new action |