The schema is a contract: Reval adds fields and types, but never renames or removes published ones.
String! is required, String can be null. [Plan!]! is a required list of required items. Lists end in Connection and are paginated with first and after (see Pagination).
Queries (Query)
shop
Returns: Shop!
The store this API key belongs to.
subscription(id)
Returns: Subscription
One subscription by Reval id. Null when it does not exist in this store.
subscriptions(first, after, filter, sortKey, reverse)
Returns: SubscriptionConnection!
Subscriptions of the store, newest first by default.
order(id)
Returns: SubscriptionOrder
One subscription order by Reval id.
orders(first, after, filter, reverse)
Returns: SubscriptionOrderConnection!
Orders generated by subscriptions (one per charged cycle), newest first by default.
customer(email)
Returns: Customer
One customer by email (the identity Reval subscriptions are keyed by).
customers(first, after, filter)
Returns: CustomerConnection!
Every customer with at least one subscription, by email.
planGroup(id)
Returns: PlanGroup
One plan (a set of terms many products can sell on) by id.
planGroups(first, after, filter)
Returns: PlanGroupConnection!
Plans of the store — what the admin calls «Planes».
plan(id)
Returns: Plan
One product offering (plan × variant) by id.
plans(first, after, filter)
Returns: PlanConnection!
Product offerings: one row per variant attached to a plan.
box(id)
Returns: Box
One box (bundle) by id.
boxes(first, after, filter)
Returns: BoxConnection!
Boxes of the store — what the admin calls «Cajas».
Actions (Mutation)
subscriptionPause(id, overrideMinCycles)
Returns: SubscriptionPayload!
Pause an ACTIVE subscription: Mercado Pago stops charging until it is resumed. Applies the plan’s minimum commitment like the portal does; overrideMinCycles: true acts as the merchant and skips that gate.
subscriptionResume(id)
Returns: SubscriptionPayload!
Resume a PAUSED subscription; Mercado Pago picks up the schedule and sets the next charge date.
subscriptionCancel(id, reason, note, overrideMinCycles)
Returns: SubscriptionPayload!
Cancel a subscription with a reason (the same list the portal offers) and an optional free-text note. Applies the minimum commitment like the portal unless overrideMinCycles: true.
subscriptionSkipNextCycle(id)
Returns: SubscriptionPayload!
Skip the next cycle of an ACTIVE subscription: that cycle is neither charged nor shipped; the mandate resumes on its own on the following one. Honours the store’s skip settings and the minimum commitment.
subscriptionSetItems(id, items)
Returns: SubscriptionPayload!
Replace the product lines with the given set (one line per plan; the same plan twice sums the quantities). Every plan must be active in this store and bill on the subscription’s cadence — Mercado Pago mandates keep their frequency. The total is recomputed from plan prices, shipping is re-quoted and Mercado Pago is updated for the next cycle. Box subscriptions are edited by the subscriber in the portal, not here.
subscriptionUpdateShippingAddress(id, address)
Returns: SubscriptionPayload!
Replace the shipping address used for the next orders. address1, city and zip are required; the country stays unless given. The shipping rate is not re-quoted.
subscriptionPortalLink(id)
Returns: PortalLinkPayload!
A signed, time-limited link that opens this subscriber’s self-service portal on the store’s primary domain — what the admin’s «Copiar Portal Link» does. Treat it as a credential: it logs the subscriber in.
checkoutLinkCreate(lines, customer, externalRef)
Returns: CheckoutLinkPayload!
Create a checkout link. Every line names a planId — a subscription link that opens Reval’s checkout: several products, several cadences, one card entry, one subscription per cadence — or every line a bare variantId — a one-time link, a Shopify cart permalink. Customer prefill (editable by the shopper; never in the URL) and externalRef (stamped on the subscriptions the link creates, echoed in the API and the subscription webhooks as external_ref) need a subscription link. A link carrying customer data expires 30 days after creation and is single-use; without it the URL is permanent. Send an Idempotency-Key so a retry returns the same link.