Skip to content
SIBISIBI Developers
Esc
navigateopen⌘Jpreview

Create offer

POST/
Request body
application/json
customerCustomerrequired
Show properties
firstNamestringrequired
First name of the customer
min length 1 · max length 100
lastNamestringrequired
Last name of the customer
min length 1 · max length 100
emailstring<email>required
Valid email address of the customer
phonestringrequired
Customer contact phone number in international format
matches ^\+?[\d\s-()]{10,}$
addressobjectrequired
Delivery address details
Show properties
line1stringrequired
min length 1 · max length 100
line2string
min length 1 · max length 100
citystringrequired
min length 1 · max length 100
stateOrProvincestringrequired
min length 2 · max length 2
postalCodestringrequired
matches ^\d{5}(-\d{4})?$
productobjectrequired
Replacement product and add-ons covered by warranty
Show properties
skustringrequired
Product SKU
addonsobject[]
Optional add-ons for the product. Each entry must specify at least one of id or sku. Use `id` for aggregate add-on groups (like Install or Disposal) and `sku` for individual recommended parts or add-on products.
Show properties
Array of object
idstring
The id of an aggregate add-on group (e.g. Install, Disposal). Use the parent group id from the `addOns` array returned by GET /products/{sku}.
skustring
The sku of an individual add-on product or recommended part. Use the sku from the `recommendedParts` array returned by GET /products/{sku}.
quantityintegerrequired
sendOfferImmediatelyboolean
Whether to send the offer email immediately after creation
default: true
allowCommonCarrierboolean
Whether to allow offers for common carrier delivery properties
default: true
externalJobIDstring
buyoutAmountnumber
Buyout amount in cents (e.g., 50000 = $500.00). Customer can opt to receive this amount instead of a replacement product.
min 0
includeUpsellsboolean
Whether to include upsells in the offer
default: true
allowExistingOfferboolean
Creating an offer for an externalJobID that already has an active (pending or awaiting-customer) offer is rejected with DUPLICATE_ACTIVE_OFFER unless this is true, confirming the duplicate is intentional.
default: false
subBrandIdstringrequired
The ID of the sub-brand used to determine customer-facing branding for the offer
Responses
201Offer created successfully
idstringrequired
Unique identifier for the offer
addressobjectrequired
Show properties
line1stringrequired
min length 1 · max length 100
line2string
min length 1 · max length 100
citystringrequired
min length 1 · max length 100
stateOrProvincestringrequired
min length 2 · max length 2
postalCodestringrequired
matches ^\d{5}(-\d{4})?$
countrystringrequired
Country of the property address
createdAtstring<date-time>required
Timestamp when the offer was created
customerOfferLinkstringrequired
Link to allow the customer to authenticate and view the offer
warningsstring[]
Warnings for the offer
400Bad request - Invalid input data
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
401Unauthorized - Missing or invalid authentication
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
409Conflict - an active offer already exists for the provided externalJobID. Retry with allowExistingOffer: true to confirm the duplicate is intentional.
codestringrequired
An active offer already exists for the provided externalJobID
Allowed:DUPLICATE_ACTIVE_OFFER
messagestringrequired
existingOfferIdsstring[]required
IDs of the active offers already associated with the externalJobID, most recent first
500Internal server error
codestringrequired
Error code indicating the type of error
messagestringrequired
Human-readable error message explaining what went wrong
detailsobject[]
Detailed validation errors when applicable
Show properties
Array of object
fieldstringrequired
errorstringrequired
Request
curl -X POST "https://api.sibipro.com/prod/offers/" \
  -H "Content-Type: application/json" \
  -d '{
  "customer": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john@example.com",
    "phone": "+1 (123) 456-7890"
  },
  "address": {
    "line1": "123 Main St",
    "line2": "Apt 101",
    "city": "Springfield",
    "stateOrProvince": "IL",
    "postalCode": "62701"
  },
  "product": {
    "sku": "GDF511PGRBB",
    "addons": [
      {
        "id": "install-aggregate-id",
        "quantity": 1
      },
      {
        "sku": "M007",
        "quantity": 1
      },
      {
        "sku": "M021",
        "quantity": 1
      }
    ]
  },
  "sendOfferImmediately": true,
  "allowCommonCarrier": true,
  "externalJobID": "string",
  "buyoutAmount": 50000,
  "includeUpsells": true,
  "allowExistingOffer": false,
  "subBrandId": "string"
}'
Response
{
  "id": "testofferid",
  "address": {
    "line1": "string",
    "line2": "string",
    "city": "string",
    "stateOrProvince": "string",
    "postalCode": "string",
    "country": "USA"
  },
  "createdAt": "2024-01-20T12:00:00Z",
  "customerOfferLink": "string",
  "warnings": [
    "This product is only available via common carrier delivery for the selected address."
  ]
}