Getting started overview
Integrating with CTS (CTSI) for freight audit, payment, and transportation management involves a structured, consultative process due to the enterprise nature of their services. Unlike self-service API platforms, CTS emphasizes direct engagement to configure solutions that align with specific organizational supply chain requirements. This initial phase focuses on understanding your operational needs, existing systems (such as Enterprise Resource Planning (ERP) or Warehouse Management Systems (WMS)), and desired data flows.
The primary goal during the getting started phase is to establish secure and efficient data exchange mechanisms between your internal systems and the CTS platform. This often involves defining custom integration points, data formats, and communication protocols rather than consuming a generic public API. CTS solutions are designed to integrate deeply into existing financial and logistics workflows to optimize global freight expenses and provide supply chain visibility.
Quick Reference: CTS Onboarding Steps
| Step | What to Do | Where |
|---|---|---|
| 1. Initial Contact | Reach out to CTS to discuss your freight management needs. | CTS Contact Us page |
| 2. Needs Assessment | Collaborate with CTS specialists to define integration scope, data requirements, and system compatibility. | Direct consultation with CTS team |
| 3. Solution Design | Work with CTS to design the specific integration architecture and data exchange methods. | CTS technical and consulting teams |
| 4. Credential Provisioning | Receive necessary access keys, API endpoints, or SFTP credentials for secure data transfer. | Provided directly by CTS after solution design |
| 5. Integration Development | Implement the agreed-upon data exchange logic within your systems. | Your internal development environment |
| 6. Testing & Validation | Conduct thorough testing of data transfers and system functionality. | CTS staging environment / joint testing |
| 7. Go-Live | Transition the integrated solution to production. | Production environment |
Create an account and get keys
Access to CTS services and integration capabilities begins with establishing a direct business relationship. CTS does not offer a self-service sign-up portal for immediate API key generation. Instead, the process is initiated by contacting their sales or solutions team to discuss your specific requirements. This consultation helps CTS understand the scale of your operations, the complexity of your supply chain, and the particular freight audit, payment, or transportation management services you require.
Once a service agreement is in place and the integration strategy has been defined, CTS will provision the necessary credentials. These credentials are not generic API keys found in a developer dashboard. Depending on the agreed-upon integration method, they may include:
- Secure File Transfer Protocol (SFTP) credentials: For exchanging flat files (e.g., CSV, XML) containing shipping data, invoices, or payment instructions. SFTP is a common method for secure data transfer in enterprise integrations, as described in Microsoft's SFTP support documentation.
- Web service endpoints and authentication tokens: If a custom web service integration is designed, CTS will provide specific endpoint URLs and authentication mechanisms (e.g., OAuth 2.0 tokens, API keys for custom endpoints, or certificate-based authentication). For general information on securing APIs, refer to OAuth 2.0 specifications.
- Direct database connection details: In highly customized enterprise scenarios, direct database integration might be considered, though less common for external partners due to security considerations.
The provisioning of these keys and access details is a secure, direct communication process between CTS and your technical team. It occurs after the solution design phase, ensuring that the credentials provided are specific to your tailored integration and environment. For details on how CTS's freight audit and payment process works, consult their official services overview.
Your first request
Executing your 'first request' with CTS is contingent on the integration method established during the solution design phase. Since CTS emphasizes custom integrations rather than a public, uniform API, your first request will be an implementation of the agreed-upon data exchange. This typically involves sending or receiving a structured data payload to or from a designated CTS endpoint or SFTP directory.
Scenario 1: SFTP File Exchange
If your integration uses SFTP, your first 'request' would be to securely upload a test file containing sample data, such as a shipment manifest or invoice data. You would use an SFTP client or library in your programming language to connect to the provided SFTP server, authenticate with your credentials, and place the file in the specified inbound directory.
Example (Conceptual Python using paramiko for SFTP):
import paramiko
hostname = 'sftp.your-cts-domain.com'
port = 22
username = 'your_sftp_username'
password = 'your_sftp_password'
local_file_path = 'path/to/your/sample_shipment_data.csv'
remote_file_path = '/inbound/sample_shipment_data.csv'
try:
with paramiko.SSHClient() as client:
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password)
with client.open_sftp() as sftp:
sftp.put(local_file_path, remote_file_path)
print(f"Successfully uploaded {local_file_path} to {remote_file_path}")
except Exception as e:
print(f"SFTP upload failed: {e}")
After uploading, CTS's system would process the file, and you would typically receive a confirmation or status update, possibly through a return file in an outbound SFTP directory or via a separate notification mechanism.
Scenario 2: Custom Web Service Call
If a custom web service (e.g., REST API) integration is designed, your first request would involve making an HTTP call to a specific endpoint. This would require constructing a request body (often JSON or XML) with the required data, including appropriate authentication headers (e.g., an Authorization header with a Bearer token or API key).
Example (Conceptual Python for a REST API call):
import requests
import json
api_endpoint = 'https://api.your-cts-domain.com/v1/shipments'
api_key = 'your_custom_api_key'
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}' # Or 'X-API-Key': api_key
}
payload = {
"shipmentId": "TEST-SHIP-001",
"carrier": "UPS",
"origin": {"city": "Atlanta", "state": "GA", "zip": "30303"},
"destination": {"city": "Chicago", "state": "IL", "zip": "60601"},
"weightKg": 15.5,
"costCurrency": "USD",
"declaredValue": 1000.00
}
try:
response = requests.post(api_endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status() # Raise an exception for HTTP errors (4xx or 5xx)
print("First request successful!")
print("Response:", response.json())
except requests.exceptions.HTTPError as errh:
print(f"HTTP Error: {errh}")
except requests.exceptions.ConnectionError as errc:
print(f"Error Connecting: {errc}")
except requests.exceptions.Timeout as errt:
print(f"Timeout Error: {errt}")
except requests.exceptions.RequestException as err:
print(f"Something went wrong: {err}")
The structure of the payload and the expected response will be detailed in the specific integration documentation provided by CTS for your project.
Common next steps
After successfully making your first integration call or file transfer, the subsequent steps focus on expanding functionality, ensuring data quality, and optimizing the integration for production use:
- Expand Data Scope: Integrate additional data points relevant to your freight operations, such as detailed line-item costs, accessorial charges, or specific tracking events.
- Implement Bi-directional Data Flow: If applicable, set up mechanisms to receive data back from CTS, such as audit results, payment statuses, or optimized routing suggestions.
- Error Handling and Logging: Develop robust error handling routines to manage failed transfers, invalid data, or API errors. Implement comprehensive logging to monitor integration health and troubleshoot issues.
- Performance Optimization: Optimize the integration for performance, especially for high-volume data exchanges. This might involve batching requests, optimizing file sizes, or leveraging asynchronous processing.
- Security Review: Conduct a thorough security review of your integration to ensure all data transmissions are encrypted and authenticated according to best practices and CTS's requirements. CTS maintains SOC 2 Type II compliance, indicating adherence to strict security standards.
- Monitoring and Alerting: Set up continuous monitoring for your integration, with alerts for failures, delays, or unexpected data patterns.
- User Training: Train internal users on how to interact with the CTS platform and how the integrated data impacts their workflows.
- Regular Reconciliation: Establish processes for regularly reconciling data between your systems and CTS to ensure accuracy and consistency.
Troubleshooting the first call
Troubleshooting an initial integration with CTS often involves addressing common issues related to connectivity, authentication, and data formatting. Given the customized nature of CTS integrations, specific error messages and resolutions will depend on the agreed-upon method (SFTP, custom API, etc.).
General Troubleshooting Steps:
- Verify Credentials: Double-check all usernames, passwords, API keys, or tokens provided by CTS. Ensure there are no typos, leading/trailing spaces, or incorrect casing.
- Check Endpoint/Host: Confirm that the SFTP host or API endpoint URL is correct and accessible from your network. Network firewalls or proxy settings can often block outbound connections. Use tools like
pingorcurl(for HTTP endpoints) to test basic connectivity. - Review Documentation: Refer to the specific integration documentation provided by CTS. This documentation will detail expected data formats, required fields, and specific error codes.
- Examine Logs: Check the logs generated by your integration code. These logs often contain detailed error messages from the underlying libraries (e.g., HTTP client errors, SFTP connection failures).
- Data Format Validation: Ensure your payload (JSON, XML, CSV) strictly adheres to the schema or format specified by CTS. Even minor discrepancies in field names, data types, or required fields can cause rejection. Use validators for JSON or XML if available.
- Authentication Headers: For API integrations, confirm that authentication headers are correctly constructed and included in your requests. Incorrect token types (e.g.,
Bearervs.Basic) or missing headers are common issues. - Error Messages from CTS: If you receive an error response from CTS, carefully read the message. It often contains clues about what went wrong (e.g., "Invalid Shipment ID," "Authentication Failed," "Missing Required Field").
- Contact CTS Support: If you've exhausted self-troubleshooting steps, contact your designated CTS technical support or integration specialist. Provide them with relevant details: your credentials, the exact request you sent (excluding sensitive data), the full error message, and any relevant logs.
For example, if an SFTP connection fails, verify the port (typically 22 for SFTP) and ensure your network allows outbound connections on that port. If an API call returns a 401 Unauthorized error, it almost always points to an issue with your authentication credentials or how they are being presented in the request. A 400 Bad Request or 422 Unprocessable Entity usually indicates an issue with the data payload itself, such as missing required fields or incorrect data types for a web request.