Skip to main content
Get up and running with the Zupy Partner API in 4 steps.
Estimated Time: Under 15 minutes

Prerequisites

  • Your API key (format: zupy_pk_*) — provided by the Zupy team during onboarding
  • The company ID for the restaurant you’re integrating with
  • Your integration slug (e.g., repediu) for webhook URLs
Don’t have credentials yet? Contact webmaster@zupy.com.br to start the onboarding process.

Step 1: Verify Your API Key

Test your credentials with a simple customer search:
Phone format: The phone parameter accepts digits only (e.g., 5511987654321). The API normalizes all phone numbers to E.164 format (+5511987654321) internally, so any input format will match the same customer.
If your key is valid, you receive a 200 response (even if no customers match):
If your key is invalid, you receive a 401 error in RFC 7807 format:

Step 2: Send a Test Webhook

Send order data to Zupy. Replace {partner} with your integration slug (e.g., repediu). The webhook accepts any JSON payload — Zupy stores it raw and processes it asynchronously using a partner-specific adapter. During onboarding, the Zupy team will map your payload format. For new integrations, use this standard catch-all format:
Already have your own payload format? Send it as-is — Zupy accepts any JSON. During onboarding, the Zupy team will create a mapper for your specific field names, just like we did for Repediu, Saipos, and other partners.
Success response (campos na raiz):
The webhook is processed asynchronously. You receive an immediate 200 with "status": "received". Orders are processed in a background queue (typically within seconds).
Idempotency: Sending the same payload twice returns "status": "duplicate" — no error, no double-processing. Zupy computes a SHA-256 hash of the request body to detect duplicates.

Step 3: Look Up the Customer

After the webhook processes (typically within seconds), search for the customer:
Response (campos na raiz):

Step 4: Check Points Balance

Response (campos na raiz):

You’re Integrated!

You’ve successfully verified your API key, sent order data via webhook, looked up a customer, and checked their points balance.

Field Glossary — balances and identifiers

To save you the time we spent figuring this out the first time, here are the partner-visible naming conventions in one table:

Balance fields

Coupon identifiers

See Coupon Lifecycle § Two identifiers, one coupon for the full rationale.

Error Handling

All errors use the RFC 7807 Problem Details format:
Common errors you may encounter:
When you receive a 429 response, wait for the Retry-After header duration before retrying:

Next Steps

Authentication

Learn about access levels, rate limits, OTP, and security best practices

Webhook Setup

Configure webhooks for automatic order processing and customer enrollment

API Reference

Browse all endpoints with request/response schemas

Partner Onboarding

Complete the onboarding checklist for production deployment