




Have any questions? We’re here to help You
Makini maintains a comprehensive data model built from analyzing thousands of industrial systems. When data flows through Makini, we automatically transform it from the source system's format into our standardized structure. For example, purchase orders from SAP, NetSuite, and Dynamics all return with consistent field names, data types, and structures. This normalization happens in real-time as data passes through the API. You also have access to raw data if needed for specific use cases. The unified model covers common entities like purchase orders, work orders, inventory items, vendors, and assets, with extensive field coverage across systems.
All Makini webhooks include a signature header for verification. The signature is an HMAC hash of the webhook payload using your webhook secret as the key. To verify a webhook, compute the HMAC using your secret and compare it to the signature header using constant-time comparison to avoid timing attacks. Never process webhook data without verification, as this could expose your system to forged requests. Your webhook secret is provided when you configure webhooks and should be stored securely. Webhook verification ensures that only legitimate requests from Makini are processed by your application.
Makini uses standard HTTP status codes and structured error responses. Error responses include an error code (e.g., `AUTHENTICATION_FAILED`, `RATE_LIMIT_EXCEEDED`), error type for categorization, a human-readable error message, and a unique request ID for support inquiries. Common status codes include 400 for invalid requests, 401 for authentication failures, 403 for permission issues, 429 for rate limiting, 500 for server errors, and 503 for service unavailability. Use the error code for programmatic error handling rather than parsing error messages. The request ID helps our support team quickly identify and investigate specific issues.
Makini provides sandbox connections for testing without affecting production systems. Sandbox connections include sample data representing common scenarios: standard purchase orders, orders with custom fields, orders in various states (draft, approved, completed), and error cases like invalid vendors or out-of-stock items. Sandbox data is read-only for safety—write operations return success responses without modifying data. This allows thorough testing of your integration logic without risk. For testing with specific systems, we recommend using dedicated test instances of the actual systems (like SAP sandbox environments) connected through Makini, which provides the most realistic testing experience.
