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

Homologation criteria

Prepare your Merchant API integration for production.
Requirements:
  • Application fully ready for testing
  • Professional account (CNPJ) — Personal/Student accounts (CPF) not accepted
  • Valid access token provided during onboarding
Validate that each endpoint works correctly:
EndpointMethodApproval criteria
/merchantsGETReturns array of stores with id, name, corporateName
/merchants/{merchantId}GETReturns object with operations and complete address
/merchants/{merchantId}/statusGETReturns state (OK/WARNING/CLOSED/ERROR) with validations
/merchants/{merchantId}/interruptionsGETReturns empty array or active interruptions
/merchants/{merchantId}/interruptionsPOSTCreates pause with id, start, end and returns 201
/merchants/{merchantId}/interruptions/{id}DELETERemoves pause and returns 204 with no content
/merchants/{merchantId}/opening-hoursGETReturns array of shifts with dayOfWeek, start, duration
/merchants/{merchantId}/opening-hoursPUTUpdates hours and returns 201 with created shifts
Test: Request without token Expected: 401 Unauthorized with clear message Pass: Error returned with code 401Test: Invalid token Expected: 401 Unauthorized Pass: Error returned with code 401Test: Valid token Expected: 200 with store data Pass: Successful responseTest: GET /merchants without parameters Expected: Array with all stores Pass: Minimum 1 store returned with valid idTest: GET /merchants?page=1&size=10 Expected: Maximum 10 stores per page Pass: Response contains up to 10 storesTest: GET /merchants/{merchantId}/status with OPEN store Expected: state: OK or WARNING with available: true Pass: is-connected validation returns OKTest: GET /merchants/{merchantId}/status with CLOSED store Expected: state: CLOSED with available: false Pass: opening-hours validation returns CLOSEDTest: Create valid pause with POST /interruptions Expected: Response 201 with ID of created pause Pass: Pause appears in GET /interruptionsTest: Create overlapping pause Expected: 409 InterruptionOverlap Pass: Error returnedTest: Remove pause with DELETE /interruptions/{id} Expected: Response 204 (no content) Pass: Pause no longer appears in listingTest: Query hours with GET /opening-hours Expected: Array of configured shifts Pass: Each shift has dayOfWeek, start, durationTest: Update hours with multiple shifts Expected: Response 201 with created shifts Pass: GET /opening-hours returns new valuesTest: Try overlapping shifts Expected: 400 BadRequest Pass: Error returned
Verify error responses for:
CodeScenarioCheck
400Invalid parametersBody includes code and message
401Invalid/expired tokenClear message about authentication
403No access to storeError indicates insufficient permission
409Resource conflictSpecific code (ex: InterruptionOverlap)
429Rate limitRetry-After header present
500Server errorGeneric message, no details exposed
  • Implement retry with exponential backoff for 5xx errors
  • Respect 1000 requests per second limit
  • Use minimum 30-second polling for status
  • Validate tokens before using in production
  • Test in homologation environment before going live
Was this page helpful?
Rate your experience in the new Developer portal: