Skip to content
APIProductWhat you sellOffer

Offer routes: trial, withdraw

The Offer Verbs trial, withdraw as api.sb routes, with inputs, result, refusals and an example.

Reference for Offer, one group of Offer routes.

Offer.trial

Trial starts a Customer on an Offer free for a set number of days, with or without a card, converting or ending by its terms. Verb page.

Text
POST /{namespace}/offers/{offer}/trial

Path: offer. Body, as JSON: the other inputs. Emits Offer.trialed.

Inputs

InputTypeRequiredDescription
offerOfferrequiredThe Offer to try.
customerCustomerrequiredThe Customer who tries it.
daysintegerrequiredHow long the trial runs. Never randomized.
cardbooleanTrue to take a card up front and charge it when the trial ends.

Returns

OutputTypeRequiredDescription
subscriptionSubscriptionrequiredThe Subscription, free until the trial ends.
offerOfferrequiredThe Offer the trial is on.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/offers/offer_2hzYe1ERo0/trial \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"customer":"cus_K1BROJhqzZ","days":1}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "subscription": {
    "$id": "https://api.sb/leaseline.app/subscriptions/sub_jpvy3zejKB",
    "$type": "Subscription",
    "status": "active"
  },
  "offer": {
    "$id": "https://api.sb/leaseline.app/offers/offer_2hzYe1ERo0",
    "$type": "Offer",
    "price": {
      "amount": 29,
      "currency": "USD"
    }
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Offer.trial",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Offer.withdraw

Withdraw closes a published Offer to new Customers and leaves every existing Order and Subscription in force. Verb page.

Text
POST /{namespace}/offers/{offer}/withdraw

Path: offer. Emits Offer.withdrawn.

Inputs

InputTypeRequiredDescription
offerOfferrequiredThe Offer to withdraw.

Returns

OutputTypeRequiredDescription
offerOfferrequiredThe Offer, closed to new acceptance.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/offers/offer_2hzYe1ERo0/withdraw \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "offer": {
    "$id": "https://api.sb/leaseline.app/offers/offer_2hzYe1ERo0",
    "$type": "Offer",
    "price": {
      "amount": 29,
      "currency": "USD"
    }
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Offer.withdraw",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}