Search in documentation
ctrl+4K
Modules
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Solutions

Homologation criteria

Before requesting homologation for the Shipping module, ensure your integration meets all functional and non-functional criteria described on this page.
Critical points:
  • Your application must be fully developed and tested before submission
  • Evaluation covers your entire application, not just API calls
  • Only Professional accounts (CNPJ) are accepted
  • Personal or Student accounts (CPF) will be automatically rejected
Shipping module only integrators:Use this document to validate your implementation before requesting homologation.Multi-module integrators:If your integration also uses the Orders module, refer to Orders homologation criteria in addition to the criteria below.Already certified integrators:While optional, we recommend validating your integration against these criteria to:
  • Ensure ongoing compliance
  • Identify improvement opportunities
  • Anticipate production issues
Your integration must implement the following features to be considered compliant.Implement a robust system for consuming iFood events:
RequirementDetails
Event pollingQuery the /polling endpoint every 30 seconds. Shorter intervals may result in rate limiting; longer intervals may cause event loss.
AcknowledgmentSend /acknowledgment immediately after processing each event. Failing to acknowledge events can cause reprocessing.
DeduplicationImplement logic to identify and discard duplicate events received during polling. Use eventId as the unique identifier.
Why this is critical: The event system is the primary communication channel between platforms. Failures in this integration result in inconsistent orders.Your integration must process immediate On Demand orders with the following parameters:
orderType=DELIVERY
orderTiming=IMMEDIATE
salesChannel=POS

Order confirmation

  • Receive confirmation requests for immediate delivery orders
  • Confirm within the integrator's system
  • Validate delivery data before confirming

Order cancellation

You must implement the following steps:
  1. Consume cancellation reasons via /cancellationReasons
  2. Display dynamic list of reasons in POS system
  3. Allow user selection before processing cancellation
  4. Send selected reason in the cancellation request
Important: You cannot hardcode cancellation reasons. API-returned codes must be consumed dynamically.

Status synchronization

Your integration must react to the following status change events:
  • Orders cancelled by customer (iFood app user)
  • Orders cancelled by iFood (operational restrictions)
  • Orders confirmed/cancelled by third parties (e.g., Order Manager, iFood Dashboard)
Update the integrator's status to maintain consistency with the platform.Implement the ability to:
  • Accept address change requests (when feasible)
  • Reject requests (when unable to fulfill)
  • Respect timeframes set by iFood for response
Address changes are critical to delivery operations. Respond promptly.Implement collection code validation in two stages:
  1. Verify presence of pickupCode in the order
  2. Validate confirmation by driver before marking as picked up
The collection code is essential for delivery operation security.
These requirements ensure your integration is reliable, secure, and operational in production.Token renewal:
  • Renew tokens before expiration (recommended: 5 minutes before expiry)
  • Implement automatic refresh without manual intervention
  • Avoid unnecessary renewals (causes latency increase)
Rate limiting:
  • Respect request limits documented for each endpoint
  • Implement request queue for traffic spikes
  • Monitor 429 Too Many Requests status code and apply backoff
Error handling:
  • Implement retry with exponential backoff for transient failures (5xx, timeout)
  • Use 2x multiplier with random jitter (e.g., 1s, 2s, 4s, 8s)
  • Maximum 3-5 attempts per request
  • Log all attempts
Idempotency:
  • Use idempotency-key in state-altering operations (cancellations, confirmations)
  • Implement client-side deduplication
Logging:
  • Log all critical operations (confirmation, cancellation, synchronization)
  • Include orderId, eventId, timestamp, and operation status
  • Retain logs for minimum 30 days
Alerts:
  • Implement alerts for:
    • Consecutive polling failures (e.g., 5 consecutive failures)
    • Abnormal endpoint response delay (> 30s)
    • Error rate above threshold (e.g., > 5%)
    • Missing token renewal
Monitoring:
  • Track success rate of critical operations
  • Monitor end-to-end latency (request to processing)
  • Measure polling response time
Before submitting, validate:
  • Application fully developed (no "TODO" or in-progress features)
  • Integrator's account is Professional (CNPJ)
  • Test environment configured with valid credentials
  • Codebase in version control
Run the complete test suite:
  • Events: Polling works every 30s; acknowledgment sent correctly
  • Orders: Confirmation, cancellation, and synchronization work
  • Addresses: Acceptance/rejection of changes processed
  • Collection codes: Validation with driver confirmation
  • Errors: Retry with exponential backoff; complete logging
  • Edge cases: Duplicate events, timeouts, rate limiting
Tip: Use automated test scripts to validate each scenario.Prepare documentation for submission:
  1. Describe your solution and how it meets each criterion
  2. Provide log examples showing critical operations
  3. Share reliability metrics (success rate, latency)
  4. Note any deviations from requirements with justification
The iFood homologation team will:
  • Review code and architecture (when applicable)
  • Execute integration tests in a controlled environment
  • Provide feedback within 5 business days
  • Request corrections or improvements, if needed
After approval, you will receive:
  • Formal homologation confirmation
  • Production credentials
  • Go-live documentation

Ready to get started?
  1. Review the complete technical documentation
  2. Consult integration examples
  3. Explore the API reference
Questions?After approval:
  1. Migrate test credentials to production
  2. Configure continuous monitoring in production
  3. Establish internal technical support SLA
  4. Test roll-out with small volume before scaling
Was this page helpful?
Rate your experience in the new Developer portal: