




FinancialForce delivers ERP on Salesforce for professional services organisations, offering project accounting, resource planning, billing, revenue management, and service operations visibility.
Have any questions? We’re here to help You
Connection credits are Makini's billing unit. Each system integration consumes a specific number of credits based on complexity. Systems are divided into three tiers: Tier 1 (simple systems like cloud CMMS), Tier 2 (mid-complexity ERP systems), and Tier 3 (complex systems like SAP). On-premises installations require double the credits of their cloud equivalents. For example, a cloud SAP S4/HANA connection might use 4 credits, while an on-premises SAP ECC installation uses 8 credits. Connection credits are consumed when you establish a connection and are returned to your pool when you disconnect. This allows flexible allocation across customers—you're not locked into specific connections.
Makini's purchase order data model includes comprehensive field coverage across all major ERP systems. Standard fields include order number, line items, vendor information, quantities, unit prices, dates (order date, required date, delivery date), status, currency, ship-to and bill-to addresses, payment terms, and custom fields. Each line item includes product/material codes, descriptions, quantities, unit of measure, pricing, and delivery information. The specific fields available depend on the source system's capabilities. You can view the complete field mapping for any connected system in the Makini dashboard, and custom fields can be added as needed for your specific requirements.
The `RATE_LIMIT_EXCEEDED` error indicates you've exceeded the API rate limit for the connection or account. Rate limits are typically set per connection and per time window (usually per minute). When you hit a rate limit, the response includes a `Retry-After` header indicating when you can retry the request. Implement exponential backoff in your retry logic to avoid immediately hitting the limit again. If you consistently hit rate limits, review your API usage patterns—you may be making unnecessary requests, polling too frequently, or could benefit from webhook-based synchronization. For legitimate high-volume needs, contact us to discuss increasing your rate limits.
Makini uses cursor-based pagination for retrieving large datasets. API responses include a `next_cursor` field when additional results are available. To retrieve the next page, include the cursor value in your next request: `GET /api/v1/purchase-orders?cursor=CURSOR_VALUE`. Cursor-based pagination is more reliable than offset-based pagination because it handles data changes between requests—if records are added or deleted while you're paginating, you won't miss records or see duplicates. Page size is configurable up to a maximum limit (typically 100-500 records per page depending on entity type). For optimal performance, use the largest page size your application can handle efficiently. The API response also includes total count when available from the source system.
