From a1107c3881f82007cfc4344e3e1c04d5d1f9f1c5 Mon Sep 17 00:00:00 2001 From: eddiechayes Date: Fri, 29 Mar 2024 15:45:21 -0700 Subject: [PATCH] pseo: add goody --- .../from-custom-request_ongoody.com.yaml | 334 ++ sdks/db/category-cache.yaml | 1 + sdks/db/custom-request-last-fetched.yaml | 1 + sdks/db/custom-request-specs/ongoody.com.yaml | 2983 ++++++++++++++++ .../fixed-specs-cache/goody-fixed-spec.yaml | 3015 ++++++++++++++++ sdks/db/fixed-specs/goody-fixed-spec.yaml | 3043 +++++++++++++++++ .../goody.json | 3 + .../goody/openapi.yaml | 2998 ++++++++++++++++ .../ongoody.com.yaml | 19 + sdks/db/progress/goody-progress.yaml | 85 + .../from-custom-request_ongoody.com.json | 532 +++ .../from-custom-request_ongoody.com.json | 24 + sdks/publish.yaml | 30 + sdks/src/collect-from-custom-requests.ts | 4 + 14 files changed, 13072 insertions(+) create mode 100644 sdks/db/cached-method-objects/from-custom-request_ongoody.com.yaml create mode 100644 sdks/db/custom-request-specs/ongoody.com.yaml create mode 100644 sdks/db/fixed-specs-cache/goody-fixed-spec.yaml create mode 100644 sdks/db/fixed-specs/goody-fixed-spec.yaml create mode 100644 sdks/db/generate-repository-description-cache/goody.json create mode 100644 sdks/db/intermediate-fixed-specs/goody/openapi.yaml create mode 100644 sdks/db/processed-custom-request-cache/ongoody.com.yaml create mode 100644 sdks/db/progress/goody-progress.yaml create mode 100644 sdks/db/published/from-custom-request_ongoody.com.json create mode 100644 sdks/db/spec-data/from-custom-request_ongoody.com.json diff --git a/sdks/db/cached-method-objects/from-custom-request_ongoody.com.yaml b/sdks/db/cached-method-objects/from-custom-request_ongoody.com.yaml new file mode 100644 index 000000000..f5ad529f9 --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_ongoody.com.yaml @@ -0,0 +1,334 @@ +hash: 20ced7a0948ea9e57b6fd88ed56f21adf9b694060eb28e7a2a2687be1f6ecebd +methodObjects: + - url: /v1/me + method: getCurrentUser + httpMethod: get + tag: Me + typeScriptTag: me + description: Retrieve current user + parameters: [] + responses: + - statusCode: '200' + description: '' + - statusCode: '401' + description: '' + - url: /v1/order_batches + method: list + httpMethod: get + tag: Order Batches + typeScriptTag: orderBatches + description: List order batches + parameters: + - name: page + schema: integer + required: false + description: Page for pagination, starting at 1 + default: 1 + - name: perPage + schema: integer + required: false + description: Items per page for pagination + default: 20 + responses: + - statusCode: '200' + description: '' + - url: /v1/order_batches + method: createBatch + httpMethod: post + tag: Order Batches + typeScriptTag: orderBatches + description: Create an order batch + parameters: + - name: from_name + schema: string + required: true + description: '' + example: FROM_NAME + - name: message + schema: string + required: false + description: '' + - name: recipients + schema: array + required: true + description: '' + - name: cart + schema: object + required: true + description: '' + - name: send_method + schema: string + required: true + description: '' + example: SEND_METHOD + - name: card_id + schema: string + required: false + description: '' + - name: payment_method_id + schema: string + required: false + description: '' + - name: workspace_id + schema: string + required: false + description: '' + - name: scheduled_send_on + schema: string + required: false + description: '' + - name: expires_at + schema: string + required: false + description: '' + - name: reserved_options + schema: object + required: false + description: '' + responses: + - statusCode: '201' + description: >- + An order batch is the primary resource created by the API. Order + batches contain an array of orders. + - statusCode: '400' + description: '' + - url: /v1/order_batches/{id}/orders + method: getOrders + httpMethod: get + tag: Order Batches + typeScriptTag: orderBatches + description: Retrieve orders for an order batch + parameters: + - name: id + schema: string + required: true + description: Order batch ID + example: ID + - name: page + schema: integer + required: false + description: Page for pagination, starting at 1 + default: 1 + - name: perPage + schema: integer + required: false + description: Items per page for pagination + default: 20 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/order_batches/{id}/recipients + method: getRecipients + httpMethod: get + tag: Order Batches + typeScriptTag: orderBatches + description: Retrieve recipients for an order batch + parameters: + - name: id + schema: string + required: true + description: Order batch ID + example: ID + - name: page + schema: integer + required: false + description: Page for pagination, starting at 1 + default: 1 + - name: perPage + schema: integer + required: false + description: Items per page for pagination + default: 20 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/order_batches/{id} + method: get + httpMethod: get + tag: Order Batches + typeScriptTag: orderBatches + description: Retrieve an order batch + parameters: + - name: id + schema: string + required: true + description: Order batch ID + example: ID + responses: + - statusCode: '200' + description: >- + An order batch is the primary resource created by the API. Order + batches contain an array of orders. + - statusCode: '404' + description: '' + - url: /v1/orders/{id}/cancel + method: cancelOrder + httpMethod: post + tag: Orders + typeScriptTag: orders + description: Cancel an order + parameters: [] + responses: + - statusCode: '200' + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + - statusCode: '404' + description: '' + - url: /v1/orders + method: getList + httpMethod: get + tag: Orders + typeScriptTag: orders + description: List orders + parameters: + - name: page + schema: integer + required: false + description: Page for pagination, starting at 1 + default: 1 + - name: perPage + schema: integer + required: false + description: Items per page for pagination + default: 20 + responses: + - statusCode: '200' + description: '' + - url: /v1/orders/{id} + method: getById + httpMethod: get + tag: Orders + typeScriptTag: orders + description: Retrieve an order + parameters: [] + responses: + - statusCode: '200' + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + - statusCode: '404' + description: '' + - url: /v1/orders/{id}/update_expiration + method: updateExpiration + httpMethod: post + tag: Orders + typeScriptTag: orders + description: Update expiration for an order + parameters: + - name: expiration + schema: string + description: '' + example: 2022-02-01T00:00:00+0000 + responses: + - statusCode: '200' + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + - statusCode: '404' + description: '' + - url: /v1/payment_methods + method: listAll + httpMethod: get + tag: Payment Methods + typeScriptTag: paymentMethods + description: List all payment methods + parameters: [] + responses: + - statusCode: '200' + description: '' + - statusCode: '401' + description: '' + - url: /v1/products + method: listActiveProducts + httpMethod: get + tag: Products + typeScriptTag: products + description: List all active products + parameters: + - name: page + schema: integer + required: false + description: Page for pagination, starting at 1 + default: 1 + - name: perPage + schema: integer + required: false + description: Items per page for pagination + default: 20 + - name: useCustomCatalog + schema: boolean + required: false + description: Limit to custom catalog only (for approved API partners) + responses: + - statusCode: '200' + description: '' + - url: /v1/webhooks + method: createEndpoint + httpMethod: post + tag: Webhooks + typeScriptTag: webhooks + description: Create a webhook endpoint + parameters: + - name: url + schema: string + description: '' + - name: events + schema: array + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - url: /v1/webhooks/{id} + method: deleteEndpoint + httpMethod: delete + tag: Webhooks + typeScriptTag: webhooks + description: Delete a webhook endpoint + parameters: + - name: url + schema: string + description: '' + - name: events + schema: array + description: '' + responses: + - statusCode: '204' + description: Webhook endpoint deleted + - statusCode: '400' + description: '' + - url: /v1/workspaces + method: getAll + httpMethod: get + tag: Workspaces + typeScriptTag: workspaces + description: List all workspaces + parameters: [] + responses: + - statusCode: '200' + description: '' +numberOfSchemas: 37 +apiDescription: >- + Goody is a new way to send personal and business gifts as easily as a text + message. + + + Our business gifting platform, Goody for Business, powers employee engagement, + client appreciation, and sales prospecting gifts at more than 12,000 leading + companies. Goody integrates with 30 leading HR platforms, allowing companies + to automatically gift employees on birthdays and work anniversaries. + + + Choose from a curated gift collection of 250+ brands. Send a gift with only an + email or phone number — no address required. Let gift recipients swap your + gift for equal or lower-priced options, with no pricing shown. diff --git a/sdks/db/category-cache.yaml b/sdks/db/category-cache.yaml index 1ca55aa07..546d80b88 100644 --- a/sdks/db/category-cache.yaml +++ b/sdks/db/category-cache.yaml @@ -323,3 +323,4 @@ apis: Melodie Music-undefined: Music MarketData-undefined: Finance Kombo-undefined: Developer Tools + Goody-undefined: Customer Appreciation diff --git a/sdks/db/custom-request-last-fetched.yaml b/sdks/db/custom-request-last-fetched.yaml index 60221ef82..7417b727b 100644 --- a/sdks/db/custom-request-last-fetched.yaml +++ b/sdks/db/custom-request-last-fetched.yaml @@ -303,3 +303,4 @@ lastUpdated: marketdata.app: 2024-03-29T22:39:47.178Z melod.ie: 2024-03-29T22:39:47.542Z netvyne.com: 2024-03-29T22:39:47.890Z + ongoody.com: 2024-03-29T22:33:12.363Z diff --git a/sdks/db/custom-request-specs/ongoody.com.yaml b/sdks/db/custom-request-specs/ongoody.com.yaml new file mode 100644 index 000000000..d139dfe30 --- /dev/null +++ b/sdks/db/custom-request-specs/ongoody.com.yaml @@ -0,0 +1,2983 @@ +openapi: 3.0.1 +info: + title: Goody API + version: 1.0.0 + contact: + name: Goody Support + email: support@ongoody.com +components: + schemas: + Error: + type: object + properties: + error: + type: string + required: + - error + ListMeta: + type: object + properties: + total_count: + type: integer + description: The total number of items in this list. + OrderBatch: + type: object + description: >- + An order batch is the primary resource created by the API. Order batches + contain an array of orders. + properties: + id: + type: string + format: uuid + send_status: + $ref: '#/components/schemas/OrderBatchSendStatus' + description: >- + The `pending` status indicates that an order batch is being prepared + to be sent out. If it is not scheduled, it is being sent + asynchronously. If it is scheduled, it will stay in `pending` state + until the scheduled time is reached, at which point it will be + processed and moved to `complete`. When it is in `pending` status, + no orders are created yet. When the order batch is in `complete` + status, all orders are created and available. + from_name: + type: string + description: >- + The name of the sender. This is displayed on the order and + notifications. + message: + type: string + nullable: true + description: The message in this order batch, provided by the sender. + orders_count: + type: integer + description: >- + The total number of orders in this order batch. This might be blank + if the order batch is scheduled for the future, or it could be fewer + than the recipient count if the order batch is in the process of + being sent. + orders_preview: + type: array + items: + $ref: '#/components/schemas/Order' + description: >- + A preview of the first 10 orders in this order batch. To paginate + through all of the orders, use the `/order_batches/:id/orders` + endpoint with `?page&per_page`. If your use case never sends more + than 10 orders in a single batch, you can use this field instead of + calling `/order_batches/:id/orders`. For order batches with more + than 10 recipients, this array will be empty while the orders are + asynchronously created in the background. + recipients_count: + type: integer + description: The total number of recipients in this order batch. + recipients_preview: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + description: >- + A preview of the first 10 recipients in this order batch. To see all + of the recipients, use `/order_batches/:id/recipients`. Recipients + contain the original contact information provided for each recipient + when the order batch was created. + cart: + $ref: '#/components/schemas/Cart' + description: >- + The cart that was sent for this order batch. This is the original + cart that was created for this order batch. If individual orders + were swapped, this still remains the same, whereas orders' `cart` + would change if they were swapped. + is_scheduled_send: + type: boolean + description: >- + Whether this order batch was set up as a scheduled send. This stays + as `true` after the scheduled send is complete. To determine if the + order batch is scheduled to be sent for the future, check if + `status` is `pending` and `scheduled_send_on` is in the future. When + a order batch is scheduled, orders are only created on the scheduled + send date. + scheduled_send_on: + type: string + format: date-time + description: >- + The date and time the order batch is scheduled to be sent. This will + be `null` if the order batch is not a scheduled send. This field + remains after the scheduled send completes. ISO 8601, UTC. + nullable: true + expires_at: + type: string + format: date-time + description: The date and time the order batch is set to expire. ISO 8601, UTC. + nullable: true + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + nullable: true + batch_name: + type: string + nullable: true + description: >- + An internal name for the order batch, falling back to an + auto-generated batch name. Not displayed to recipients. + card_id: + type: string + format: uuid + nullable: true + description: The digital greeting card on this order batch. + sender: + $ref: '#/components/schemas/Sender' + description: The sender of the order batch. + workspace_id: + type: string + format: uuid + nullable: true + description: >- + Organizations are sub-divided into workspaces. Order batches are + contained in workspaces, identified by this ID. + workspace_name: + type: string + nullable: true + reference_id: + type: string + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order batch. + required: + - id + - send_status + - orders_preview + - orders_count + - cart + - from_name + - recipients_preview + - recipients_count + - sender + - reference_id + Order: + type: object + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + properties: + id: + type: string + format: uuid + recipient_first_name: + type: string + recipient_last_name: + type: string + nullable: true + recipient_email: + type: string + nullable: true + status: + $ref: '#/components/schemas/OrderStatus' + individual_gift_link: + type: string + description: >- + This gift link can be sent to the recipient or shared with the + sender. For privacy reasons, this gift link does not display + tracking information. A separate link, the recipient link, is sent + directly to the recipient after they accept their gift, which does + contain tracking information. + cart: + $ref: '#/components/schemas/Cart' + description: >- + The cart currently on this order. If the order is a gift that was + swapped, `cart` displays the most recent products selected (i.e. + post-swap). + shipments: + type: array + items: + $ref: '#/components/schemas/Shipment' + description: A list of the shipments for the order. + workspace_id: + type: string + format: uuid + nullable: true + description: >- + Organizations are sub-divided into workspaces. Orders are contained + in workspaces, identified by this ID. + workspace_name: + type: string + nullable: true + expires_at: + type: string + format: date-time + description: For gifts, the date and time the gift is set to expire. + nullable: true + card_id: + type: string + format: uuid + nullable: true + description: The digital greeting card on this gift. + message: + type: string + nullable: true + description: The message in this gift, provided by the sender. + thank_you_note: + type: string + nullable: true + description: A thank you note sent by the recipient. + view_count_recipient: + type: integer + description: The number of times the recipient viewed the gift. + is_swapped: + type: boolean + description: >- + If this gift was swapped by the recipient. Swapping allows a + recipient to select another product or products, which replaces the + `cart`. The original products are saved to `original_cart`. + order_batch_id: + type: string + format: uuid + description: >- + On Goody for Business, all orders are attached to a order batch, + which is a collection of one or more orders. + amounts: + type: object + description: >- + Costs in USD cents (i.e. $1.00 = 100). If the order was swapped, + `amounts` displays the most recent amounts (i.e. post-swap). + properties: + amount_product: + type: integer + description: Total cost of the products in this order. + amount_shipping: + type: integer + description: Total cost of shipping for this order. + amount_processing_fee: + type: integer + nullable: true + description: Total cost of processing fees for this order. + amount_credit_applied: + type: integer + nullable: true + description: Total amount of credit applied to this order. + amount_pre_tax_total: + type: integer + description: >- + Total cost of the products, shipping, and processing fees in + this order. + amount_tax: + type: integer + nullable: true + description: Total tax for this order. + amount_total: + type: integer + nullable: true + description: >- + Total cost of the products, shipping, processing fees, tax, and + global shipping costs in this order. + amount_global_relay_cost: + type: integer + nullable: true + description: >- + Total cost of global shipping for this order through the Global + Relay service. + required: + - amount_product + - amount_shipping + - amount_pre_tax_total + event_times: + type: object + description: Only provided when calling the /orders/:id endpoint. + properties: + created_at: + type: string + format: date-time + description: ISO 8601 + notified_at: + type: string + format: date-time + description: When the recipient was notified of the order. + nullable: true + opened_at: + type: string + format: date-time + description: For gifts, when the recipient opened the order. + nullable: true + accepted_at: + type: string + format: date-time + description: For gifts, when the recipient accepted the order. + nullable: true + pending_payment_at: + type: string + format: date-time + description: When the order entered pending payment status. + nullable: true + paid_at: + type: string + format: date-time + description: When the order was paid for. + nullable: true + shipped_at: + type: string + format: date-time + description: >- + When the order was first shipped. If there are multiple + shipments, this is when the first shipment shipped. + nullable: true + delivered_at: + type: string + format: date-time + description: >- + When the order was delivered. If there are multiple shipments, + this is when all shipments were delivered. + nullable: true + required: + - created_at + nullable: true + original_cart: + $ref: '#/components/schemas/Cart' + description: >- + If this order is a gift that was swapped, this displays the original + cart that was sent to the recipient. + nullable: true + original_amounts: + type: object + description: >- + If this order is a gift that was swapped, this displays the original + amounts of the cart that was sent to the recipient. + properties: + original_amount_product: + type: integer + nullable: true + original_amount_shipping: + type: integer + nullable: true + original_amount_credit_applied: + type: integer + nullable: true + original_amount_pre_tax_total: + type: integer + nullable: true + nullable: true + sender: + $ref: '#/components/schemas/Sender' + description: The Goody user who sent this order. + reference_id: + type: string + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order. + required: + - id + - recipient_first_name + - status + - individual_gift_link + - cart + - shipments + - amounts + - sender + - reference_id + OrderBatchRecipient: + type: object + properties: + first_name: + type: string + last_name: + type: string + nullable: true + email: + type: string + nullable: true + required: + - first_name + Cart: + type: object + properties: + id: + type: string + format: uuid + items: + type: array + items: + $ref: '#/components/schemas/CartItem' + CartItem: + type: object + properties: + id: + type: string + format: uuid + product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + type: object + description: The brand that this product is from. + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + required: + - id + - name + - brand + quantity: + type: integer + required: + - id + - product + - quantity + OrderBatchSendStatus: + type: string + enum: + - pending + - complete + - failed + - canceled + OrderStatus: + type: string + enum: + - created + - notified + - opened + - accepted + - pending_payment + - paid + - ordered + - shipped + - delivered + - failed + - canceled + Shipment: + type: object + properties: + id: + type: string + format: uuid + status: + type: string + enum: + - pending + - tracking + - shipped + - delivered + - delivered_override + - failed + - failed_unset_tracking + - failed_with_reship + brand_name: + type: string + description: The name of the brand that this shipment is from. + tracking_carrier: + type: string + nullable: true + description: The carrier for this shipment, e.g. UPS. + tracking_number: + type: string + nullable: true + description: Only for approved distribution partners. + shipped_at: + type: string + format: date-time + description: ISO 8601 + nullable: true + delivered_at: + type: string + format: date-time + description: ISO 8601 + nullable: true + delivery_eta: + type: string + format: date-time + description: The estimated delivery time of this shipment. + nullable: true + required: + - id + - status + - brand_name + Product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + $ref: '#/components/schemas/Brand' + subtitle: + type: string + nullable: true + description: A description of this product. + subtitle_short: + type: string + nullable: true + description: >- + An optional one-line description of this product. When provided, it + overrides the subtitle when displayed in areas with less space. Not + always provided. + recipient_description: + type: string + nullable: true + description: >- + An optional description of this product with custom verbiage for + recipients. When provided, it overrides the subtitle for the product + when displayed to the recipient. Falls back to the subtitle. + variants_label: + type: string + nullable: true + description: The label for the variants of this product, e.g. "Size" or "Color". + variants_num_selectable: + type: integer + nullable: true + description: >- + The number of variants that can be selected for this product. For + example, if this is a t-shirt, then this would be 1, since you can + only select one size. If this were a build-a-box of chocolates, this + could be 3 if you could select 3 flavor variants. + variants: + type: array + items: + $ref: '#/components/schemas/ProductVariant' + images: + type: array + items: + $ref: '#/components/schemas/ProductImage' + price: + type: integer + description: The price of the product, in cents. + price_is_variable: + type: boolean + description: >- + Whether the price of this product is variable. If true, then the + price can be set by the sender. + price_min: + type: integer + nullable: true + description: >- + The minimum price of the product, in cents. Only used if + price_is_variable is true. + price_max: + type: integer + nullable: true + description: >- + The maximum price of the product, in cents. Only used if + price_is_variable is true. + restricted_states: + type: array + items: + type: string + description: The US states that this product cannot be shipped to. + reserved_options: + type: object + description: For approved API partners only. + properties: + custom_price_tier: + type: integer + nullable: true + description: >- + For approved API partners only. A custom price tier for this + product. + nullable: true + required: + - id + - name + - brand + - variants + - images + - price + - price_is_variable + - restricted_states + Brand: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + shipping_price: + type: integer + description: The price of shipping for this brand, in cents. + commerce_revshare_excluded: + type: boolean + description: >- + Whether this brand is excluded from the commerce revenue share. Only + displayed on the products endpoint when using a commerce app. + nullable: true + required: + - id + - name + - shipping_price + ProductImage: + type: object + properties: + id: + type: string + format: uuid + image_large: + $ref: '#/components/schemas/Image' + required: + - id + - image_large + ProductVariant: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + image_large: + $ref: '#/components/schemas/Image' + nullable: true + subtitle: + type: string + nullable: true + required: + - id + - name + Image: + type: object + properties: + url: + type: string + width: + type: integer + height: + type: integer + required: + - id + - large_url + MailingAddress: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + address_1: + type: string + address_2: + type: string + nullable: true + city: + type: string + state: + type: string + postal_code: + type: string + country: + type: string + nullable: true + description: >- + The two-letter country code, e.g. "US". Only US is supported at this + time. + required: + - address_1 + - city + - state + - postal_code + - country + Me: + type: object + properties: + email: + type: string + nullable: true + public_app_id: + type: string + nullable: true + Sender: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + required: + - first_name + - last_name + - email + PaymentMethod: + type: object + properties: + id: + type: string + name: + type: string + cardholder_name: + type: string + nullable: true + description: >- + For payment methods with a cardholder name, returns the name on the + card. + balance: + type: integer + nullable: true + description: >- + For payment methods with a balance, returns the available balance on + the payment method. + required: + - id + - name + Workspace: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + OrderBatchInput: + type: object + description: Input parameters for an order batch. + properties: + from_name: + type: string + description: >- + The name of the sender of the order (typically a gift), to be + displayed as "from". + message: + type: string + description: >- + For gifts, a message for the gift to be displayed in the digital + unwrapping and email notifications, if enabled. + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientInput' + cart: + $ref: '#/components/schemas/CartInput' + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + card_id: + type: string + format: uuid + description: >- + The digital greeting card to attach to gifts. A card must be + specified if a message is specified, since the message is displayed + after the card is opened. + payment_method_id: + type: string + description: >- + The payment method used to pay for this order batch. If not + specified, defaults to the first payment method on the account. If + the account has no payment methods, then the order batch creation + will fail. + workspace_id: + type: string + format: uuid + description: >- + Workspace to create the order batch in. If not specified, creates + the order batch in the oldest workspace the user has access to. + scheduled_send_on: + type: string + format: date-time + description: >- + The date and time at which the order batch will be sent. If not + specified, the order batch is sent immediately. If an order batch is + scheduled to be sent in the future, then orders will not be created + until the scheduled send time. ISO 8601 format. + nullable: true + expires_at: + type: string + format: date-time + description: >- + The date and time at which the order batch will expire. If not + specified, the order batch does not expire. An expiry must be set + for orders paid using account balance. ISO 8601 format. + nullable: true + reserved_options: + type: object + description: For approved API partners only. + properties: + custom_price_tier: + type: integer + nullable: true + description: >- + For approved API partners only. A custom price tier to set on + this order batch. + nullable: true + required: + - from_name + - recipients + - cart + - send_method + CartInput: + type: object + properties: + items: + type: array + items: + $ref: '#/components/schemas/CartItemInput' + description: An array of cart items. + CartItemInput: + type: object + properties: + product_id: + type: string + format: uuid + nullable: true + description: >- + ID of the product. Preferred over URL since this is always stable. + Either `product_id` or `product_url` must be provided. + product_url: + type: string + nullable: true + description: >- + URL of the product. Either `product_id` or `product_url` must be + provided. + quantity: + type: integer + variable_price: + type: integer + description: >- + If this product has a variable price (e.g. a flex gift or a gift + card), then this must be provided. A positive integer represented in + cents. + variants: + type: array + items: + type: string + description: >- + An array of variant names (not IDs). When using the Direct Send send + method with a product with variants, the variants must be provided. + The length of the array must be equal to `variants_num_selectable` + on the product, and the variants must come from the names of the + `varaints` on the product. For example, for a t-shirt with + `variants_num_selectable` = 1 and variants S, M, L, pass ['M']. Or, + for a box of cookies with `variants_num_selectable` = 2 and variants + Sugar, Caramel, Chocolate, pass ['Sugar', 'Chocolate']. + required: + - product_id + - quantity + OrderBatchSendMethod: + type: string + enum: + - email_and_link + - link_multiple_custom_list + - direct_send + description: >- + The method for sending a order batch. `email_and_link` sends a gift + email to the recipient (specify `email` for each recipient). + `link_multiple_custom_list` generates a gift link without an automatic + email. `direct_send` ships the product directly to the recipient + (specify `mailing_address` for each recipient). For more information, + see [Send Methods](https://assets.ongoody.com). + RecipientInput: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + mailing_address: + $ref: '#/components/schemas/MailingAddress' + description: >- + Optional mailing address to pre-populate into the order. This field + is only available for approved API partners. + required: + - first_name + WebhookInput: + type: object + description: Input parameters for a webhook endpoint. + properties: + url: + type: string + description: The URL for the webhook to call. + events: + type: array + items: + type: string + nullable: true + description: >- + Filter the events you want to get webhooks for. Refer to the + Webhooks list for the event names. + securitySchemes: + bearer: + type: http + scheme: bearer + description: Your Goody API key. +servers: + - url: https://api.ongoody.com + description: Production + - url: https://api.sandbox.ongoody.com + description: Sandbox +paths: + /v1/me: + get: + summary: Retrieve current user + tags: + - Me + security: + - bearer: [] + responses: + '200': + description: Me retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/Me' + '401': + description: Failed to authorize + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches: + post: + summary: Create an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: [] + responses: + '201': + description: Order batch created using product URL in cart + content: + application/json: + examples: + Order batch created (10 or fewer recipients): + value: + id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: f9afd3e0-4bf8-45a0-b8ff-2956740845d9 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/kkmTY4JyoYs7KgaLxd7rBaqM + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: UFL9TUBEPLAJYYVJZOSH1YH4 + - id: e2d608c6-cf4a-40ad-af32-6e30b2cdc347 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RsH9NdSrzuVtLVNxjaew6CfO + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: ZMAUHA0OZF1U9WEKPJ8ISZSG + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + reference_id: FAQAQCVFFRBCXSQIAVABPXWR + Order batch created (more than 10 recipients): + value: + id: 59b13ea3-e08f-4e5d-aa26-45ae505957fc + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 11 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: ceecbddb-fdca-413d-9c12-2bfc8eb301f2 + items: + - id: 0a753de0-4a0c-41be-b6c2-4afba7a5ca1b + quantity: 1 + product: + id: ea3e9769-eea2-4aa2-bece-8a32e26386b9 + name: Cookies + brand: + id: 99e6c1cb-6b48-45e6-b695-2d5498230286 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: 11 recipients + card_id: 7e8d1f0b-d9e0-4663-8ae9-c2fc38d4fb0d + sender: + first_name: Test + last_name: User + email: 15554156359@test.ongoody.com + workspace_id: 45e1ef6e-6ba0-4b81-8c2e-155a81f1b365 + workspace_name: Test Team + reference_id: 3S2SNBKTKN7SJDQWE88PHJ1A + Scheduled order batch created: + value: + id: 8516d9ee-968b-4ed6-a254-379e68732c62 + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: f5f1a7ea-325e-470f-a085-9b6e54907c8e + items: + - id: 53e4915c-788d-4105-98c4-17f37b1f5724 + quantity: 1 + product: + id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + name: Cookies + brand: + id: 0410e2be-6359-4940-af15-5ee84805ec11 + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + sender: + first_name: Test + last_name: User + email: 15558391444@test.ongoody.com + workspace_id: 5e3072af-ce47-4152-87f6-388cecb6fa90 + workspace_name: Test Team + reference_id: 1NJ8TOA7O5CKDELTKIGR4RRV + Order batch created with recipient address: + value: + id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 5300f2c0-04ed-4b35-8e51-beb814e5737c + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/Jm5Ss9lzUkjZnImBalLlcTu3 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DNRURLZYRYDPEUYZXRXJMMFH + - id: 174beb23-ad17-4455-8525-e07129dccc9d + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/alTiXF5X4KRQzt1SGDMqrrxy + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 0LBFVLB2V9S2KUQKUNBERDDS + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + reference_id: OKSZ8OJQ9ZPZDFXNG6JMAR9W + Order batch created (using product URL in cart): + value: + id: 040bf69d-2a2f-4eef-9365-a82788091e50 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 1d18374e-99a5-46a4-ac9a-2c28f6ee17d0 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/CFA2TU7QNeVgUgozNx00D5YQ + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 6A5KGQ0KPQGOUX57C2KUQF0Q + - id: 82eb8825-34d5-4d3b-a682-26e2e781cebf + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZBD7op8PFrEC59nZsXjPELUF + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 1C7DPYGDYYUE5IQOFYXT9NZ2 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: '2023-08-10T21:50:34Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + reference_id: WBRN7MAB7LNPILVFLYAOOZNC + schema: + $ref: '#/components/schemas/OrderBatch' + '400': + description: Bad request when using invalid product URL in cart + content: + application/json: + examples: + Order batch without recipients fails to create: + value: + error: Recipients can't be blank + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrderBatchInput' + examples: + Order batch created: + summary: Order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + quantity: 1 + Scheduled order batch created: + summary: Scheduled order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + Order batch created with recipient address: + summary: Order batch created with recipient address + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + mailing_address: + first_name: Alena + last_name: Kenter + address_1: 1 Main St + address_2: Apt 123 + city: New York + state: NY + postal_code: '10022' + country: US + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + mailing_address: + first_name: Michael + last_name: Franci + address_1: 1 Main St + address_2: Apt 124 + city: New York + state: NY + postal_code: '10022' + country: US + cart: + items: + - product_id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + quantity: 1 + Order batch created using product URL in cart: + summary: Order batch created using product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + http://example.com/browse/brands/cookie-company/cookies + quantity: 1 + expires_at: '2023-08-10T21:50:34Z' + Bad request: + summary: Bad request + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: b1faebbd-8482-4f90-9892-b25b6bbb9370 + recipients: [] + cart: + items: + - product_id: 3069c348-08c0-49b7-a2f7-cef5c3732485 + quantity: 1 + Bad request when using invalid product URL in cart: + summary: Bad request when using invalid product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 69c58b24-0273-4068-a8d9-cb63a7841ef2 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + https://www.ongoody.com/browse/brands/invalid-brand/invalid-product + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:34Z' + expires_at: '2023-08-10T21:50:34Z' + get: + summary: List order batches + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Order batches retrieved + content: + application/json: + examples: + Order batches retrieved: + value: + data: + - id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + send_status: complete + from_name: Carlee + message: null + orders_count: 2 + orders_preview: + - id: f6ceb426-4d03-438e-b0d9-1063e22982fd + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/XO7BKKHMGOQFJ0B0RYDCPZCI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: AWU6DOLO0JOV2WT0TVFIVDLY + - id: 518d338b-64a0-49e8-a235-4b853ef3668f + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/EOEC0JRXBBHUCKFSHKUQBFAE + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: OOWOL8COFAMN2AMHJZSHCMPA + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Greenholt, Heidenreich and Lubowitz + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: SXKSP7TFRPG507W2HWUPRIBE + - id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + send_status: complete + from_name: Micah + message: null + orders_count: 2 + orders_preview: + - id: 607da8c9-51a5-4375-804a-72a9c7d47234 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RPGZMCCYCYNFS0QIWLMUFY87 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YJNR4BMPZ4AIRDYXOHEA1IQR + - id: adeff9fb-92ed-48ca-8a7c-68ac703b14e4 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZD5RHZK6M5MHV6SKPZXS18AB + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WTQMNF4DC0XRPTW8CIWBHOVP + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Baumbach, Treutel and Hand + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: HX6LDJ4Q9T3CP91CMBCXH5P7 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatch' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/order_batches/{id}/orders: + get: + summary: Retrieve orders for an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Orders retrieved with pagination + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: 4f010d07-2003-497c-8361-7a189bf54981 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/I1BMEGEXCBJPJWZVQNPKYEO8 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: CZ7I0FAZYYPDUJU0TSH82XI7 + - id: ed4ae89d-3391-47ab-bdb3-084979cd2a52 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/9SICCNKU3DD0JYMSO1LQR970 + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: KDNRICONAYGLJVSYKD4MXUG6 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}/recipients: + get: + summary: Retrieve recipients for an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Recipients retrieved with pagination + content: + application/json: + examples: + Recipients retrieved for sent order batch: + value: + data: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + list_meta: + total_count: 2 + Recipients retrieved for scheduled order batch with pagination: + value: + data: + - first_name: Alice + last_name: Wilson + email: alice@ongoody.com + list_meta: + total_count: 11 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + list_meta: + $ref: '#/components/schemas/ListMeta' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}: + get: + summary: Retrieve an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + responses: + '200': + description: Scheduled order batch retrieved + content: + application/json: + examples: + Order batch retrieved: + value: + id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + send_status: complete + from_name: Therese + message: null + orders_count: 2 + orders_preview: + - id: ef7934de-3070-4a51-a401-d5e47d4a7af7 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/VIDPJNQSVUTPGSXNBOLFMWAY + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: LNAUPJAZJUJY3LYTVTXYFJEI + - id: 6fd492a9-d076-4f98-bc26-56fb24071c83 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/QE2TTDTYWV09L7RX8MV61CUS + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YLQ6L5VVP63TOETJPN1BP9J6 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Rutherford-Swaniawski + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + reference_id: CIG8UJVGQSL6IAD5PFTBZ3UW + Scheduled order batch retrieved: + value: + id: 1f333da0-c0e2-4799-9ef1-44fc48cd3ed7 + send_status: pending + from_name: Clarisa + message: null + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: da980af6-5521-451d-8d7c-5acbfaf5ca69 + items: + - id: 9a170b61-b1ae-4f13-9e6c-ca3ace302ca3 + quantity: 1 + product: + id: 67aaa3e1-75e8-4fca-8b30-c48f60a226b4 + name: Cookies + brand: + id: bff2cdcf-34ad-4ee6-a740-159110ff41ab + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:51Z' + expires_at: null + send_method: null + batch_name: Thank You from Konopelski, Prohaska and Howell + card_id: 2ac63cee-494c-4ba7-a02a-7d00f7c59cd5 + sender: + first_name: Test + last_name: User + email: 15557649249@test.ongoody.com + workspace_id: 160718bf-f931-42bc-a9d4-058b3ee8ff28 + workspace_name: Test Team + reference_id: IELD012QXOVQTE6SVNBSXDMQ + schema: + $ref: '#/components/schemas/OrderBatch' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/cancel: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + post: + summary: Cancel an order + tags: + - Orders + security: + - bearer: [] + responses: + '200': + description: Order canceled + content: + application/json: + examples: + Order canceled: + value: + id: 15bf6e5f-1ede-49fd-9e5a-9552f4d0ac0e + status: failed + individual_gift_link: https://gifts.ongoody.com/gift/YJSOJEDZQOPQABGFDDFBXXFI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: db002015-4ac2-4be0-a9f0-88a0eb610c81 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 380bbd4c-8e00-4434-b06a-6ad85be22ec3 + expires_at: null + cart: + id: 7dcedae6-bad9-48a9-9fc7-8307cfd6d407 + items: + - id: de545223-6624-455c-b093-44626f07955f + quantity: 1 + product: + id: 92c58048-f7a6-4247-98c5-5c9739b0db41 + name: Cookies + brand: + id: c24bf660-22ae-411a-bfc8-4663c8053748 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559388988@test.ongoody.com + workspace_id: 2724b1c3-76c3-493d-9e28-62404b6ad8a7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WPKL1ASIFJCGZXK72X1NKJPD + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders: + get: + summary: List orders + tags: + - Orders + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Orders retrieved + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: ae16f352-bd26-4f6e-ab86-4841cfd955cc + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/WXFRB5VPRJWT6W4L2PJLQR0J + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YWENSHQUBRLZDVXUXB5BSFTP + - id: 8ffa3505-6be3-4af3-a32b-c48b83fb60f8 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/MMT9TGVG5UQO69FSWZBBBW5Z + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DTRFOXPQG3KSXIQQ99VMUEIA + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/orders/{id}: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + get: + summary: Retrieve an order + tags: + - Orders + security: + - bearer: [] + responses: + '200': + description: Order retrieved + content: + application/json: + examples: + Order retrieved: + value: + id: 34cd9caa-0fe1-4dfb-a3d0-5711c9df8ec4 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/J7TUYJHBGO4NC42YMHDCRQFH + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 95babe93-dd49-4957-a817-e300c36699e9 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: e2a4c099-cf00-4f62-a0b6-aa118de56ec1 + expires_at: null + cart: + id: f9b8607e-bcf1-471a-b400-a7abd8a00137 + items: + - id: 028c7f0b-2384-428f-9428-79231a350803 + quantity: 1 + product: + id: 3b97a15c-ae39-4336-8ffd-1afc80ec5441 + name: Cookies + brand: + id: 4bd59775-433e-443d-9a85-0494037462bc + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559181726@test.ongoody.com + workspace_id: 3e5d8ea5-d804-433a-a4f9-6115d830f624 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WXIONMAL1CECENU5GCWENJOD + event_times: + created_at: '2023-07-13T21:50:59Z' + notified_at: null + opened_at: null + accepted_at: null + thank_you_added_at: null + pending_payment_at: null + paid_at: null + shipped_at: null + delivered_at: null + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/update_expiration: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + post: + summary: Update expiration for an order + tags: + - Orders + security: + - bearer: [] + parameters: [] + responses: + '200': + description: Expiration updated + content: + application/json: + examples: + Expiration updated: + value: + id: 42728b42-22e6-4b2f-bb9e-657a8a0f2131 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/IINOSUPYGGTV0FVCTSVEELRW + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bcdbf600-d67d-4253-b1d2-1df7db6b9599 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cfebcd18-847b-48ac-a71a-b99db2be697e + expires_at: '2022-02-01T00:00:00Z' + cart: + id: e4792f3a-4a4a-49cd-8389-a5859418a834 + items: + - id: 73db4e2a-e54c-4b79-8b54-a8cade7b40e1 + quantity: 1 + product: + id: c927e27c-b5c0-4d6d-80e8-9731b6755558 + name: Cookies + brand: + id: ae711da0-ffe0-4e0b-b567-60df3aa18cb2 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15552952554@test.ongoody.com + workspace_id: 60a36ddd-2b00-4a2c-ad81-71a3ef49a1ba + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 5YAKD6BGHKQLSEUG0EFEPQJ8 + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + type: object + properties: + expiration: + type: string + format: date-time + example: 2022-02-01T00:00:00+0000 + description: New expiration date in ISO 8601 format + /v1/payment_methods: + get: + summary: List all payment methods + tags: + - Payment Methods + security: + - bearer: [] + responses: + '200': + description: Payment methods retrieved + content: + application/json: + examples: + Payment methods retrieved: + value: + data: + - id: 6e8b135b-6034-4300-bea0-9e006dc7302c + name: Visa 1234 + cardholder_name: Card 1 + - id: aacd0e9a-2b73-419d-bc52-67551666adcd + name: Mastercard 5678 + cardholder_name: Card 2 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentMethod' + list_meta: + $ref: '#/components/schemas/ListMeta' + '401': + description: Failed to authorize + content: + application/json: + examples: + Unauthorized: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + /v1/products: + get: + summary: List all active products + tags: + - Products + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + - name: use_custom_catalog + in: query + schema: + type: boolean + description: Limit to custom catalog only (for approved API partners) + required: false + responses: + '200': + description: Products retrieved + content: + application/json: + examples: + Products retrieved: + value: + data: + - id: 72b6b5c2-1fa9-425e-affb-91bf684b66e2 + name: Dozen Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 6d956b61-6704-4fe6-88c1-405eae464da4 + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: ce309ead-b95e-4332-ad1d-0500deb9f953 + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 05ffb0d2-9759-4970-861d-a8b868056998 + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + - id: e4710eb2-6532-4efa-86c5-8c70a39a7bc6 + name: Six Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 9a5072ef-1ee2-4b8c-ad72-ce70d051b6dc + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: 95ccc62c-46f6-4617-9bd6-bd2f9743551c + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 6fa93286-90d8-41c8-a732-2dda85bd410f + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Product' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/webhooks: + post: + summary: Create a webhook endpoint + tags: + - Webhooks + security: + - bearer: [] + parameters: [] + responses: + '201': + description: Webhook endpoint created + content: + application/json: + examples: + Webhook endpoint created: + value: + id: 77b82a8a-760e-4341-9880-3f57d15c5faa + schema: + type: object + properties: + id: + type: string + '400': + description: Webhook endpoint not created + content: + application/json: + examples: + Webhook endpoint failed to create: + value: + error: Unauthorized. You must be an admin to manage webhooks. + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint created: + summary: Webhook endpoint created + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + /v1/webhooks/{id}: + parameters: + - name: id + in: path + description: Webhook endpoint ID + required: true + schema: + type: string + delete: + summary: Delete a webhook endpoint + tags: + - Webhooks + security: + - bearer: [] + parameters: [] + responses: + '204': + description: Webhook endpoint deleted + '400': + description: Webhook endpoint not deleted + content: + application/json: + examples: + Webhook endpoint failed to delete: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint deleted: + summary: Webhook endpoint deleted + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + /v1/workspaces: + get: + summary: List all workspaces + tags: + - Workspaces + security: + - bearer: [] + responses: + '200': + description: Workspaces retrieved + content: + application/json: + examples: + Workspaces retrieved: + value: + data: + - id: 406e4fb7-51e0-44c4-8351-a85cce68de1d + name: Workspace 1 + - id: 12e9f1f9-b2fb-4449-b57b-7ed8e2706272 + name: Workspace 2 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Workspace' + list_meta: + $ref: '#/components/schemas/ListMeta' diff --git a/sdks/db/fixed-specs-cache/goody-fixed-spec.yaml b/sdks/db/fixed-specs-cache/goody-fixed-spec.yaml new file mode 100644 index 000000000..1825cc564 --- /dev/null +++ b/sdks/db/fixed-specs-cache/goody-fixed-spec.yaml @@ -0,0 +1,3015 @@ +publishJson: + company: Goody + serviceName: false + sdkName: goody-{language}-sdk + clientName: Goody + metaDescription: >- + Goody is a new way to send personal and business gifts as easily as a text + message. + + + Our business gifting platform, Goody for Business, powers employee + engagement, client appreciation, and sales prospecting gifts at more than + 12,000 leading companies. Goody integrates with 30 leading HR platforms, + allowing companies to automatically gift employees on birthdays and work + anniversaries. + + + Choose from a curated gift collection of 250+ brands. Send a gift with only + an email or phone number — no address required. Let gift recipients swap + your gift for equal or lower-priced options, with no pricing shown. + apiStatusUrls: inherit + homepage: www.ongoody.com/ + developerDocumentation: developer.ongoody.com/introduction/overview + categories: + - hr + - employee_engagement + - gifts + - sales + - client_appreciation + - platform +rawSpecString: | + openapi: 3.0.1 + info: + title: Goody API + version: 1.0.0 + contact: + name: Goody Support + email: support@ongoody.com + components: + schemas: + Error: + type: object + properties: + error: + type: string + required: + - error + ListMeta: + type: object + properties: + total_count: + type: integer + description: The total number of items in this list. + OrderBatch: + type: object + description: >- + An order batch is the primary resource created by the API. Order batches + contain an array of orders. + properties: + id: + type: string + format: uuid + send_status: + $ref: '#/components/schemas/OrderBatchSendStatus' + description: >- + The `pending` status indicates that an order batch is being prepared + to be sent out. If it is not scheduled, it is being sent + asynchronously. If it is scheduled, it will stay in `pending` state + until the scheduled time is reached, at which point it will be + processed and moved to `complete`. When it is in `pending` status, + no orders are created yet. When the order batch is in `complete` + status, all orders are created and available. + from_name: + type: string + description: >- + The name of the sender. This is displayed on the order and + notifications. + message: + type: string + nullable: true + description: The message in this order batch, provided by the sender. + orders_count: + type: integer + description: >- + The total number of orders in this order batch. This might be blank + if the order batch is scheduled for the future, or it could be fewer + than the recipient count if the order batch is in the process of + being sent. + orders_preview: + type: array + items: + $ref: '#/components/schemas/Order' + description: >- + A preview of the first 10 orders in this order batch. To paginate + through all of the orders, use the `/order_batches/:id/orders` + endpoint with `?page&per_page`. If your use case never sends more + than 10 orders in a single batch, you can use this field instead of + calling `/order_batches/:id/orders`. For order batches with more + than 10 recipients, this array will be empty while the orders are + asynchronously created in the background. + recipients_count: + type: integer + description: The total number of recipients in this order batch. + recipients_preview: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + description: >- + A preview of the first 10 recipients in this order batch. To see all + of the recipients, use `/order_batches/:id/recipients`. Recipients + contain the original contact information provided for each recipient + when the order batch was created. + cart: + $ref: '#/components/schemas/Cart' + description: >- + The cart that was sent for this order batch. This is the original + cart that was created for this order batch. If individual orders + were swapped, this still remains the same, whereas orders' `cart` + would change if they were swapped. + is_scheduled_send: + type: boolean + description: >- + Whether this order batch was set up as a scheduled send. This stays + as `true` after the scheduled send is complete. To determine if the + order batch is scheduled to be sent for the future, check if + `status` is `pending` and `scheduled_send_on` is in the future. When + a order batch is scheduled, orders are only created on the scheduled + send date. + scheduled_send_on: + type: string + format: date-time + description: >- + The date and time the order batch is scheduled to be sent. This will + be `null` if the order batch is not a scheduled send. This field + remains after the scheduled send completes. ISO 8601, UTC. + nullable: true + expires_at: + type: string + format: date-time + description: The date and time the order batch is set to expire. ISO 8601, UTC. + nullable: true + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + nullable: true + batch_name: + type: string + nullable: true + description: >- + An internal name for the order batch, falling back to an + auto-generated batch name. Not displayed to recipients. + card_id: + type: string + format: uuid + nullable: true + description: The digital greeting card on this order batch. + sender: + $ref: '#/components/schemas/Sender' + description: The sender of the order batch. + workspace_id: + type: string + format: uuid + nullable: true + description: >- + Organizations are sub-divided into workspaces. Order batches are + contained in workspaces, identified by this ID. + workspace_name: + type: string + nullable: true + reference_id: + type: string + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order batch. + required: + - id + - send_status + - orders_preview + - orders_count + - cart + - from_name + - recipients_preview + - recipients_count + - sender + - reference_id + Order: + type: object + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + properties: + id: + type: string + format: uuid + recipient_first_name: + type: string + recipient_last_name: + type: string + nullable: true + recipient_email: + type: string + nullable: true + status: + $ref: '#/components/schemas/OrderStatus' + individual_gift_link: + type: string + description: >- + This gift link can be sent to the recipient or shared with the + sender. For privacy reasons, this gift link does not display + tracking information. A separate link, the recipient link, is sent + directly to the recipient after they accept their gift, which does + contain tracking information. + cart: + $ref: '#/components/schemas/Cart' + description: >- + The cart currently on this order. If the order is a gift that was + swapped, `cart` displays the most recent products selected (i.e. + post-swap). + shipments: + type: array + items: + $ref: '#/components/schemas/Shipment' + description: A list of the shipments for the order. + workspace_id: + type: string + format: uuid + nullable: true + description: >- + Organizations are sub-divided into workspaces. Orders are contained + in workspaces, identified by this ID. + workspace_name: + type: string + nullable: true + expires_at: + type: string + format: date-time + description: For gifts, the date and time the gift is set to expire. + nullable: true + card_id: + type: string + format: uuid + nullable: true + description: The digital greeting card on this gift. + message: + type: string + nullable: true + description: The message in this gift, provided by the sender. + thank_you_note: + type: string + nullable: true + description: A thank you note sent by the recipient. + view_count_recipient: + type: integer + description: The number of times the recipient viewed the gift. + is_swapped: + type: boolean + description: >- + If this gift was swapped by the recipient. Swapping allows a + recipient to select another product or products, which replaces the + `cart`. The original products are saved to `original_cart`. + order_batch_id: + type: string + format: uuid + description: >- + On Goody for Business, all orders are attached to a order batch, + which is a collection of one or more orders. + amounts: + type: object + description: >- + Costs in USD cents (i.e. $1.00 = 100). If the order was swapped, + `amounts` displays the most recent amounts (i.e. post-swap). + properties: + amount_product: + type: integer + description: Total cost of the products in this order. + amount_shipping: + type: integer + description: Total cost of shipping for this order. + amount_processing_fee: + type: integer + nullable: true + description: Total cost of processing fees for this order. + amount_credit_applied: + type: integer + nullable: true + description: Total amount of credit applied to this order. + amount_pre_tax_total: + type: integer + description: >- + Total cost of the products, shipping, and processing fees in + this order. + amount_tax: + type: integer + nullable: true + description: Total tax for this order. + amount_total: + type: integer + nullable: true + description: >- + Total cost of the products, shipping, processing fees, tax, and + global shipping costs in this order. + amount_global_relay_cost: + type: integer + nullable: true + description: >- + Total cost of global shipping for this order through the Global + Relay service. + required: + - amount_product + - amount_shipping + - amount_pre_tax_total + event_times: + type: object + description: Only provided when calling the /orders/:id endpoint. + properties: + created_at: + type: string + format: date-time + description: ISO 8601 + notified_at: + type: string + format: date-time + description: When the recipient was notified of the order. + nullable: true + opened_at: + type: string + format: date-time + description: For gifts, when the recipient opened the order. + nullable: true + accepted_at: + type: string + format: date-time + description: For gifts, when the recipient accepted the order. + nullable: true + pending_payment_at: + type: string + format: date-time + description: When the order entered pending payment status. + nullable: true + paid_at: + type: string + format: date-time + description: When the order was paid for. + nullable: true + shipped_at: + type: string + format: date-time + description: >- + When the order was first shipped. If there are multiple + shipments, this is when the first shipment shipped. + nullable: true + delivered_at: + type: string + format: date-time + description: >- + When the order was delivered. If there are multiple shipments, + this is when all shipments were delivered. + nullable: true + required: + - created_at + nullable: true + original_cart: + $ref: '#/components/schemas/Cart' + description: >- + If this order is a gift that was swapped, this displays the original + cart that was sent to the recipient. + nullable: true + original_amounts: + type: object + description: >- + If this order is a gift that was swapped, this displays the original + amounts of the cart that was sent to the recipient. + properties: + original_amount_product: + type: integer + nullable: true + original_amount_shipping: + type: integer + nullable: true + original_amount_credit_applied: + type: integer + nullable: true + original_amount_pre_tax_total: + type: integer + nullable: true + nullable: true + sender: + $ref: '#/components/schemas/Sender' + description: The Goody user who sent this order. + reference_id: + type: string + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order. + required: + - id + - recipient_first_name + - status + - individual_gift_link + - cart + - shipments + - amounts + - sender + - reference_id + OrderBatchRecipient: + type: object + properties: + first_name: + type: string + last_name: + type: string + nullable: true + email: + type: string + nullable: true + required: + - first_name + Cart: + type: object + properties: + id: + type: string + format: uuid + items: + type: array + items: + $ref: '#/components/schemas/CartItem' + CartItem: + type: object + properties: + id: + type: string + format: uuid + product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + type: object + description: The brand that this product is from. + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + required: + - id + - name + - brand + quantity: + type: integer + required: + - id + - product + - quantity + OrderBatchSendStatus: + type: string + enum: + - pending + - complete + - failed + - canceled + OrderStatus: + type: string + enum: + - created + - notified + - opened + - accepted + - pending_payment + - paid + - ordered + - shipped + - delivered + - failed + - canceled + Shipment: + type: object + properties: + id: + type: string + format: uuid + status: + type: string + enum: + - pending + - tracking + - shipped + - delivered + - delivered_override + - failed + - failed_unset_tracking + - failed_with_reship + brand_name: + type: string + description: The name of the brand that this shipment is from. + tracking_carrier: + type: string + nullable: true + description: The carrier for this shipment, e.g. UPS. + tracking_number: + type: string + nullable: true + description: Only for approved distribution partners. + shipped_at: + type: string + format: date-time + description: ISO 8601 + nullable: true + delivered_at: + type: string + format: date-time + description: ISO 8601 + nullable: true + delivery_eta: + type: string + format: date-time + description: The estimated delivery time of this shipment. + nullable: true + required: + - id + - status + - brand_name + Product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + $ref: '#/components/schemas/Brand' + subtitle: + type: string + nullable: true + description: A description of this product. + subtitle_short: + type: string + nullable: true + description: >- + An optional one-line description of this product. When provided, it + overrides the subtitle when displayed in areas with less space. Not + always provided. + recipient_description: + type: string + nullable: true + description: >- + An optional description of this product with custom verbiage for + recipients. When provided, it overrides the subtitle for the product + when displayed to the recipient. Falls back to the subtitle. + variants_label: + type: string + nullable: true + description: The label for the variants of this product, e.g. "Size" or "Color". + variants_num_selectable: + type: integer + nullable: true + description: >- + The number of variants that can be selected for this product. For + example, if this is a t-shirt, then this would be 1, since you can + only select one size. If this were a build-a-box of chocolates, this + could be 3 if you could select 3 flavor variants. + variants: + type: array + items: + $ref: '#/components/schemas/ProductVariant' + images: + type: array + items: + $ref: '#/components/schemas/ProductImage' + price: + type: integer + description: The price of the product, in cents. + price_is_variable: + type: boolean + description: >- + Whether the price of this product is variable. If true, then the + price can be set by the sender. + price_min: + type: integer + nullable: true + description: >- + The minimum price of the product, in cents. Only used if + price_is_variable is true. + price_max: + type: integer + nullable: true + description: >- + The maximum price of the product, in cents. Only used if + price_is_variable is true. + restricted_states: + type: array + items: + type: string + description: The US states that this product cannot be shipped to. + reserved_options: + type: object + description: For approved API partners only. + properties: + custom_price_tier: + type: integer + nullable: true + description: >- + For approved API partners only. A custom price tier for this + product. + nullable: true + required: + - id + - name + - brand + - variants + - images + - price + - price_is_variable + - restricted_states + Brand: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + shipping_price: + type: integer + description: The price of shipping for this brand, in cents. + commerce_revshare_excluded: + type: boolean + description: >- + Whether this brand is excluded from the commerce revenue share. Only + displayed on the products endpoint when using a commerce app. + nullable: true + required: + - id + - name + - shipping_price + ProductImage: + type: object + properties: + id: + type: string + format: uuid + image_large: + $ref: '#/components/schemas/Image' + required: + - id + - image_large + ProductVariant: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + image_large: + $ref: '#/components/schemas/Image' + nullable: true + subtitle: + type: string + nullable: true + required: + - id + - name + Image: + type: object + properties: + url: + type: string + width: + type: integer + height: + type: integer + required: + - id + - large_url + MailingAddress: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + address_1: + type: string + address_2: + type: string + nullable: true + city: + type: string + state: + type: string + postal_code: + type: string + country: + type: string + nullable: true + description: >- + The two-letter country code, e.g. "US". Only US is supported at this + time. + required: + - address_1 + - city + - state + - postal_code + - country + Me: + type: object + properties: + email: + type: string + nullable: true + public_app_id: + type: string + nullable: true + Sender: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + required: + - first_name + - last_name + - email + PaymentMethod: + type: object + properties: + id: + type: string + name: + type: string + cardholder_name: + type: string + nullable: true + description: >- + For payment methods with a cardholder name, returns the name on the + card. + balance: + type: integer + nullable: true + description: >- + For payment methods with a balance, returns the available balance on + the payment method. + required: + - id + - name + Workspace: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + OrderBatchInput: + type: object + description: Input parameters for an order batch. + properties: + from_name: + type: string + description: >- + The name of the sender of the order (typically a gift), to be + displayed as "from". + message: + type: string + description: >- + For gifts, a message for the gift to be displayed in the digital + unwrapping and email notifications, if enabled. + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientInput' + cart: + $ref: '#/components/schemas/CartInput' + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + card_id: + type: string + format: uuid + description: >- + The digital greeting card to attach to gifts. A card must be + specified if a message is specified, since the message is displayed + after the card is opened. + payment_method_id: + type: string + description: >- + The payment method used to pay for this order batch. If not + specified, defaults to the first payment method on the account. If + the account has no payment methods, then the order batch creation + will fail. + workspace_id: + type: string + format: uuid + description: >- + Workspace to create the order batch in. If not specified, creates + the order batch in the oldest workspace the user has access to. + scheduled_send_on: + type: string + format: date-time + description: >- + The date and time at which the order batch will be sent. If not + specified, the order batch is sent immediately. If an order batch is + scheduled to be sent in the future, then orders will not be created + until the scheduled send time. ISO 8601 format. + nullable: true + expires_at: + type: string + format: date-time + description: >- + The date and time at which the order batch will expire. If not + specified, the order batch does not expire. An expiry must be set + for orders paid using account balance. ISO 8601 format. + nullable: true + reserved_options: + type: object + description: For approved API partners only. + properties: + custom_price_tier: + type: integer + nullable: true + description: >- + For approved API partners only. A custom price tier to set on + this order batch. + nullable: true + required: + - from_name + - recipients + - cart + - send_method + CartInput: + type: object + properties: + items: + type: array + items: + $ref: '#/components/schemas/CartItemInput' + description: An array of cart items. + CartItemInput: + type: object + properties: + product_id: + type: string + format: uuid + nullable: true + description: >- + ID of the product. Preferred over URL since this is always stable. + Either `product_id` or `product_url` must be provided. + product_url: + type: string + nullable: true + description: >- + URL of the product. Either `product_id` or `product_url` must be + provided. + quantity: + type: integer + variable_price: + type: integer + description: >- + If this product has a variable price (e.g. a flex gift or a gift + card), then this must be provided. A positive integer represented in + cents. + variants: + type: array + items: + type: string + description: >- + An array of variant names (not IDs). When using the Direct Send send + method with a product with variants, the variants must be provided. + The length of the array must be equal to `variants_num_selectable` + on the product, and the variants must come from the names of the + `varaints` on the product. For example, for a t-shirt with + `variants_num_selectable` = 1 and variants S, M, L, pass ['M']. Or, + for a box of cookies with `variants_num_selectable` = 2 and variants + Sugar, Caramel, Chocolate, pass ['Sugar', 'Chocolate']. + required: + - product_id + - quantity + OrderBatchSendMethod: + type: string + enum: + - email_and_link + - link_multiple_custom_list + - direct_send + description: >- + The method for sending a order batch. `email_and_link` sends a gift + email to the recipient (specify `email` for each recipient). + `link_multiple_custom_list` generates a gift link without an automatic + email. `direct_send` ships the product directly to the recipient + (specify `mailing_address` for each recipient). For more information, + see [Send Methods](https://assets.ongoody.com). + RecipientInput: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + mailing_address: + $ref: '#/components/schemas/MailingAddress' + description: >- + Optional mailing address to pre-populate into the order. This field + is only available for approved API partners. + required: + - first_name + WebhookInput: + type: object + description: Input parameters for a webhook endpoint. + properties: + url: + type: string + description: The URL for the webhook to call. + events: + type: array + items: + type: string + nullable: true + description: >- + Filter the events you want to get webhooks for. Refer to the + Webhooks list for the event names. + securitySchemes: + bearer: + type: http + scheme: bearer + description: Your Goody API key. + servers: + - url: https://api.ongoody.com + description: Production + - url: https://api.sandbox.ongoody.com + description: Sandbox + paths: + /v1/me: + get: + summary: Retrieve current user + tags: + - Me + security: + - bearer: [] + responses: + '200': + description: Me retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/Me' + '401': + description: Failed to authorize + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches: + post: + summary: Create an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: [] + responses: + '201': + description: Order batch created using product URL in cart + content: + application/json: + examples: + Order batch created (10 or fewer recipients): + value: + id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: f9afd3e0-4bf8-45a0-b8ff-2956740845d9 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/kkmTY4JyoYs7KgaLxd7rBaqM + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: UFL9TUBEPLAJYYVJZOSH1YH4 + - id: e2d608c6-cf4a-40ad-af32-6e30b2cdc347 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RsH9NdSrzuVtLVNxjaew6CfO + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: ZMAUHA0OZF1U9WEKPJ8ISZSG + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + reference_id: FAQAQCVFFRBCXSQIAVABPXWR + Order batch created (more than 10 recipients): + value: + id: 59b13ea3-e08f-4e5d-aa26-45ae505957fc + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 11 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: ceecbddb-fdca-413d-9c12-2bfc8eb301f2 + items: + - id: 0a753de0-4a0c-41be-b6c2-4afba7a5ca1b + quantity: 1 + product: + id: ea3e9769-eea2-4aa2-bece-8a32e26386b9 + name: Cookies + brand: + id: 99e6c1cb-6b48-45e6-b695-2d5498230286 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: 11 recipients + card_id: 7e8d1f0b-d9e0-4663-8ae9-c2fc38d4fb0d + sender: + first_name: Test + last_name: User + email: 15554156359@test.ongoody.com + workspace_id: 45e1ef6e-6ba0-4b81-8c2e-155a81f1b365 + workspace_name: Test Team + reference_id: 3S2SNBKTKN7SJDQWE88PHJ1A + Scheduled order batch created: + value: + id: 8516d9ee-968b-4ed6-a254-379e68732c62 + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: f5f1a7ea-325e-470f-a085-9b6e54907c8e + items: + - id: 53e4915c-788d-4105-98c4-17f37b1f5724 + quantity: 1 + product: + id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + name: Cookies + brand: + id: 0410e2be-6359-4940-af15-5ee84805ec11 + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + sender: + first_name: Test + last_name: User + email: 15558391444@test.ongoody.com + workspace_id: 5e3072af-ce47-4152-87f6-388cecb6fa90 + workspace_name: Test Team + reference_id: 1NJ8TOA7O5CKDELTKIGR4RRV + Order batch created with recipient address: + value: + id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 5300f2c0-04ed-4b35-8e51-beb814e5737c + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/Jm5Ss9lzUkjZnImBalLlcTu3 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DNRURLZYRYDPEUYZXRXJMMFH + - id: 174beb23-ad17-4455-8525-e07129dccc9d + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/alTiXF5X4KRQzt1SGDMqrrxy + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 0LBFVLB2V9S2KUQKUNBERDDS + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + reference_id: OKSZ8OJQ9ZPZDFXNG6JMAR9W + Order batch created (using product URL in cart): + value: + id: 040bf69d-2a2f-4eef-9365-a82788091e50 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 1d18374e-99a5-46a4-ac9a-2c28f6ee17d0 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/CFA2TU7QNeVgUgozNx00D5YQ + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 6A5KGQ0KPQGOUX57C2KUQF0Q + - id: 82eb8825-34d5-4d3b-a682-26e2e781cebf + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZBD7op8PFrEC59nZsXjPELUF + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 1C7DPYGDYYUE5IQOFYXT9NZ2 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: '2023-08-10T21:50:34Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + reference_id: WBRN7MAB7LNPILVFLYAOOZNC + schema: + $ref: '#/components/schemas/OrderBatch' + '400': + description: Bad request when using invalid product URL in cart + content: + application/json: + examples: + Order batch without recipients fails to create: + value: + error: Recipients can't be blank + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrderBatchInput' + examples: + Order batch created: + summary: Order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + quantity: 1 + Scheduled order batch created: + summary: Scheduled order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + Order batch created with recipient address: + summary: Order batch created with recipient address + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + mailing_address: + first_name: Alena + last_name: Kenter + address_1: 1 Main St + address_2: Apt 123 + city: New York + state: NY + postal_code: '10022' + country: US + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + mailing_address: + first_name: Michael + last_name: Franci + address_1: 1 Main St + address_2: Apt 124 + city: New York + state: NY + postal_code: '10022' + country: US + cart: + items: + - product_id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + quantity: 1 + Order batch created using product URL in cart: + summary: Order batch created using product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + http://example.com/browse/brands/cookie-company/cookies + quantity: 1 + expires_at: '2023-08-10T21:50:34Z' + Bad request: + summary: Bad request + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: b1faebbd-8482-4f90-9892-b25b6bbb9370 + recipients: [] + cart: + items: + - product_id: 3069c348-08c0-49b7-a2f7-cef5c3732485 + quantity: 1 + Bad request when using invalid product URL in cart: + summary: Bad request when using invalid product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 69c58b24-0273-4068-a8d9-cb63a7841ef2 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + https://www.ongoody.com/browse/brands/invalid-brand/invalid-product + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:34Z' + expires_at: '2023-08-10T21:50:34Z' + get: + summary: List order batches + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Order batches retrieved + content: + application/json: + examples: + Order batches retrieved: + value: + data: + - id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + send_status: complete + from_name: Carlee + message: null + orders_count: 2 + orders_preview: + - id: f6ceb426-4d03-438e-b0d9-1063e22982fd + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/XO7BKKHMGOQFJ0B0RYDCPZCI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: AWU6DOLO0JOV2WT0TVFIVDLY + - id: 518d338b-64a0-49e8-a235-4b853ef3668f + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/EOEC0JRXBBHUCKFSHKUQBFAE + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: OOWOL8COFAMN2AMHJZSHCMPA + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Greenholt, Heidenreich and Lubowitz + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: SXKSP7TFRPG507W2HWUPRIBE + - id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + send_status: complete + from_name: Micah + message: null + orders_count: 2 + orders_preview: + - id: 607da8c9-51a5-4375-804a-72a9c7d47234 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RPGZMCCYCYNFS0QIWLMUFY87 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YJNR4BMPZ4AIRDYXOHEA1IQR + - id: adeff9fb-92ed-48ca-8a7c-68ac703b14e4 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZD5RHZK6M5MHV6SKPZXS18AB + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WTQMNF4DC0XRPTW8CIWBHOVP + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Baumbach, Treutel and Hand + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: HX6LDJ4Q9T3CP91CMBCXH5P7 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatch' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/order_batches/{id}/orders: + get: + summary: Retrieve orders for an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Orders retrieved with pagination + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: 4f010d07-2003-497c-8361-7a189bf54981 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/I1BMEGEXCBJPJWZVQNPKYEO8 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: CZ7I0FAZYYPDUJU0TSH82XI7 + - id: ed4ae89d-3391-47ab-bdb3-084979cd2a52 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/9SICCNKU3DD0JYMSO1LQR970 + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: KDNRICONAYGLJVSYKD4MXUG6 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}/recipients: + get: + summary: Retrieve recipients for an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Recipients retrieved with pagination + content: + application/json: + examples: + Recipients retrieved for sent order batch: + value: + data: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + list_meta: + total_count: 2 + Recipients retrieved for scheduled order batch with pagination: + value: + data: + - first_name: Alice + last_name: Wilson + email: alice@ongoody.com + list_meta: + total_count: 11 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + list_meta: + $ref: '#/components/schemas/ListMeta' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}: + get: + summary: Retrieve an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + responses: + '200': + description: Scheduled order batch retrieved + content: + application/json: + examples: + Order batch retrieved: + value: + id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + send_status: complete + from_name: Therese + message: null + orders_count: 2 + orders_preview: + - id: ef7934de-3070-4a51-a401-d5e47d4a7af7 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/VIDPJNQSVUTPGSXNBOLFMWAY + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: LNAUPJAZJUJY3LYTVTXYFJEI + - id: 6fd492a9-d076-4f98-bc26-56fb24071c83 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/QE2TTDTYWV09L7RX8MV61CUS + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YLQ6L5VVP63TOETJPN1BP9J6 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Rutherford-Swaniawski + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + reference_id: CIG8UJVGQSL6IAD5PFTBZ3UW + Scheduled order batch retrieved: + value: + id: 1f333da0-c0e2-4799-9ef1-44fc48cd3ed7 + send_status: pending + from_name: Clarisa + message: null + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: da980af6-5521-451d-8d7c-5acbfaf5ca69 + items: + - id: 9a170b61-b1ae-4f13-9e6c-ca3ace302ca3 + quantity: 1 + product: + id: 67aaa3e1-75e8-4fca-8b30-c48f60a226b4 + name: Cookies + brand: + id: bff2cdcf-34ad-4ee6-a740-159110ff41ab + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:51Z' + expires_at: null + send_method: null + batch_name: Thank You from Konopelski, Prohaska and Howell + card_id: 2ac63cee-494c-4ba7-a02a-7d00f7c59cd5 + sender: + first_name: Test + last_name: User + email: 15557649249@test.ongoody.com + workspace_id: 160718bf-f931-42bc-a9d4-058b3ee8ff28 + workspace_name: Test Team + reference_id: IELD012QXOVQTE6SVNBSXDMQ + schema: + $ref: '#/components/schemas/OrderBatch' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/cancel: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + post: + summary: Cancel an order + tags: + - Orders + security: + - bearer: [] + responses: + '200': + description: Order canceled + content: + application/json: + examples: + Order canceled: + value: + id: 15bf6e5f-1ede-49fd-9e5a-9552f4d0ac0e + status: failed + individual_gift_link: https://gifts.ongoody.com/gift/YJSOJEDZQOPQABGFDDFBXXFI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: db002015-4ac2-4be0-a9f0-88a0eb610c81 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 380bbd4c-8e00-4434-b06a-6ad85be22ec3 + expires_at: null + cart: + id: 7dcedae6-bad9-48a9-9fc7-8307cfd6d407 + items: + - id: de545223-6624-455c-b093-44626f07955f + quantity: 1 + product: + id: 92c58048-f7a6-4247-98c5-5c9739b0db41 + name: Cookies + brand: + id: c24bf660-22ae-411a-bfc8-4663c8053748 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559388988@test.ongoody.com + workspace_id: 2724b1c3-76c3-493d-9e28-62404b6ad8a7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WPKL1ASIFJCGZXK72X1NKJPD + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders: + get: + summary: List orders + tags: + - Orders + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Orders retrieved + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: ae16f352-bd26-4f6e-ab86-4841cfd955cc + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/WXFRB5VPRJWT6W4L2PJLQR0J + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YWENSHQUBRLZDVXUXB5BSFTP + - id: 8ffa3505-6be3-4af3-a32b-c48b83fb60f8 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/MMT9TGVG5UQO69FSWZBBBW5Z + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DTRFOXPQG3KSXIQQ99VMUEIA + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/orders/{id}: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + get: + summary: Retrieve an order + tags: + - Orders + security: + - bearer: [] + responses: + '200': + description: Order retrieved + content: + application/json: + examples: + Order retrieved: + value: + id: 34cd9caa-0fe1-4dfb-a3d0-5711c9df8ec4 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/J7TUYJHBGO4NC42YMHDCRQFH + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 95babe93-dd49-4957-a817-e300c36699e9 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: e2a4c099-cf00-4f62-a0b6-aa118de56ec1 + expires_at: null + cart: + id: f9b8607e-bcf1-471a-b400-a7abd8a00137 + items: + - id: 028c7f0b-2384-428f-9428-79231a350803 + quantity: 1 + product: + id: 3b97a15c-ae39-4336-8ffd-1afc80ec5441 + name: Cookies + brand: + id: 4bd59775-433e-443d-9a85-0494037462bc + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559181726@test.ongoody.com + workspace_id: 3e5d8ea5-d804-433a-a4f9-6115d830f624 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WXIONMAL1CECENU5GCWENJOD + event_times: + created_at: '2023-07-13T21:50:59Z' + notified_at: null + opened_at: null + accepted_at: null + thank_you_added_at: null + pending_payment_at: null + paid_at: null + shipped_at: null + delivered_at: null + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/update_expiration: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + post: + summary: Update expiration for an order + tags: + - Orders + security: + - bearer: [] + parameters: [] + responses: + '200': + description: Expiration updated + content: + application/json: + examples: + Expiration updated: + value: + id: 42728b42-22e6-4b2f-bb9e-657a8a0f2131 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/IINOSUPYGGTV0FVCTSVEELRW + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bcdbf600-d67d-4253-b1d2-1df7db6b9599 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cfebcd18-847b-48ac-a71a-b99db2be697e + expires_at: '2022-02-01T00:00:00Z' + cart: + id: e4792f3a-4a4a-49cd-8389-a5859418a834 + items: + - id: 73db4e2a-e54c-4b79-8b54-a8cade7b40e1 + quantity: 1 + product: + id: c927e27c-b5c0-4d6d-80e8-9731b6755558 + name: Cookies + brand: + id: ae711da0-ffe0-4e0b-b567-60df3aa18cb2 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15552952554@test.ongoody.com + workspace_id: 60a36ddd-2b00-4a2c-ad81-71a3ef49a1ba + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 5YAKD6BGHKQLSEUG0EFEPQJ8 + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + type: object + properties: + expiration: + type: string + format: date-time + example: 2022-02-01T00:00:00+0000 + description: New expiration date in ISO 8601 format + /v1/payment_methods: + get: + summary: List all payment methods + tags: + - Payment Methods + security: + - bearer: [] + responses: + '200': + description: Payment methods retrieved + content: + application/json: + examples: + Payment methods retrieved: + value: + data: + - id: 6e8b135b-6034-4300-bea0-9e006dc7302c + name: Visa 1234 + cardholder_name: Card 1 + - id: aacd0e9a-2b73-419d-bc52-67551666adcd + name: Mastercard 5678 + cardholder_name: Card 2 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentMethod' + list_meta: + $ref: '#/components/schemas/ListMeta' + '401': + description: Failed to authorize + content: + application/json: + examples: + Unauthorized: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + /v1/products: + get: + summary: List all active products + tags: + - Products + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + - name: use_custom_catalog + in: query + schema: + type: boolean + description: Limit to custom catalog only (for approved API partners) + required: false + responses: + '200': + description: Products retrieved + content: + application/json: + examples: + Products retrieved: + value: + data: + - id: 72b6b5c2-1fa9-425e-affb-91bf684b66e2 + name: Dozen Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 6d956b61-6704-4fe6-88c1-405eae464da4 + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: ce309ead-b95e-4332-ad1d-0500deb9f953 + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 05ffb0d2-9759-4970-861d-a8b868056998 + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + - id: e4710eb2-6532-4efa-86c5-8c70a39a7bc6 + name: Six Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 9a5072ef-1ee2-4b8c-ad72-ce70d051b6dc + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: 95ccc62c-46f6-4617-9bd6-bd2f9743551c + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 6fa93286-90d8-41c8-a732-2dda85bd410f + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Product' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/webhooks: + post: + summary: Create a webhook endpoint + tags: + - Webhooks + security: + - bearer: [] + parameters: [] + responses: + '201': + description: Webhook endpoint created + content: + application/json: + examples: + Webhook endpoint created: + value: + id: 77b82a8a-760e-4341-9880-3f57d15c5faa + schema: + type: object + properties: + id: + type: string + '400': + description: Webhook endpoint not created + content: + application/json: + examples: + Webhook endpoint failed to create: + value: + error: Unauthorized. You must be an admin to manage webhooks. + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint created: + summary: Webhook endpoint created + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + /v1/webhooks/{id}: + parameters: + - name: id + in: path + description: Webhook endpoint ID + required: true + schema: + type: string + delete: + summary: Delete a webhook endpoint + tags: + - Webhooks + security: + - bearer: [] + parameters: [] + responses: + '204': + description: Webhook endpoint deleted + '400': + description: Webhook endpoint not deleted + content: + application/json: + examples: + Webhook endpoint failed to delete: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint deleted: + summary: Webhook endpoint deleted + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + /v1/workspaces: + get: + summary: List all workspaces + tags: + - Workspaces + security: + - bearer: [] + responses: + '200': + description: Workspaces retrieved + content: + application/json: + examples: + Workspaces retrieved: + value: + data: + - id: 406e4fb7-51e0-44c4-8351-a85cce68de1d + name: Workspace 1 + - id: 12e9f1f9-b2fb-4449-b57b-7ed8e2706272 + name: Workspace 2 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Workspace' + list_meta: + $ref: '#/components/schemas/ListMeta' +konfigCliVersion: 1.38.34 diff --git a/sdks/db/fixed-specs/goody-fixed-spec.yaml b/sdks/db/fixed-specs/goody-fixed-spec.yaml new file mode 100644 index 000000000..8a9d822da --- /dev/null +++ b/sdks/db/fixed-specs/goody-fixed-spec.yaml @@ -0,0 +1,3043 @@ +openapi: 3.0.1 +info: + title: Goody API + description: >- + Goody is a new way to send personal and business gifts as easily as a text + message. + + + Our business gifting platform, Goody for Business, powers employee + engagement, client appreciation, and sales prospecting gifts at more than + 12,000 leading companies. Goody integrates with 30 leading HR platforms, + allowing companies to automatically gift employees on birthdays and work + anniversaries. + + + Choose from a curated gift collection of 250+ brands. Send a gift with only + an email or phone number — no address required. Let gift recipients swap + your gift for equal or lower-priced options, with no pricing shown. + version: 1.0.0 + contact: + name: Goody Support + email: support@ongoody.com +servers: + - description: Production + url: https://api.ongoody.com + - description: Sandbox + url: https://api.sandbox.ongoody.com +tags: + - name: Order Batches + - name: Orders + - name: Webhooks + - name: Me + - name: Payment Methods + - name: Products + - name: Workspaces +paths: + /v1/me: + get: + tags: + - Me + summary: Retrieve current user + operationId: Me_getCurrentUser + security: + - bearer: [] + responses: + '200': + description: Me retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/Me' + '401': + description: Failed to authorize + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches: + post: + tags: + - Order Batches + summary: Create an order batch + operationId: OrderBatches_createBatch + security: + - bearer: [] + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrderBatchInput' + examples: + Order batch created: + summary: Order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + quantity: 1 + Scheduled order batch created: + summary: Scheduled order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + Order batch created with recipient address: + summary: Order batch created with recipient address + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + mailing_address: + first_name: Alena + last_name: Kenter + address_1: 1 Main St + address_2: Apt 123 + city: New York + state: NY + postal_code: '10022' + country: US + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + mailing_address: + first_name: Michael + last_name: Franci + address_1: 1 Main St + address_2: Apt 124 + city: New York + state: NY + postal_code: '10022' + country: US + cart: + items: + - product_id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + quantity: 1 + Order batch created using product URL in cart: + summary: Order batch created using product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + http://example.com/browse/brands/cookie-company/cookies + quantity: 1 + expires_at: '2023-08-10T21:50:34Z' + Bad request: + summary: Bad request + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: b1faebbd-8482-4f90-9892-b25b6bbb9370 + recipients: [] + cart: + items: + - product_id: 3069c348-08c0-49b7-a2f7-cef5c3732485 + quantity: 1 + Bad request when using invalid product URL in cart: + summary: Bad request when using invalid product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 69c58b24-0273-4068-a8d9-cb63a7841ef2 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + https://www.ongoody.com/browse/brands/invalid-brand/invalid-product + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:34Z' + expires_at: '2023-08-10T21:50:34Z' + responses: + '201': + description: Order batch created using product URL in cart + content: + application/json: + examples: + Order batch created (10 or fewer recipients): + value: + id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: f9afd3e0-4bf8-45a0-b8ff-2956740845d9 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/kkmTY4JyoYs7KgaLxd7rBaqM + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: UFL9TUBEPLAJYYVJZOSH1YH4 + - id: e2d608c6-cf4a-40ad-af32-6e30b2cdc347 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RsH9NdSrzuVtLVNxjaew6CfO + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095X + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1X + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10X + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3X + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: ZMAUHA0OZF1U9WEKPJ8ISZSG + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095X + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1X + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10X + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3X + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + reference_id: FAQAQCVFFRBCXSQIAVABPXWR + Order batch created (more than 10 recipients): + value: + id: 59b13ea3-e08f-4e5d-aa26-45ae505957fc + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 11 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: ceecbddb-fdca-413d-9c12-2bfc8eb301f2 + items: + - id: 0a753de0-4a0c-41be-b6c2-4afba7a5ca1b + quantity: 1 + product: + id: ea3e9769-eea2-4aa2-bece-8a32e26386b9 + name: Cookies + brand: + id: 99e6c1cb-6b48-45e6-b695-2d5498230286 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: 11 recipients + card_id: 7e8d1f0b-d9e0-4663-8ae9-c2fc38d4fb0d + sender: + first_name: Test + last_name: User + email: 15554156359@test.ongoody.com + workspace_id: 45e1ef6e-6ba0-4b81-8c2e-155a81f1b365 + workspace_name: Test Team + reference_id: 3S2SNBKTKN7SJDQWE88PHJ1A + Scheduled order batch created: + value: + id: 8516d9ee-968b-4ed6-a254-379e68732c62 + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: f5f1a7ea-325e-470f-a085-9b6e54907c8e + items: + - id: 53e4915c-788d-4105-98c4-17f37b1f5724 + quantity: 1 + product: + id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + name: Cookies + brand: + id: 0410e2be-6359-4940-af15-5ee84805ec11 + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + sender: + first_name: Test + last_name: User + email: 15558391444@test.ongoody.com + workspace_id: 5e3072af-ce47-4152-87f6-388cecb6fa90 + workspace_name: Test Team + reference_id: 1NJ8TOA7O5CKDELTKIGR4RRV + Order batch created with recipient address: + value: + id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 5300f2c0-04ed-4b35-8e51-beb814e5737c + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/Jm5Ss9lzUkjZnImBalLlcTu3 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DNRURLZYRYDPEUYZXRXJMMFH + - id: 174beb23-ad17-4455-8525-e07129dccc9d + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/alTiXF5X4KRQzt1SGDMqrrxy + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23X + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06X + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6cX + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44X + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 0LBFVLB2V9S2KUQKUNBERDDS + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23X + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06X + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6cX + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44X + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + reference_id: OKSZ8OJQ9ZPZDFXNG6JMAR9W + Order batch created (using product URL in cart): + value: + id: 040bf69d-2a2f-4eef-9365-a82788091e50 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 1d18374e-99a5-46a4-ac9a-2c28f6ee17d0 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/CFA2TU7QNeVgUgozNx00D5YQ + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 6A5KGQ0KPQGOUX57C2KUQF0Q + - id: 82eb8825-34d5-4d3b-a682-26e2e781cebf + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZBD7op8PFrEC59nZsXjPELUF + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09X + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601X + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ffX + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392X + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 1C7DPYGDYYUE5IQOFYXT9NZ2 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09X + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601X + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ffX + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392X + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: '2023-08-10T21:50:34Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + reference_id: WBRN7MAB7LNPILVFLYAOOZNC + schema: + $ref: '#/components/schemas/OrderBatch' + '400': + description: Bad request when using invalid product URL in cart + content: + application/json: + examples: + Order batch without recipients fails to create: + value: + error: Recipients can't be blank + schema: + $ref: '#/components/schemas/Error' + get: + tags: + - Order Batches + summary: List order batches + operationId: OrderBatches_list + security: + - bearer: [] + parameters: + - description: Page for pagination, starting at 1 + name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + required: false + - description: Items per page for pagination + name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + required: false + responses: + '200': + description: Order batches retrieved + content: + application/json: + examples: + Order batches retrieved: + value: + data: + - id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + send_status: complete + from_name: Carlee + message: null + orders_count: 2 + orders_preview: + - id: f6ceb426-4d03-438e-b0d9-1063e22982fd + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/XO7BKKHMGOQFJ0B0RYDCPZCI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: AWU6DOLO0JOV2WT0TVFIVDLY + - id: 518d338b-64a0-49e8-a235-4b853ef3668f + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/EOEC0JRXBBHUCKFSHKUQBFAE + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4eddX + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38X + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6eX + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1X + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: OOWOL8COFAMN2AMHJZSHCMPA + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4eddX + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38X + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6eX + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1X + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Greenholt, Heidenreich and Lubowitz + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: SXKSP7TFRPG507W2HWUPRIBE + - id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + send_status: complete + from_name: Micah + message: null + orders_count: 2 + orders_preview: + - id: 607da8c9-51a5-4375-804a-72a9c7d47234 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RPGZMCCYCYNFS0QIWLMUFY87 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YJNR4BMPZ4AIRDYXOHEA1IQR + - id: adeff9fb-92ed-48ca-8a7c-68ac703b14e4 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZD5RHZK6M5MHV6SKPZXS18AB + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2X + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888X + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abfX + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fbX + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WTQMNF4DC0XRPTW8CIWBHOVP + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2X + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888X + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abfX + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fbX + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Baumbach, Treutel and Hand + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: HX6LDJ4Q9T3CP91CMBCXH5P7 + list_meta: + total_count: 2 + schema: + $ref: '#/components/schemas/OrderBatchesListResponse' + /v1/order_batches/{id}/orders: + get: + tags: + - Order Batches + summary: Retrieve orders for an order batch + operationId: OrderBatches_getOrders + security: + - bearer: [] + parameters: + - description: Order batch ID + name: id + in: path + required: true + schema: + type: string + - description: Page for pagination, starting at 1 + name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + required: false + - description: Items per page for pagination + name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + required: false + responses: + '200': + description: Orders retrieved with pagination + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: 4f010d07-2003-497c-8361-7a189bf54981 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/I1BMEGEXCBJPJWZVQNPKYEO8 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: CZ7I0FAZYYPDUJU0TSH82XI7 + - id: ed4ae89d-3391-47ab-bdb3-084979cd2a52 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/9SICCNKU3DD0JYMSO1LQR970 + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698dX + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042X + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8X + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1X + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: KDNRICONAYGLJVSYKD4MXUG6 + list_meta: + total_count: 2 + schema: + $ref: '#/components/schemas/OrderBatchesGetOrdersResponse' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + $ref: '#/components/schemas/OrderBatchesGetOrders400Response' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}/recipients: + get: + tags: + - Order Batches + summary: Retrieve recipients for an order batch + operationId: OrderBatches_getRecipients + security: + - bearer: [] + parameters: + - description: Order batch ID + name: id + in: path + required: true + schema: + type: string + - description: Page for pagination, starting at 1 + name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + required: false + - description: Items per page for pagination + name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + required: false + responses: + '200': + description: Recipients retrieved with pagination + content: + application/json: + examples: + Recipients retrieved for sent order batch: + value: + data: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + list_meta: + total_count: 2 + Recipients retrieved for scheduled order batch with pagination: + value: + data: + - first_name: Alice + last_name: Wilson + email: alice@ongoody.com + list_meta: + total_count: 11 + schema: + $ref: '#/components/schemas/OrderBatchesGetRecipientsResponse' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + $ref: '#/components/schemas/OrderBatchesGetRecipients400Response' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}: + get: + tags: + - Order Batches + summary: Retrieve an order batch + operationId: OrderBatches_get + security: + - bearer: [] + parameters: + - description: Order batch ID + name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: Scheduled order batch retrieved + content: + application/json: + examples: + Order batch retrieved: + value: + id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + send_status: complete + from_name: Therese + message: null + orders_count: 2 + orders_preview: + - id: ef7934de-3070-4a51-a401-d5e47d4a7af7 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/VIDPJNQSVUTPGSXNBOLFMWAY + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: LNAUPJAZJUJY3LYTVTXYFJEI + - id: 6fd492a9-d076-4f98-bc26-56fb24071c83 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/QE2TTDTYWV09L7RX8MV61CUS + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091X + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6X + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324X + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8X + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YLQ6L5VVP63TOETJPN1BP9J6 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091X + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6X + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324X + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8X + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Rutherford-Swaniawski + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + reference_id: CIG8UJVGQSL6IAD5PFTBZ3UW + Scheduled order batch retrieved: + value: + id: 1f333da0-c0e2-4799-9ef1-44fc48cd3ed7 + send_status: pending + from_name: Clarisa + message: null + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: da980af6-5521-451d-8d7c-5acbfaf5ca69 + items: + - id: 9a170b61-b1ae-4f13-9e6c-ca3ace302ca3 + quantity: 1 + product: + id: 67aaa3e1-75e8-4fca-8b30-c48f60a226b4 + name: Cookies + brand: + id: bff2cdcf-34ad-4ee6-a740-159110ff41ab + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:51Z' + expires_at: null + send_method: null + batch_name: Thank You from Konopelski, Prohaska and Howell + card_id: 2ac63cee-494c-4ba7-a02a-7d00f7c59cd5 + sender: + first_name: Test + last_name: User + email: 15557649249@test.ongoody.com + workspace_id: 160718bf-f931-42bc-a9d4-058b3ee8ff28 + workspace_name: Test Team + reference_id: IELD012QXOVQTE6SVNBSXDMQ + schema: + $ref: '#/components/schemas/OrderBatch' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/cancel: + parameters: + - description: id + name: id + in: path + required: true + schema: + type: string + post: + tags: + - Orders + summary: Cancel an order + operationId: Orders_cancelOrder + security: + - bearer: [] + responses: + '200': + description: Order canceled + content: + application/json: + examples: + Order canceled: + value: + id: 15bf6e5f-1ede-49fd-9e5a-9552f4d0ac0e + status: failed + individual_gift_link: https://gifts.ongoody.com/gift/YJSOJEDZQOPQABGFDDFBXXFI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: db002015-4ac2-4be0-a9f0-88a0eb610c81 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 380bbd4c-8e00-4434-b06a-6ad85be22ec3 + expires_at: null + cart: + id: 7dcedae6-bad9-48a9-9fc7-8307cfd6d407 + items: + - id: de545223-6624-455c-b093-44626f07955f + quantity: 1 + product: + id: 92c58048-f7a6-4247-98c5-5c9739b0db41 + name: Cookies + brand: + id: c24bf660-22ae-411a-bfc8-4663c8053748 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559388988@test.ongoody.com + workspace_id: 2724b1c3-76c3-493d-9e28-62404b6ad8a7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WPKL1ASIFJCGZXK72X1NKJPD + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders: + get: + tags: + - Orders + summary: List orders + operationId: Orders_getList + security: + - bearer: [] + parameters: + - description: Page for pagination, starting at 1 + name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + required: false + - description: Items per page for pagination + name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + required: false + responses: + '200': + description: Orders retrieved + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: ae16f352-bd26-4f6e-ab86-4841cfd955cc + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/WXFRB5VPRJWT6W4L2PJLQR0J + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YWENSHQUBRLZDVXUXB5BSFTP + - id: 8ffa3505-6be3-4af3-a32b-c48b83fb60f8 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/MMT9TGVG5UQO69FSWZBBBW5Z + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934X + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986adX + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0X + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310X + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DTRFOXPQG3KSXIQQ99VMUEIA + list_meta: + total_count: 2 + schema: + $ref: '#/components/schemas/OrdersGetListResponse' + /v1/orders/{id}: + parameters: + - description: id + name: id + in: path + required: true + schema: + type: string + get: + tags: + - Orders + summary: Retrieve an order + operationId: Orders_getById + security: + - bearer: [] + responses: + '200': + description: Order retrieved + content: + application/json: + examples: + Order retrieved: + value: + id: 34cd9caa-0fe1-4dfb-a3d0-5711c9df8ec4 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/J7TUYJHBGO4NC42YMHDCRQFH + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 95babe93-dd49-4957-a817-e300c36699e9 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: e2a4c099-cf00-4f62-a0b6-aa118de56ec1 + expires_at: null + cart: + id: f9b8607e-bcf1-471a-b400-a7abd8a00137 + items: + - id: 028c7f0b-2384-428f-9428-79231a350803 + quantity: 1 + product: + id: 3b97a15c-ae39-4336-8ffd-1afc80ec5441 + name: Cookies + brand: + id: 4bd59775-433e-443d-9a85-0494037462bc + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559181726@test.ongoody.com + workspace_id: 3e5d8ea5-d804-433a-a4f9-6115d830f624 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WXIONMAL1CECENU5GCWENJOD + event_times: + created_at: '2023-07-13T21:50:59Z' + notified_at: null + opened_at: null + accepted_at: null + thank_you_added_at: null + pending_payment_at: null + paid_at: null + shipped_at: null + delivered_at: null + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/update_expiration: + parameters: + - description: id + name: id + in: path + required: true + schema: + type: string + post: + tags: + - Orders + summary: Update expiration for an order + operationId: Orders_updateExpiration + security: + - bearer: [] + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrdersUpdateExpirationRequest' + responses: + '200': + description: Expiration updated + content: + application/json: + examples: + Expiration updated: + value: + id: 42728b42-22e6-4b2f-bb9e-657a8a0f2131 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/IINOSUPYGGTV0FVCTSVEELRW + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bcdbf600-d67d-4253-b1d2-1df7db6b9599 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cfebcd18-847b-48ac-a71a-b99db2be697e + expires_at: '2022-02-01T00:00:00Z' + cart: + id: e4792f3a-4a4a-49cd-8389-a5859418a834 + items: + - id: 73db4e2a-e54c-4b79-8b54-a8cade7b40e1 + quantity: 1 + product: + id: c927e27c-b5c0-4d6d-80e8-9731b6755558 + name: Cookies + brand: + id: ae711da0-ffe0-4e0b-b567-60df3aa18cb2 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15552952554@test.ongoody.com + workspace_id: 60a36ddd-2b00-4a2c-ad81-71a3ef49a1ba + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 5YAKD6BGHKQLSEUG0EFEPQJ8 + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/payment_methods: + get: + tags: + - Payment Methods + summary: List all payment methods + operationId: PaymentMethods_listAll + security: + - bearer: [] + responses: + '200': + description: Payment methods retrieved + content: + application/json: + examples: + Payment methods retrieved: + value: + data: + - id: 6e8b135b-6034-4300-bea0-9e006dc7302c + name: Visa 1234 + cardholder_name: Card 1 + - id: aacd0e9a-2b73-419d-bc52-67551666adcd + name: Mastercard 5678 + cardholder_name: Card 2 + list_meta: + total_count: 2 + schema: + $ref: '#/components/schemas/PaymentMethodsListAllResponse' + '401': + description: Failed to authorize + content: + application/json: + examples: + Unauthorized: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + /v1/products: + get: + tags: + - Products + summary: List all active products + operationId: Products_listActiveProducts + security: + - bearer: [] + parameters: + - description: Page for pagination, starting at 1 + name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + required: false + - description: Items per page for pagination + name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + required: false + - description: Limit to custom catalog only (for approved API partners) + name: use_custom_catalog + in: query + schema: + type: boolean + required: false + responses: + '200': + description: Products retrieved + content: + application/json: + examples: + Products retrieved: + value: + data: + - id: 72b6b5c2-1fa9-425e-affb-91bf684b66e2 + name: Dozen Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 6d956b61-6704-4fe6-88c1-405eae464da4 + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: ce309ead-b95e-4332-ad1d-0500deb9f953 + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 05ffb0d2-9759-4970-861d-a8b868056998 + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + - id: e4710eb2-6532-4efa-86c5-8c70a39a7bc6 + name: Six Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1X + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 9a5072ef-1ee2-4b8c-ad72-ce70d051b6dc + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: 95ccc62c-46f6-4617-9bd6-bd2f9743551c + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 6fa93286-90d8-41c8-a732-2dda85bd410f + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + list_meta: + total_count: 2 + schema: + $ref: '#/components/schemas/ProductsListActiveProductsResponse' + /v1/webhooks: + post: + tags: + - Webhooks + summary: Create a webhook endpoint + operationId: Webhooks_createEndpoint + security: + - bearer: [] + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint created: + summary: Webhook endpoint created + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + responses: + '201': + description: Webhook endpoint created + content: + application/json: + examples: + Webhook endpoint created: + value: + id: 77b82a8a-760e-4341-9880-3f57d15c5faa + schema: + $ref: '#/components/schemas/WebhooksCreateEndpointResponse' + '400': + description: Webhook endpoint not created + content: + application/json: + examples: + Webhook endpoint failed to create: + value: + error: Unauthorized. You must be an admin to manage webhooks. + schema: + $ref: '#/components/schemas/Error' + /v1/webhooks/{id}: + parameters: + - description: Webhook endpoint ID + name: id + in: path + required: true + schema: + type: string + delete: + tags: + - Webhooks + summary: Delete a webhook endpoint + operationId: Webhooks_deleteEndpoint + security: + - bearer: [] + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint deleted: + summary: Webhook endpoint deleted + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + responses: + '204': + description: Webhook endpoint deleted + '400': + description: Webhook endpoint not deleted + content: + application/json: + examples: + Webhook endpoint failed to delete: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + /v1/workspaces: + get: + tags: + - Workspaces + summary: List all workspaces + operationId: Workspaces_getAll + security: + - bearer: [] + responses: + '200': + description: Workspaces retrieved + content: + application/json: + examples: + Workspaces retrieved: + value: + data: + - id: 406e4fb7-51e0-44c4-8351-a85cce68de1d + name: Workspace 1 + - id: 12e9f1f9-b2fb-4449-b57b-7ed8e2706272 + name: Workspace 2 + list_meta: + total_count: 2 + schema: + $ref: '#/components/schemas/WorkspacesGetAllResponse' +components: + schemas: + Error: + type: object + properties: + error: + type: string + required: + - error + ListMeta: + type: object + properties: + total_count: + description: The total number of items in this list. + type: integer + OrderBatch: + description: >- + An order batch is the primary resource created by the API. Order batches + contain an array of orders. + type: object + properties: + id: + type: string + format: uuid + send_status: + description: >- + The `pending` status indicates that an order batch is being prepared + to be sent out. If it is not scheduled, it is being sent + asynchronously. If it is scheduled, it will stay in `pending` state + until the scheduled time is reached, at which point it will be + processed and moved to `complete`. When it is in `pending` status, + no orders are created yet. When the order batch is in `complete` + status, all orders are created and available. + $ref: '#/components/schemas/OrderBatchSendStatus' + from_name: + description: >- + The name of the sender. This is displayed on the order and + notifications. + type: string + message: + description: The message in this order batch, provided by the sender. + type: string + nullable: true + orders_count: + description: >- + The total number of orders in this order batch. This might be blank + if the order batch is scheduled for the future, or it could be fewer + than the recipient count if the order batch is in the process of + being sent. + type: integer + orders_preview: + description: >- + A preview of the first 10 orders in this order batch. To paginate + through all of the orders, use the `/order_batches/:id/orders` + endpoint with `?page&per_page`. If your use case never sends more + than 10 orders in a single batch, you can use this field instead of + calling `/order_batches/:id/orders`. For order batches with more + than 10 recipients, this array will be empty while the orders are + asynchronously created in the background. + type: array + items: + $ref: '#/components/schemas/Order' + recipients_count: + description: The total number of recipients in this order batch. + type: integer + recipients_preview: + description: >- + A preview of the first 10 recipients in this order batch. To see all + of the recipients, use `/order_batches/:id/recipients`. Recipients + contain the original contact information provided for each recipient + when the order batch was created. + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + cart: + description: >- + The cart that was sent for this order batch. This is the original + cart that was created for this order batch. If individual orders + were swapped, this still remains the same, whereas orders' `cart` + would change if they were swapped. + $ref: '#/components/schemas/Cart' + is_scheduled_send: + description: >- + Whether this order batch was set up as a scheduled send. This stays + as `true` after the scheduled send is complete. To determine if the + order batch is scheduled to be sent for the future, check if + `status` is `pending` and `scheduled_send_on` is in the future. When + a order batch is scheduled, orders are only created on the scheduled + send date. + type: boolean + scheduled_send_on: + description: >- + The date and time the order batch is scheduled to be sent. This will + be `null` if the order batch is not a scheduled send. This field + remains after the scheduled send completes. ISO 8601, UTC. + type: string + format: date-time + nullable: true + expires_at: + description: The date and time the order batch is set to expire. ISO 8601, UTC. + type: string + format: date-time + nullable: true + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + nullable: true + batch_name: + description: >- + An internal name for the order batch, falling back to an + auto-generated batch name. Not displayed to recipients. + type: string + nullable: true + card_id: + description: The digital greeting card on this order batch. + type: string + format: uuid + nullable: true + sender: + description: The sender of the order batch. + $ref: '#/components/schemas/Sender' + workspace_id: + description: >- + Organizations are sub-divided into workspaces. Order batches are + contained in workspaces, identified by this ID. + type: string + format: uuid + nullable: true + workspace_name: + type: string + nullable: true + reference_id: + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order batch. + type: string + required: + - id + - send_status + - orders_preview + - orders_count + - cart + - from_name + - recipients_preview + - recipients_count + - sender + - reference_id + Order: + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + type: object + properties: + id: + type: string + format: uuid + recipient_first_name: + type: string + recipient_last_name: + type: string + nullable: true + recipient_email: + type: string + nullable: true + status: + $ref: '#/components/schemas/OrderStatus' + individual_gift_link: + description: >- + This gift link can be sent to the recipient or shared with the + sender. For privacy reasons, this gift link does not display + tracking information. A separate link, the recipient link, is sent + directly to the recipient after they accept their gift, which does + contain tracking information. + type: string + cart: + description: >- + The cart currently on this order. If the order is a gift that was + swapped, `cart` displays the most recent products selected (i.e. + post-swap). + $ref: '#/components/schemas/Cart' + shipments: + description: A list of the shipments for the order. + type: array + items: + $ref: '#/components/schemas/Shipment' + workspace_id: + description: >- + Organizations are sub-divided into workspaces. Orders are contained + in workspaces, identified by this ID. + type: string + format: uuid + nullable: true + workspace_name: + type: string + nullable: true + expires_at: + description: For gifts, the date and time the gift is set to expire. + type: string + format: date-time + nullable: true + card_id: + description: The digital greeting card on this gift. + type: string + format: uuid + nullable: true + message: + description: The message in this gift, provided by the sender. + type: string + nullable: true + thank_you_note: + description: A thank you note sent by the recipient. + type: string + nullable: true + view_count_recipient: + description: The number of times the recipient viewed the gift. + type: integer + is_swapped: + description: >- + If this gift was swapped by the recipient. Swapping allows a + recipient to select another product or products, which replaces the + `cart`. The original products are saved to `original_cart`. + type: boolean + order_batch_id: + description: >- + On Goody for Business, all orders are attached to a order batch, + which is a collection of one or more orders. + type: string + format: uuid + amounts: + description: >- + Costs in USD cents (i.e. $1.00 = 100). If the order was swapped, + `amounts` displays the most recent amounts (i.e. post-swap). + type: object + properties: + amount_product: + description: Total cost of the products in this order. + type: integer + amount_shipping: + description: Total cost of shipping for this order. + type: integer + amount_processing_fee: + description: Total cost of processing fees for this order. + type: integer + nullable: true + amount_credit_applied: + description: Total amount of credit applied to this order. + type: integer + nullable: true + amount_pre_tax_total: + description: >- + Total cost of the products, shipping, and processing fees in + this order. + type: integer + amount_tax: + description: Total tax for this order. + type: integer + nullable: true + amount_total: + description: >- + Total cost of the products, shipping, processing fees, tax, and + global shipping costs in this order. + type: integer + nullable: true + amount_global_relay_cost: + description: >- + Total cost of global shipping for this order through the Global + Relay service. + type: integer + nullable: true + required: + - amount_product + - amount_shipping + - amount_pre_tax_total + event_times: + description: Only provided when calling the /orders/:id endpoint. + type: object + properties: + created_at: + description: ISO 8601 + type: string + format: date-time + notified_at: + description: When the recipient was notified of the order. + type: string + format: date-time + nullable: true + opened_at: + description: For gifts, when the recipient opened the order. + type: string + format: date-time + nullable: true + accepted_at: + description: For gifts, when the recipient accepted the order. + type: string + format: date-time + nullable: true + pending_payment_at: + description: When the order entered pending payment status. + type: string + format: date-time + nullable: true + paid_at: + description: When the order was paid for. + type: string + format: date-time + nullable: true + shipped_at: + description: >- + When the order was first shipped. If there are multiple + shipments, this is when the first shipment shipped. + type: string + format: date-time + nullable: true + delivered_at: + description: >- + When the order was delivered. If there are multiple shipments, + this is when all shipments were delivered. + type: string + format: date-time + nullable: true + required: + - created_at + nullable: true + original_cart: + description: >- + If this order is a gift that was swapped, this displays the original + cart that was sent to the recipient. + $ref: '#/components/schemas/Cart' + nullable: true + original_amounts: + description: >- + If this order is a gift that was swapped, this displays the original + amounts of the cart that was sent to the recipient. + type: object + properties: + original_amount_product: + type: integer + nullable: true + original_amount_shipping: + type: integer + nullable: true + original_amount_credit_applied: + type: integer + nullable: true + original_amount_pre_tax_total: + type: integer + nullable: true + nullable: true + sender: + description: The Goody user who sent this order. + $ref: '#/components/schemas/Sender' + reference_id: + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order. + type: string + required: + - id + - recipient_first_name + - status + - individual_gift_link + - cart + - shipments + - amounts + - sender + - reference_id + OrderBatchRecipient: + type: object + properties: + first_name: + type: string + last_name: + type: string + nullable: true + email: + type: string + nullable: true + required: + - first_name + Cart: + type: object + properties: + id: + type: string + format: uuid + items: + type: array + items: + $ref: '#/components/schemas/CartItem' + CartItem: + type: object + properties: + id: + type: string + format: uuid + product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + description: The brand that this product is from. + type: object + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + required: + - id + - name + - brand + quantity: + type: integer + required: + - id + - product + - quantity + OrderBatchSendStatus: + type: string + enum: + - pending + - complete + - failed + - canceled + OrderStatus: + type: string + enum: + - created + - notified + - opened + - accepted + - pending_payment + - paid + - ordered + - shipped + - delivered + - failed + - canceled + Shipment: + type: object + properties: + id: + type: string + format: uuid + status: + type: string + enum: + - pending + - tracking + - shipped + - delivered + - delivered_override + - failed + - failed_unset_tracking + - failed_with_reship + brand_name: + description: The name of the brand that this shipment is from. + type: string + tracking_carrier: + description: The carrier for this shipment, e.g. UPS. + type: string + nullable: true + tracking_number: + description: Only for approved distribution partners. + type: string + nullable: true + shipped_at: + description: ISO 8601 + type: string + format: date-time + nullable: true + delivered_at: + description: ISO 8601 + type: string + format: date-time + nullable: true + delivery_eta: + description: The estimated delivery time of this shipment. + type: string + format: date-time + nullable: true + required: + - id + - status + - brand_name + Product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + $ref: '#/components/schemas/Brand' + subtitle: + description: A description of this product. + type: string + nullable: true + subtitle_short: + description: >- + An optional one-line description of this product. When provided, it + overrides the subtitle when displayed in areas with less space. Not + always provided. + type: string + nullable: true + recipient_description: + description: >- + An optional description of this product with custom verbiage for + recipients. When provided, it overrides the subtitle for the product + when displayed to the recipient. Falls back to the subtitle. + type: string + nullable: true + variants_label: + description: The label for the variants of this product, e.g. "Size" or "Color". + type: string + nullable: true + variants_num_selectable: + description: >- + The number of variants that can be selected for this product. For + example, if this is a t-shirt, then this would be 1, since you can + only select one size. If this were a build-a-box of chocolates, this + could be 3 if you could select 3 flavor variants. + type: integer + nullable: true + variants: + type: array + items: + $ref: '#/components/schemas/ProductVariant' + images: + type: array + items: + $ref: '#/components/schemas/ProductImage' + price: + description: The price of the product, in cents. + type: integer + price_is_variable: + description: >- + Whether the price of this product is variable. If true, then the + price can be set by the sender. + type: boolean + price_min: + description: >- + The minimum price of the product, in cents. Only used if + price_is_variable is true. + type: integer + nullable: true + price_max: + description: >- + The maximum price of the product, in cents. Only used if + price_is_variable is true. + type: integer + nullable: true + restricted_states: + type: array + items: + description: The US states that this product cannot be shipped to. + type: string + reserved_options: + description: For approved API partners only. + type: object + properties: + custom_price_tier: + description: >- + For approved API partners only. A custom price tier for this + product. + type: integer + nullable: true + nullable: true + required: + - id + - name + - brand + - variants + - images + - price + - price_is_variable + - restricted_states + Brand: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + shipping_price: + description: The price of shipping for this brand, in cents. + type: integer + commerce_revshare_excluded: + description: >- + Whether this brand is excluded from the commerce revenue share. Only + displayed on the products endpoint when using a commerce app. + type: boolean + nullable: true + required: + - id + - name + - shipping_price + ProductImage: + type: object + properties: + id: + type: string + format: uuid + image_large: + $ref: '#/components/schemas/Image' + required: + - id + - image_large + ProductVariant: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + image_large: + $ref: '#/components/schemas/Image' + nullable: true + subtitle: + type: string + nullable: true + required: + - id + - name + Image: + type: object + properties: + url: + type: string + width: + type: integer + height: + type: integer + required: + - id + - large_url + MailingAddress: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + address_1: + type: string + address_2: + type: string + nullable: true + city: + type: string + state: + type: string + postal_code: + type: string + country: + description: >- + The two-letter country code, e.g. "US". Only US is supported at this + time. + type: string + nullable: true + required: + - address_1 + - city + - state + - postal_code + - country + Me: + type: object + properties: + email: + type: string + nullable: true + public_app_id: + type: string + nullable: true + Sender: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + required: + - first_name + - last_name + - email + PaymentMethod: + type: object + properties: + id: + type: string + name: + type: string + cardholder_name: + description: >- + For payment methods with a cardholder name, returns the name on the + card. + type: string + nullable: true + balance: + description: >- + For payment methods with a balance, returns the available balance on + the payment method. + type: integer + nullable: true + required: + - id + - name + Workspace: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + OrderBatchInput: + description: Input parameters for an order batch. + type: object + properties: + from_name: + description: >- + The name of the sender of the order (typically a gift), to be + displayed as "from". + type: string + message: + description: >- + For gifts, a message for the gift to be displayed in the digital + unwrapping and email notifications, if enabled. + type: string + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientInput' + cart: + $ref: '#/components/schemas/CartInput' + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + card_id: + description: >- + The digital greeting card to attach to gifts. A card must be + specified if a message is specified, since the message is displayed + after the card is opened. + type: string + format: uuid + payment_method_id: + description: >- + The payment method used to pay for this order batch. If not + specified, defaults to the first payment method on the account. If + the account has no payment methods, then the order batch creation + will fail. + type: string + workspace_id: + description: >- + Workspace to create the order batch in. If not specified, creates + the order batch in the oldest workspace the user has access to. + type: string + format: uuid + scheduled_send_on: + description: >- + The date and time at which the order batch will be sent. If not + specified, the order batch is sent immediately. If an order batch is + scheduled to be sent in the future, then orders will not be created + until the scheduled send time. ISO 8601 format. + type: string + format: date-time + nullable: true + expires_at: + description: >- + The date and time at which the order batch will expire. If not + specified, the order batch does not expire. An expiry must be set + for orders paid using account balance. ISO 8601 format. + type: string + format: date-time + nullable: true + reserved_options: + description: For approved API partners only. + type: object + properties: + custom_price_tier: + description: >- + For approved API partners only. A custom price tier to set on + this order batch. + type: integer + nullable: true + nullable: true + required: + - from_name + - recipients + - cart + - send_method + CartInput: + type: object + properties: + items: + description: An array of cart items. + type: array + items: + $ref: '#/components/schemas/CartItemInput' + CartItemInput: + type: object + properties: + product_id: + description: >- + ID of the product. Preferred over URL since this is always stable. + Either `product_id` or `product_url` must be provided. + type: string + format: uuid + nullable: true + product_url: + description: >- + URL of the product. Either `product_id` or `product_url` must be + provided. + type: string + nullable: true + quantity: + type: integer + variable_price: + description: >- + If this product has a variable price (e.g. a flex gift or a gift + card), then this must be provided. A positive integer represented in + cents. + type: integer + variants: + description: >- + An array of variant names (not IDs). When using the Direct Send send + method with a product with variants, the variants must be provided. + The length of the array must be equal to `variants_num_selectable` + on the product, and the variants must come from the names of the + `varaints` on the product. For example, for a t-shirt with + `variants_num_selectable` = 1 and variants S, M, L, pass ['M']. Or, + for a box of cookies with `variants_num_selectable` = 2 and variants + Sugar, Caramel, Chocolate, pass ['Sugar', 'Chocolate']. + type: array + items: + type: string + required: + - product_id + - quantity + OrderBatchSendMethod: + description: >- + The method for sending a order batch. `email_and_link` sends a gift + email to the recipient (specify `email` for each recipient). + `link_multiple_custom_list` generates a gift link without an automatic + email. `direct_send` ships the product directly to the recipient + (specify `mailing_address` for each recipient). For more information, + see [Send Methods](https://assets.ongoody.com). + type: string + enum: + - email_and_link + - link_multiple_custom_list + - direct_send + RecipientInput: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + mailing_address: + description: >- + Optional mailing address to pre-populate into the order. This field + is only available for approved API partners. + $ref: '#/components/schemas/MailingAddress' + required: + - first_name + WebhookInput: + description: Input parameters for a webhook endpoint. + type: object + properties: + url: + description: The URL for the webhook to call. + type: string + events: + description: >- + Filter the events you want to get webhooks for. Refer to the + Webhooks list for the event names. + type: array + items: + type: string + nullable: true + OrdersUpdateExpirationRequest: + type: object + properties: + expiration: + description: New expiration date in ISO 8601 format + type: string + format: date-time + example: 2022-02-01T00:00:00+0000 + OrderBatchesListResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatch' + list_meta: + $ref: '#/components/schemas/ListMeta' + OrderBatchesGetOrdersResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + OrderBatchesGetOrders400Response: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + OrderBatchesGetRecipientsResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + list_meta: + $ref: '#/components/schemas/ListMeta' + OrderBatchesGetRecipients400Response: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + OrdersGetListResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + PaymentMethodsListAllResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentMethod' + list_meta: + $ref: '#/components/schemas/ListMeta' + ProductsListActiveProductsResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Product' + list_meta: + $ref: '#/components/schemas/ListMeta' + WebhooksCreateEndpointResponse: + type: object + properties: + id: + type: string + WorkspacesGetAllResponse: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Workspace' + list_meta: + $ref: '#/components/schemas/ListMeta' + securitySchemes: + bearer: + description: Your Goody API key. + type: http + scheme: bearer diff --git a/sdks/db/generate-repository-description-cache/goody.json b/sdks/db/generate-repository-description-cache/goody.json new file mode 100644 index 000000000..0459a596c --- /dev/null +++ b/sdks/db/generate-repository-description-cache/goody.json @@ -0,0 +1,3 @@ +{ + "Goody is a new way to send personal and business gifts as easily as a text message. \n\nOur business gifting platform, Goody for Business, powers employee engagement, client appreciation, and sales prospecting gifts at more than 12,000 leading companies. Goody integrates with 30 leading HR platforms, allowing companies to automatically gift employees on birthdays and work anniversaries.\n\nChoose from a curated gift collection of 250+ brands. Send a gift with only an email or phone number — no address required. Let gift recipients swap your gift for equal or lower-priced options, with no pricing shown.": "Goody is a versatile gifting platform that simplifies sending personal and business gifts. It integrates with top HR platforms, offers a curated gift collection, and allows recipients to swap gifts hassle-free. Goody's {language} SDK generated by Konfig (https://konfigthis.com/)." +} \ No newline at end of file diff --git a/sdks/db/intermediate-fixed-specs/goody/openapi.yaml b/sdks/db/intermediate-fixed-specs/goody/openapi.yaml new file mode 100644 index 000000000..616fdca82 --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/goody/openapi.yaml @@ -0,0 +1,2998 @@ +openapi: 3.0.1 +info: + title: Goody API + version: 1.0.0 + contact: + name: Goody Support + email: support@ongoody.com + description: >- + Goody is a new way to send personal and business gifts as easily as a text + message. + + + Our business gifting platform, Goody for Business, powers employee + engagement, client appreciation, and sales prospecting gifts at more than + 12,000 leading companies. Goody integrates with 30 leading HR platforms, + allowing companies to automatically gift employees on birthdays and work + anniversaries. + + + Choose from a curated gift collection of 250+ brands. Send a gift with only + an email or phone number — no address required. Let gift recipients swap + your gift for equal or lower-priced options, with no pricing shown. +components: + schemas: + Error: + type: object + properties: + error: + type: string + required: + - error + ListMeta: + type: object + properties: + total_count: + type: integer + description: The total number of items in this list. + OrderBatch: + type: object + description: >- + An order batch is the primary resource created by the API. Order batches + contain an array of orders. + properties: + id: + type: string + format: uuid + send_status: + $ref: '#/components/schemas/OrderBatchSendStatus' + description: >- + The `pending` status indicates that an order batch is being prepared + to be sent out. If it is not scheduled, it is being sent + asynchronously. If it is scheduled, it will stay in `pending` state + until the scheduled time is reached, at which point it will be + processed and moved to `complete`. When it is in `pending` status, + no orders are created yet. When the order batch is in `complete` + status, all orders are created and available. + from_name: + type: string + description: >- + The name of the sender. This is displayed on the order and + notifications. + message: + type: string + nullable: true + description: The message in this order batch, provided by the sender. + orders_count: + type: integer + description: >- + The total number of orders in this order batch. This might be blank + if the order batch is scheduled for the future, or it could be fewer + than the recipient count if the order batch is in the process of + being sent. + orders_preview: + type: array + items: + $ref: '#/components/schemas/Order' + description: >- + A preview of the first 10 orders in this order batch. To paginate + through all of the orders, use the `/order_batches/:id/orders` + endpoint with `?page&per_page`. If your use case never sends more + than 10 orders in a single batch, you can use this field instead of + calling `/order_batches/:id/orders`. For order batches with more + than 10 recipients, this array will be empty while the orders are + asynchronously created in the background. + recipients_count: + type: integer + description: The total number of recipients in this order batch. + recipients_preview: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + description: >- + A preview of the first 10 recipients in this order batch. To see all + of the recipients, use `/order_batches/:id/recipients`. Recipients + contain the original contact information provided for each recipient + when the order batch was created. + cart: + $ref: '#/components/schemas/Cart' + description: >- + The cart that was sent for this order batch. This is the original + cart that was created for this order batch. If individual orders + were swapped, this still remains the same, whereas orders' `cart` + would change if they were swapped. + is_scheduled_send: + type: boolean + description: >- + Whether this order batch was set up as a scheduled send. This stays + as `true` after the scheduled send is complete. To determine if the + order batch is scheduled to be sent for the future, check if + `status` is `pending` and `scheduled_send_on` is in the future. When + a order batch is scheduled, orders are only created on the scheduled + send date. + scheduled_send_on: + type: string + format: date-time + description: >- + The date and time the order batch is scheduled to be sent. This will + be `null` if the order batch is not a scheduled send. This field + remains after the scheduled send completes. ISO 8601, UTC. + nullable: true + expires_at: + type: string + format: date-time + description: The date and time the order batch is set to expire. ISO 8601, UTC. + nullable: true + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + nullable: true + batch_name: + type: string + nullable: true + description: >- + An internal name for the order batch, falling back to an + auto-generated batch name. Not displayed to recipients. + card_id: + type: string + format: uuid + nullable: true + description: The digital greeting card on this order batch. + sender: + $ref: '#/components/schemas/Sender' + description: The sender of the order batch. + workspace_id: + type: string + format: uuid + nullable: true + description: >- + Organizations are sub-divided into workspaces. Order batches are + contained in workspaces, identified by this ID. + workspace_name: + type: string + nullable: true + reference_id: + type: string + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order batch. + required: + - id + - send_status + - orders_preview + - orders_count + - cart + - from_name + - recipients_preview + - recipients_count + - sender + - reference_id + Order: + type: object + description: >- + An individual order contains the gift link to be sent to the recipient + (if applicable) and other information about the order. + properties: + id: + type: string + format: uuid + recipient_first_name: + type: string + recipient_last_name: + type: string + nullable: true + recipient_email: + type: string + nullable: true + status: + $ref: '#/components/schemas/OrderStatus' + individual_gift_link: + type: string + description: >- + This gift link can be sent to the recipient or shared with the + sender. For privacy reasons, this gift link does not display + tracking information. A separate link, the recipient link, is sent + directly to the recipient after they accept their gift, which does + contain tracking information. + cart: + $ref: '#/components/schemas/Cart' + description: >- + The cart currently on this order. If the order is a gift that was + swapped, `cart` displays the most recent products selected (i.e. + post-swap). + shipments: + type: array + items: + $ref: '#/components/schemas/Shipment' + description: A list of the shipments for the order. + workspace_id: + type: string + format: uuid + nullable: true + description: >- + Organizations are sub-divided into workspaces. Orders are contained + in workspaces, identified by this ID. + workspace_name: + type: string + nullable: true + expires_at: + type: string + format: date-time + description: For gifts, the date and time the gift is set to expire. + nullable: true + card_id: + type: string + format: uuid + nullable: true + description: The digital greeting card on this gift. + message: + type: string + nullable: true + description: The message in this gift, provided by the sender. + thank_you_note: + type: string + nullable: true + description: A thank you note sent by the recipient. + view_count_recipient: + type: integer + description: The number of times the recipient viewed the gift. + is_swapped: + type: boolean + description: >- + If this gift was swapped by the recipient. Swapping allows a + recipient to select another product or products, which replaces the + `cart`. The original products are saved to `original_cart`. + order_batch_id: + type: string + format: uuid + description: >- + On Goody for Business, all orders are attached to a order batch, + which is a collection of one or more orders. + amounts: + type: object + description: >- + Costs in USD cents (i.e. $1.00 = 100). If the order was swapped, + `amounts` displays the most recent amounts (i.e. post-swap). + properties: + amount_product: + type: integer + description: Total cost of the products in this order. + amount_shipping: + type: integer + description: Total cost of shipping for this order. + amount_processing_fee: + type: integer + nullable: true + description: Total cost of processing fees for this order. + amount_credit_applied: + type: integer + nullable: true + description: Total amount of credit applied to this order. + amount_pre_tax_total: + type: integer + description: >- + Total cost of the products, shipping, and processing fees in + this order. + amount_tax: + type: integer + nullable: true + description: Total tax for this order. + amount_total: + type: integer + nullable: true + description: >- + Total cost of the products, shipping, processing fees, tax, and + global shipping costs in this order. + amount_global_relay_cost: + type: integer + nullable: true + description: >- + Total cost of global shipping for this order through the Global + Relay service. + required: + - amount_product + - amount_shipping + - amount_pre_tax_total + event_times: + type: object + description: Only provided when calling the /orders/:id endpoint. + properties: + created_at: + type: string + format: date-time + description: ISO 8601 + notified_at: + type: string + format: date-time + description: When the recipient was notified of the order. + nullable: true + opened_at: + type: string + format: date-time + description: For gifts, when the recipient opened the order. + nullable: true + accepted_at: + type: string + format: date-time + description: For gifts, when the recipient accepted the order. + nullable: true + pending_payment_at: + type: string + format: date-time + description: When the order entered pending payment status. + nullable: true + paid_at: + type: string + format: date-time + description: When the order was paid for. + nullable: true + shipped_at: + type: string + format: date-time + description: >- + When the order was first shipped. If there are multiple + shipments, this is when the first shipment shipped. + nullable: true + delivered_at: + type: string + format: date-time + description: >- + When the order was delivered. If there are multiple shipments, + this is when all shipments were delivered. + nullable: true + required: + - created_at + nullable: true + original_cart: + $ref: '#/components/schemas/Cart' + description: >- + If this order is a gift that was swapped, this displays the original + cart that was sent to the recipient. + nullable: true + original_amounts: + type: object + description: >- + If this order is a gift that was swapped, this displays the original + amounts of the cart that was sent to the recipient. + properties: + original_amount_product: + type: integer + nullable: true + original_amount_shipping: + type: integer + nullable: true + original_amount_credit_applied: + type: integer + nullable: true + original_amount_pre_tax_total: + type: integer + nullable: true + nullable: true + sender: + $ref: '#/components/schemas/Sender' + description: The Goody user who sent this order. + reference_id: + type: string + description: >- + The reference ID displayed on receipts and other locations as the ID + for this order. + required: + - id + - recipient_first_name + - status + - individual_gift_link + - cart + - shipments + - amounts + - sender + - reference_id + OrderBatchRecipient: + type: object + properties: + first_name: + type: string + last_name: + type: string + nullable: true + email: + type: string + nullable: true + required: + - first_name + Cart: + type: object + properties: + id: + type: string + format: uuid + items: + type: array + items: + $ref: '#/components/schemas/CartItem' + CartItem: + type: object + properties: + id: + type: string + format: uuid + product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + type: object + description: The brand that this product is from. + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + required: + - id + - name + - brand + quantity: + type: integer + required: + - id + - product + - quantity + OrderBatchSendStatus: + type: string + enum: + - pending + - complete + - failed + - canceled + OrderStatus: + type: string + enum: + - created + - notified + - opened + - accepted + - pending_payment + - paid + - ordered + - shipped + - delivered + - failed + - canceled + Shipment: + type: object + properties: + id: + type: string + format: uuid + status: + type: string + enum: + - pending + - tracking + - shipped + - delivered + - delivered_override + - failed + - failed_unset_tracking + - failed_with_reship + brand_name: + type: string + description: The name of the brand that this shipment is from. + tracking_carrier: + type: string + nullable: true + description: The carrier for this shipment, e.g. UPS. + tracking_number: + type: string + nullable: true + description: Only for approved distribution partners. + shipped_at: + type: string + format: date-time + description: ISO 8601 + nullable: true + delivered_at: + type: string + format: date-time + description: ISO 8601 + nullable: true + delivery_eta: + type: string + format: date-time + description: The estimated delivery time of this shipment. + nullable: true + required: + - id + - status + - brand_name + Product: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + brand: + $ref: '#/components/schemas/Brand' + subtitle: + type: string + nullable: true + description: A description of this product. + subtitle_short: + type: string + nullable: true + description: >- + An optional one-line description of this product. When provided, it + overrides the subtitle when displayed in areas with less space. Not + always provided. + recipient_description: + type: string + nullable: true + description: >- + An optional description of this product with custom verbiage for + recipients. When provided, it overrides the subtitle for the product + when displayed to the recipient. Falls back to the subtitle. + variants_label: + type: string + nullable: true + description: The label for the variants of this product, e.g. "Size" or "Color". + variants_num_selectable: + type: integer + nullable: true + description: >- + The number of variants that can be selected for this product. For + example, if this is a t-shirt, then this would be 1, since you can + only select one size. If this were a build-a-box of chocolates, this + could be 3 if you could select 3 flavor variants. + variants: + type: array + items: + $ref: '#/components/schemas/ProductVariant' + images: + type: array + items: + $ref: '#/components/schemas/ProductImage' + price: + type: integer + description: The price of the product, in cents. + price_is_variable: + type: boolean + description: >- + Whether the price of this product is variable. If true, then the + price can be set by the sender. + price_min: + type: integer + nullable: true + description: >- + The minimum price of the product, in cents. Only used if + price_is_variable is true. + price_max: + type: integer + nullable: true + description: >- + The maximum price of the product, in cents. Only used if + price_is_variable is true. + restricted_states: + type: array + items: + type: string + description: The US states that this product cannot be shipped to. + reserved_options: + type: object + description: For approved API partners only. + properties: + custom_price_tier: + type: integer + nullable: true + description: >- + For approved API partners only. A custom price tier for this + product. + nullable: true + required: + - id + - name + - brand + - variants + - images + - price + - price_is_variable + - restricted_states + Brand: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + shipping_price: + type: integer + description: The price of shipping for this brand, in cents. + commerce_revshare_excluded: + type: boolean + description: >- + Whether this brand is excluded from the commerce revenue share. Only + displayed on the products endpoint when using a commerce app. + nullable: true + required: + - id + - name + - shipping_price + ProductImage: + type: object + properties: + id: + type: string + format: uuid + image_large: + $ref: '#/components/schemas/Image' + required: + - id + - image_large + ProductVariant: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + image_large: + $ref: '#/components/schemas/Image' + nullable: true + subtitle: + type: string + nullable: true + required: + - id + - name + Image: + type: object + properties: + url: + type: string + width: + type: integer + height: + type: integer + required: + - id + - large_url + MailingAddress: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + address_1: + type: string + address_2: + type: string + nullable: true + city: + type: string + state: + type: string + postal_code: + type: string + country: + type: string + nullable: true + description: >- + The two-letter country code, e.g. "US". Only US is supported at this + time. + required: + - address_1 + - city + - state + - postal_code + - country + Me: + type: object + properties: + email: + type: string + nullable: true + public_app_id: + type: string + nullable: true + Sender: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + required: + - first_name + - last_name + - email + PaymentMethod: + type: object + properties: + id: + type: string + name: + type: string + cardholder_name: + type: string + nullable: true + description: >- + For payment methods with a cardholder name, returns the name on the + card. + balance: + type: integer + nullable: true + description: >- + For payment methods with a balance, returns the available balance on + the payment method. + required: + - id + - name + Workspace: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + required: + - id + - name + OrderBatchInput: + type: object + description: Input parameters for an order batch. + properties: + from_name: + type: string + description: >- + The name of the sender of the order (typically a gift), to be + displayed as "from". + message: + type: string + description: >- + For gifts, a message for the gift to be displayed in the digital + unwrapping and email notifications, if enabled. + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientInput' + cart: + $ref: '#/components/schemas/CartInput' + send_method: + $ref: '#/components/schemas/OrderBatchSendMethod' + card_id: + type: string + format: uuid + description: >- + The digital greeting card to attach to gifts. A card must be + specified if a message is specified, since the message is displayed + after the card is opened. + payment_method_id: + type: string + description: >- + The payment method used to pay for this order batch. If not + specified, defaults to the first payment method on the account. If + the account has no payment methods, then the order batch creation + will fail. + workspace_id: + type: string + format: uuid + description: >- + Workspace to create the order batch in. If not specified, creates + the order batch in the oldest workspace the user has access to. + scheduled_send_on: + type: string + format: date-time + description: >- + The date and time at which the order batch will be sent. If not + specified, the order batch is sent immediately. If an order batch is + scheduled to be sent in the future, then orders will not be created + until the scheduled send time. ISO 8601 format. + nullable: true + expires_at: + type: string + format: date-time + description: >- + The date and time at which the order batch will expire. If not + specified, the order batch does not expire. An expiry must be set + for orders paid using account balance. ISO 8601 format. + nullable: true + reserved_options: + type: object + description: For approved API partners only. + properties: + custom_price_tier: + type: integer + nullable: true + description: >- + For approved API partners only. A custom price tier to set on + this order batch. + nullable: true + required: + - from_name + - recipients + - cart + - send_method + CartInput: + type: object + properties: + items: + type: array + items: + $ref: '#/components/schemas/CartItemInput' + description: An array of cart items. + CartItemInput: + type: object + properties: + product_id: + type: string + format: uuid + nullable: true + description: >- + ID of the product. Preferred over URL since this is always stable. + Either `product_id` or `product_url` must be provided. + product_url: + type: string + nullable: true + description: >- + URL of the product. Either `product_id` or `product_url` must be + provided. + quantity: + type: integer + variable_price: + type: integer + description: >- + If this product has a variable price (e.g. a flex gift or a gift + card), then this must be provided. A positive integer represented in + cents. + variants: + type: array + items: + type: string + description: >- + An array of variant names (not IDs). When using the Direct Send send + method with a product with variants, the variants must be provided. + The length of the array must be equal to `variants_num_selectable` + on the product, and the variants must come from the names of the + `varaints` on the product. For example, for a t-shirt with + `variants_num_selectable` = 1 and variants S, M, L, pass ['M']. Or, + for a box of cookies with `variants_num_selectable` = 2 and variants + Sugar, Caramel, Chocolate, pass ['Sugar', 'Chocolate']. + required: + - product_id + - quantity + OrderBatchSendMethod: + type: string + enum: + - email_and_link + - link_multiple_custom_list + - direct_send + description: >- + The method for sending a order batch. `email_and_link` sends a gift + email to the recipient (specify `email` for each recipient). + `link_multiple_custom_list` generates a gift link without an automatic + email. `direct_send` ships the product directly to the recipient + (specify `mailing_address` for each recipient). For more information, + see [Send Methods](https://assets.ongoody.com). + RecipientInput: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + mailing_address: + $ref: '#/components/schemas/MailingAddress' + description: >- + Optional mailing address to pre-populate into the order. This field + is only available for approved API partners. + required: + - first_name + WebhookInput: + type: object + description: Input parameters for a webhook endpoint. + properties: + url: + type: string + description: The URL for the webhook to call. + events: + type: array + items: + type: string + nullable: true + description: >- + Filter the events you want to get webhooks for. Refer to the + Webhooks list for the event names. + securitySchemes: + bearer: + type: http + scheme: bearer + description: Your Goody API key. +servers: + - url: https://api.ongoody.com + description: Production + - url: https://api.sandbox.ongoody.com + description: Sandbox +paths: + /v1/me: + get: + summary: Retrieve current user + tags: + - Me + security: + - bearer: [] + responses: + '200': + description: Me retrieved + content: + application/json: + schema: + $ref: '#/components/schemas/Me' + '401': + description: Failed to authorize + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches: + post: + summary: Create an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: [] + responses: + '201': + description: Order batch created using product URL in cart + content: + application/json: + examples: + Order batch created (10 or fewer recipients): + value: + id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: f9afd3e0-4bf8-45a0-b8ff-2956740845d9 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/kkmTY4JyoYs7KgaLxd7rBaqM + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: UFL9TUBEPLAJYYVJZOSH1YH4 + - id: e2d608c6-cf4a-40ad-af32-6e30b2cdc347 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RsH9NdSrzuVtLVNxjaew6CfO + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 5020fbee-a5dc-45d9-8114-155bccdf22e6 + expires_at: null + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: ZMAUHA0OZF1U9WEKPJ8ISZSG + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: bd87405f-d01e-450f-97d1-ed2a12d4c095 + items: + - id: 963ffae2-94ba-444f-8c15-b13d9c3c4fc1 + quantity: 1 + product: + id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + name: Cookies + brand: + id: 7109b496-308a-4ac6-9274-f3c27d368af3 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + sender: + first_name: Test + last_name: User + email: 15557285854@test.ongoody.com + workspace_id: 86a027de-2d2a-4aa2-a9e0-8714d1339c00 + workspace_name: Test Team + reference_id: FAQAQCVFFRBCXSQIAVABPXWR + Order batch created (more than 10 recipients): + value: + id: 59b13ea3-e08f-4e5d-aa26-45ae505957fc + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 11 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: ceecbddb-fdca-413d-9c12-2bfc8eb301f2 + items: + - id: 0a753de0-4a0c-41be-b6c2-4afba7a5ca1b + quantity: 1 + product: + id: ea3e9769-eea2-4aa2-bece-8a32e26386b9 + name: Cookies + brand: + id: 99e6c1cb-6b48-45e6-b695-2d5498230286 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: 11 recipients + card_id: 7e8d1f0b-d9e0-4663-8ae9-c2fc38d4fb0d + sender: + first_name: Test + last_name: User + email: 15554156359@test.ongoody.com + workspace_id: 45e1ef6e-6ba0-4b81-8c2e-155a81f1b365 + workspace_name: Test Team + reference_id: 3S2SNBKTKN7SJDQWE88PHJ1A + Scheduled order batch created: + value: + id: 8516d9ee-968b-4ed6-a254-379e68732c62 + send_status: pending + from_name: John + message: Thank you! + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: f5f1a7ea-325e-470f-a085-9b6e54907c8e + items: + - id: 53e4915c-788d-4105-98c4-17f37b1f5724 + quantity: 1 + product: + id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + name: Cookies + brand: + id: 0410e2be-6359-4940-af15-5ee84805ec11 + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + sender: + first_name: Test + last_name: User + email: 15558391444@test.ongoody.com + workspace_id: 5e3072af-ce47-4152-87f6-388cecb6fa90 + workspace_name: Test Team + reference_id: 1NJ8TOA7O5CKDELTKIGR4RRV + Order batch created with recipient address: + value: + id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 5300f2c0-04ed-4b35-8e51-beb814e5737c + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/Jm5Ss9lzUkjZnImBalLlcTu3 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DNRURLZYRYDPEUYZXRXJMMFH + - id: 174beb23-ad17-4455-8525-e07129dccc9d + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/alTiXF5X4KRQzt1SGDMqrrxy + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 91e4804b-8f6f-4f38-afd5-b471ad7f7849 + expires_at: null + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 0LBFVLB2V9S2KUQKUNBERDDS + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 65b3a129-f7ec-4048-a1bb-574c7e020b23 + items: + - id: 3a11e0e8-d5c8-472f-9120-4e9d540eae06 + quantity: 1 + product: + id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + name: Cookies + brand: + id: b9d31cdd-3a88-4c7d-91b6-8d13cbd70b44 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + sender: + first_name: Test + last_name: User + email: 15557699347@test.ongoody.com + workspace_id: 7dfffb26-b34e-4c70-a5ed-cbc4a84a28de + workspace_name: Test Team + reference_id: OKSZ8OJQ9ZPZDFXNG6JMAR9W + Order batch created (using product URL in cart): + value: + id: 040bf69d-2a2f-4eef-9365-a82788091e50 + send_status: complete + from_name: John + message: Thank you! + orders_count: 2 + orders_preview: + - id: 1d18374e-99a5-46a4-ac9a-2c28f6ee17d0 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/CFA2TU7QNeVgUgozNx00D5YQ + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 6A5KGQ0KPQGOUX57C2KUQF0Q + - id: 82eb8825-34d5-4d3b-a682-26e2e781cebf + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZBD7op8PFrEC59nZsXjPELUF + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + message: Thank you! + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 040bf69d-2a2f-4eef-9365-a82788091e50 + expires_at: '2023-08-10T21:50:34Z' + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + shipments: [] + amounts: + amount_product: 1000 + amount_shipping: 1000 + amount_processing_fee: 100 + amount_pre_tax_total: 2100 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 1C7DPYGDYYUE5IQOFYXT9NZ2 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 3c594ba8-199a-476c-954f-b8eefe9a0b09 + items: + - id: f930c2ae-b070-4d5f-ad4f-ef001971b601 + quantity: 1 + product: + id: 6d622295-1f44-4b8f-b788-bcbcd73b24ff + name: Cookies + brand: + id: 5c162bec-7df5-4013-a6a3-02dbfaa95392 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: '2023-08-10T21:50:34Z' + send_method: link_multiple_custom_list + batch_name: Alena Kenter and Michael Franci + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + sender: + first_name: Test + last_name: User + email: 15555164350@test.ongoody.com + workspace_id: 17bde50f-cef1-4a42-ba4c-b1c3b413bf58 + workspace_name: Test Team + reference_id: WBRN7MAB7LNPILVFLYAOOZNC + schema: + $ref: '#/components/schemas/OrderBatch' + '400': + description: Bad request when using invalid product URL in cart + content: + application/json: + examples: + Order batch without recipients fails to create: + value: + error: Recipients can't be blank + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OrderBatchInput' + examples: + Order batch created: + summary: Order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: bc82ba2f-c143-48e8-b2be-22fc34ee183f + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: de31187b-b9aa-4187-81ac-0d6c8a323c10 + quantity: 1 + Scheduled order batch created: + summary: Scheduled order batch created + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 0346f7af-340b-469f-826a-12496c4ece2c + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_id: 4633f5ee-a080-4b41-b482-b9496ebf1833 + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:33Z' + expires_at: '2023-08-10T21:50:33Z' + Order batch created with recipient address: + summary: Order batch created with recipient address + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 3a23d47a-d606-4317-a4a8-8ea8be904205 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + mailing_address: + first_name: Alena + last_name: Kenter + address_1: 1 Main St + address_2: Apt 123 + city: New York + state: NY + postal_code: '10022' + country: US + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + mailing_address: + first_name: Michael + last_name: Franci + address_1: 1 Main St + address_2: Apt 124 + city: New York + state: NY + postal_code: '10022' + country: US + cart: + items: + - product_id: 07e2c9f7-28b8-43eb-8827-72d49d507e6c + quantity: 1 + Order batch created using product URL in cart: + summary: Order batch created using product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: e080f854-8fd7-4523-b5ac-8a381031ae4d + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + http://example.com/browse/brands/cookie-company/cookies + quantity: 1 + expires_at: '2023-08-10T21:50:34Z' + Bad request: + summary: Bad request + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: b1faebbd-8482-4f90-9892-b25b6bbb9370 + recipients: [] + cart: + items: + - product_id: 3069c348-08c0-49b7-a2f7-cef5c3732485 + quantity: 1 + Bad request when using invalid product URL in cart: + summary: Bad request when using invalid product URL in cart + value: + from_name: John + message: Thank you! + send_method: link_multiple_custom_list + payment_method_id: null + workspace_id: null + card_id: 69c58b24-0273-4068-a8d9-cb63a7841ef2 + recipients: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + items: + - product_url: >- + https://www.ongoody.com/browse/brands/invalid-brand/invalid-product + quantity: 1 + scheduled_send_on: '2023-07-20T21:50:34Z' + expires_at: '2023-08-10T21:50:34Z' + get: + summary: List order batches + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Order batches retrieved + content: + application/json: + examples: + Order batches retrieved: + value: + data: + - id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + send_status: complete + from_name: Carlee + message: null + orders_count: 2 + orders_preview: + - id: f6ceb426-4d03-438e-b0d9-1063e22982fd + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/XO7BKKHMGOQFJ0B0RYDCPZCI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: AWU6DOLO0JOV2WT0TVFIVDLY + - id: 518d338b-64a0-49e8-a235-4b853ef3668f + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/EOEC0JRXBBHUCKFSHKUQBFAE + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 684efbcf-105a-4018-b1c6-b7aa24b47e53 + expires_at: null + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: OOWOL8COFAMN2AMHJZSHCMPA + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 1a40cbb9-4f6f-415d-a040-811db42c4edd + items: + - id: e70f24a2-323e-48f3-8c3f-d8be69f0fe38 + quantity: 1 + product: + id: 8496cb2f-304a-4822-9e20-9d9b0db24d6e + name: Cookies + brand: + id: 1fa68b66-e3eb-4f79-a775-5570a30c62d1 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Greenholt, Heidenreich and Lubowitz + card_id: 5e543979-4c97-4769-a93b-cd85fddacd93 + sender: + first_name: Test + last_name: User + email: 15551766249@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: SXKSP7TFRPG507W2HWUPRIBE + - id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + send_status: complete + from_name: Micah + message: null + orders_count: 2 + orders_preview: + - id: 607da8c9-51a5-4375-804a-72a9c7d47234 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/RPGZMCCYCYNFS0QIWLMUFY87 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YJNR4BMPZ4AIRDYXOHEA1IQR + - id: adeff9fb-92ed-48ca-8a7c-68ac703b14e4 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/ZD5RHZK6M5MHV6SKPZXS18AB + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cc2c3bd6-2edb-457c-bb47-aaa924f3dbf1 + expires_at: null + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WTQMNF4DC0XRPTW8CIWBHOVP + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 00216423-6ecf-43fa-ab40-92b67ea49df2 + items: + - id: bb9d3592-7ad4-4d10-af97-e14307fa1888 + quantity: 1 + product: + id: d2089d35-ae4b-4d00-92ed-18d07d869abf + name: Cookies + brand: + id: 78531fb7-3842-4a28-8495-daf174b5c7fb + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Baumbach, Treutel and Hand + card_id: 7a03c12d-479b-47e8-a98d-3200b58848b4 + sender: + first_name: Test + last_name: User + email: 15557803909@test.ongoody.com + workspace_id: 872a44e1-2ea6-4d44-8a02-62e4bca041f7 + workspace_name: Test Team + reference_id: HX6LDJ4Q9T3CP91CMBCXH5P7 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatch' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/order_batches/{id}/orders: + get: + summary: Retrieve orders for an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Orders retrieved with pagination + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: 4f010d07-2003-497c-8361-7a189bf54981 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/I1BMEGEXCBJPJWZVQNPKYEO8 + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: CZ7I0FAZYYPDUJU0TSH82XI7 + - id: ed4ae89d-3391-47ab-bdb3-084979cd2a52 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/9SICCNKU3DD0JYMSO1LQR970 + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: f138d77d-5828-4f6f-a9ce-660dadd9b216 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: d47d4f2c-7a96-4b59-bb41-067d116b58c7 + expires_at: null + cart: + id: 61a4b918-d141-4c98-bd91-3c8301c5698d + items: + - id: 3d5bd47f-f577-4654-a21f-85340243f042 + quantity: 1 + product: + id: 754e421e-2d71-4418-9f8b-71ec4460cfc8 + name: Cookies + brand: + id: be3c981b-b74f-4b9b-8563-fd1ed80f22b1 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15551767957@test.ongoody.com + workspace_id: e25bff84-bb2e-41d3-88de-2ba4e39fcc46 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: KDNRICONAYGLJVSYKD4MXUG6 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}/recipients: + get: + summary: Retrieve recipients for an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Recipients retrieved with pagination + content: + application/json: + examples: + Recipients retrieved for sent order batch: + value: + data: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + list_meta: + total_count: 2 + Recipients retrieved for scheduled order batch with pagination: + value: + data: + - first_name: Alice + last_name: Wilson + email: alice@ongoody.com + list_meta: + total_count: 11 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/OrderBatchRecipient' + list_meta: + $ref: '#/components/schemas/ListMeta' + '400': + description: Fail to retrieve when page is 0 + content: + application/json: + examples: + Invalid page parameter: + value: + error: Page must be greater than 0 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Error' + list_meta: + $ref: '#/components/schemas/ListMeta' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/order_batches/{id}: + get: + summary: Retrieve an order batch + tags: + - Order Batches + security: + - bearer: [] + parameters: + - name: id + in: path + description: Order batch ID + required: true + schema: + type: string + responses: + '200': + description: Scheduled order batch retrieved + content: + application/json: + examples: + Order batch retrieved: + value: + id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + send_status: complete + from_name: Therese + message: null + orders_count: 2 + orders_preview: + - id: ef7934de-3070-4a51-a401-d5e47d4a7af7 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/VIDPJNQSVUTPGSXNBOLFMWAY + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: LNAUPJAZJUJY3LYTVTXYFJEI + - id: 6fd492a9-d076-4f98-bc26-56fb24071c83 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/QE2TTDTYWV09L7RX8MV61CUS + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 574eca6f-d5cd-45f7-8b48-3bfe1bfe85f8 + expires_at: null + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YLQ6L5VVP63TOETJPN1BP9J6 + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: 0ebcb166-17e8-4489-add8-05a3702da091 + items: + - id: ef082104-47da-46ad-99d1-602fa004b9a6 + quantity: 1 + product: + id: 140ebdc9-9805-4476-b141-b9a6c2529324 + name: Cookies + brand: + id: 0d038a85-321e-4857-8d8b-1f178b2ea1e8 + name: Cookie Company + is_scheduled_send: false + scheduled_send_on: null + expires_at: null + send_method: null + batch_name: Thank You from Rutherford-Swaniawski + card_id: d8eb72f2-f470-4b5a-8243-194824a6779e + sender: + first_name: Test + last_name: User + email: 15550033205@test.ongoody.com + workspace_id: 5e60d670-f62b-4a5e-b697-f097c02ec2fc + workspace_name: Test Team + reference_id: CIG8UJVGQSL6IAD5PFTBZ3UW + Scheduled order batch retrieved: + value: + id: 1f333da0-c0e2-4799-9ef1-44fc48cd3ed7 + send_status: pending + from_name: Clarisa + message: null + orders_count: 0 + orders_preview: [] + recipients_count: 2 + recipients_preview: + - first_name: Alena + last_name: Kenter + email: alena@ongoody.com + - first_name: Michael + last_name: Franci + email: michael@ongoody.com + cart: + id: da980af6-5521-451d-8d7c-5acbfaf5ca69 + items: + - id: 9a170b61-b1ae-4f13-9e6c-ca3ace302ca3 + quantity: 1 + product: + id: 67aaa3e1-75e8-4fca-8b30-c48f60a226b4 + name: Cookies + brand: + id: bff2cdcf-34ad-4ee6-a740-159110ff41ab + name: Cookie Company + is_scheduled_send: true + scheduled_send_on: '2023-07-20T21:50:51Z' + expires_at: null + send_method: null + batch_name: Thank You from Konopelski, Prohaska and Howell + card_id: 2ac63cee-494c-4ba7-a02a-7d00f7c59cd5 + sender: + first_name: Test + last_name: User + email: 15557649249@test.ongoody.com + workspace_id: 160718bf-f931-42bc-a9d4-058b3ee8ff28 + workspace_name: Test Team + reference_id: IELD012QXOVQTE6SVNBSXDMQ + schema: + $ref: '#/components/schemas/OrderBatch' + '404': + description: Not found + content: + application/json: + examples: + Order batch not found: + value: + error: Order batch not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/cancel: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + post: + summary: Cancel an order + tags: + - Orders + security: + - bearer: [] + responses: + '200': + description: Order canceled + content: + application/json: + examples: + Order canceled: + value: + id: 15bf6e5f-1ede-49fd-9e5a-9552f4d0ac0e + status: failed + individual_gift_link: https://gifts.ongoody.com/gift/YJSOJEDZQOPQABGFDDFBXXFI + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: db002015-4ac2-4be0-a9f0-88a0eb610c81 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 380bbd4c-8e00-4434-b06a-6ad85be22ec3 + expires_at: null + cart: + id: 7dcedae6-bad9-48a9-9fc7-8307cfd6d407 + items: + - id: de545223-6624-455c-b093-44626f07955f + quantity: 1 + product: + id: 92c58048-f7a6-4247-98c5-5c9739b0db41 + name: Cookies + brand: + id: c24bf660-22ae-411a-bfc8-4663c8053748 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559388988@test.ongoody.com + workspace_id: 2724b1c3-76c3-493d-9e28-62404b6ad8a7 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WPKL1ASIFJCGZXK72X1NKJPD + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders: + get: + summary: List orders + tags: + - Orders + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + responses: + '200': + description: Orders retrieved + content: + application/json: + examples: + Orders retrieved: + value: + data: + - id: ae16f352-bd26-4f6e-ab86-4841cfd955cc + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/WXFRB5VPRJWT6W4L2PJLQR0J + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: YWENSHQUBRLZDVXUXB5BSFTP + - id: 8ffa3505-6be3-4af3-a32b-c48b83fb60f8 + status: created + individual_gift_link: >- + https://gifts.ongoody.com/gift/MMT9TGVG5UQO69FSWZBBBW5Z + recipient_first_name: Alena + recipient_last_name: Kenter + recipient_email: alena@ongoody.com + card_id: b651f2f1-2eed-4c03-a865-0090dbef4a0d + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: 02311285-48b2-4fcf-9498-428491ab27a3 + expires_at: null + cart: + id: dcff1519-eaaa-4549-98a6-38b43ae38934 + items: + - id: 6c67ead2-269d-41ab-8aea-b7e2b06986ad + quantity: 1 + product: + id: 2017b391-0575-4c53-a11f-6a37a8d77ad0 + name: Cookies + brand: + id: a8c9d370-eb5f-42f7-9021-da17ee8da310 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15556432243@test.ongoody.com + workspace_id: af92a8c5-2580-41e3-93dd-3c3c3ff6e8fe + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: DTRFOXPQG3KSXIQQ99VMUEIA + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Order' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/orders/{id}: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + get: + summary: Retrieve an order + tags: + - Orders + security: + - bearer: [] + responses: + '200': + description: Order retrieved + content: + application/json: + examples: + Order retrieved: + value: + id: 34cd9caa-0fe1-4dfb-a3d0-5711c9df8ec4 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/J7TUYJHBGO4NC42YMHDCRQFH + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: 95babe93-dd49-4957-a817-e300c36699e9 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: e2a4c099-cf00-4f62-a0b6-aa118de56ec1 + expires_at: null + cart: + id: f9b8607e-bcf1-471a-b400-a7abd8a00137 + items: + - id: 028c7f0b-2384-428f-9428-79231a350803 + quantity: 1 + product: + id: 3b97a15c-ae39-4336-8ffd-1afc80ec5441 + name: Cookies + brand: + id: 4bd59775-433e-443d-9a85-0494037462bc + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15559181726@test.ongoody.com + workspace_id: 3e5d8ea5-d804-433a-a4f9-6115d830f624 + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: WXIONMAL1CECENU5GCWENJOD + event_times: + created_at: '2023-07-13T21:50:59Z' + notified_at: null + opened_at: null + accepted_at: null + thank_you_added_at: null + pending_payment_at: null + paid_at: null + shipped_at: null + delivered_at: null + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + /v1/orders/{id}/update_expiration: + parameters: + - name: id + in: path + description: id + required: true + schema: + type: string + post: + summary: Update expiration for an order + tags: + - Orders + security: + - bearer: [] + parameters: [] + responses: + '200': + description: Expiration updated + content: + application/json: + examples: + Expiration updated: + value: + id: 42728b42-22e6-4b2f-bb9e-657a8a0f2131 + status: created + individual_gift_link: https://gifts.ongoody.com/gift/IINOSUPYGGTV0FVCTSVEELRW + recipient_first_name: Michael + recipient_last_name: Franci + recipient_email: michael@ongoody.com + card_id: bcdbf600-d67d-4253-b1d2-1df7db6b9599 + message: Test Message + thank_you_note: null + view_count_recipient: 0 + is_swapped: false + order_batch_id: cfebcd18-847b-48ac-a71a-b99db2be697e + expires_at: '2022-02-01T00:00:00Z' + cart: + id: e4792f3a-4a4a-49cd-8389-a5859418a834 + items: + - id: 73db4e2a-e54c-4b79-8b54-a8cade7b40e1 + quantity: 1 + product: + id: c927e27c-b5c0-4d6d-80e8-9731b6755558 + name: Cookies + brand: + id: ae711da0-ffe0-4e0b-b567-60df3aa18cb2 + name: Cookie Company + shipments: [] + amounts: + amount_product: 2000 + amount_shipping: 500 + amount_processing_fee: 0 + amount_pre_tax_total: 2500 + amount_tax: null + amount_total: null + amount_global_relay_cost: null + sender: + first_name: Test + last_name: User + email: 15552952554@test.ongoody.com + workspace_id: 60a36ddd-2b00-4a2c-ad81-71a3ef49a1ba + workspace_name: Test Team + original_cart: null + original_amounts: null + reference_id: 5YAKD6BGHKQLSEUG0EFEPQJ8 + schema: + $ref: '#/components/schemas/Order' + '404': + description: Order not found + content: + application/json: + examples: + Order not found: + value: + error: Order not found + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + type: object + properties: + expiration: + type: string + format: date-time + example: 2022-02-01T00:00:00+0000 + description: New expiration date in ISO 8601 format + /v1/payment_methods: + get: + summary: List all payment methods + tags: + - Payment Methods + security: + - bearer: [] + responses: + '200': + description: Payment methods retrieved + content: + application/json: + examples: + Payment methods retrieved: + value: + data: + - id: 6e8b135b-6034-4300-bea0-9e006dc7302c + name: Visa 1234 + cardholder_name: Card 1 + - id: aacd0e9a-2b73-419d-bc52-67551666adcd + name: Mastercard 5678 + cardholder_name: Card 2 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/PaymentMethod' + list_meta: + $ref: '#/components/schemas/ListMeta' + '401': + description: Failed to authorize + content: + application/json: + examples: + Unauthorized: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + /v1/products: + get: + summary: List all active products + tags: + - Products + security: + - bearer: [] + parameters: + - name: page + in: query + schema: + type: integer + default: 1 + minimum: 1 + description: Page for pagination, starting at 1 + required: false + - name: per_page + in: query + schema: + type: integer + default: 20 + minimum: 1 + maximum: 100 + description: Items per page for pagination + required: false + - name: use_custom_catalog + in: query + schema: + type: boolean + description: Limit to custom catalog only (for approved API partners) + required: false + responses: + '200': + description: Products retrieved + content: + application/json: + examples: + Products retrieved: + value: + data: + - id: 72b6b5c2-1fa9-425e-affb-91bf684b66e2 + name: Dozen Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 6d956b61-6704-4fe6-88c1-405eae464da4 + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: ce309ead-b95e-4332-ad1d-0500deb9f953 + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 05ffb0d2-9759-4970-861d-a8b868056998 + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + - id: e4710eb2-6532-4efa-86c5-8c70a39a7bc6 + name: Six Cookies + brand: + id: 8606bb43-06cc-4953-b67d-e635a95365e1 + name: Annalisa Stokes + shipping_price: 1000 + subtitle: null + subtitle_short: null + recipient_description: '' + variants_label: null + variants_num_selectable: null + variants: + - id: 9a5072ef-1ee2-4b8c-ad72-ce70d051b6dc + name: Chocolate Chip + subtitle: Classic chocolate chip. + image_large: null + - id: 95ccc62c-46f6-4617-9bd6-bd2f9743551c + name: Oatmeal + subtitle: Delicious oatmeal. + image_large: null + - id: 6fa93286-90d8-41c8-a732-2dda85bd410f + name: Sugar + subtitle: Tasty sugar. + image_large: null + images: [] + price: 1000 + price_is_variable: false + restricted_states: [] + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Product' + list_meta: + $ref: '#/components/schemas/ListMeta' + /v1/webhooks: + post: + summary: Create a webhook endpoint + tags: + - Webhooks + security: + - bearer: [] + parameters: [] + responses: + '201': + description: Webhook endpoint created + content: + application/json: + examples: + Webhook endpoint created: + value: + id: 77b82a8a-760e-4341-9880-3f57d15c5faa + schema: + type: object + properties: + id: + type: string + '400': + description: Webhook endpoint not created + content: + application/json: + examples: + Webhook endpoint failed to create: + value: + error: Unauthorized. You must be an admin to manage webhooks. + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint created: + summary: Webhook endpoint created + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + /v1/webhooks/{id}: + parameters: + - name: id + in: path + description: Webhook endpoint ID + required: true + schema: + type: string + delete: + summary: Delete a webhook endpoint + tags: + - Webhooks + security: + - bearer: [] + parameters: [] + responses: + '204': + description: Webhook endpoint deleted + '400': + description: Webhook endpoint not deleted + content: + application/json: + examples: + Webhook endpoint failed to delete: + value: + error: Unauthorized + schema: + $ref: '#/components/schemas/Error' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookInput' + examples: + Webhook endpoint deleted: + summary: Webhook endpoint deleted + value: + url: https://ongoody.com/webhook-endpoint + events: + - order_batch.created + /v1/workspaces: + get: + summary: List all workspaces + tags: + - Workspaces + security: + - bearer: [] + responses: + '200': + description: Workspaces retrieved + content: + application/json: + examples: + Workspaces retrieved: + value: + data: + - id: 406e4fb7-51e0-44c4-8351-a85cce68de1d + name: Workspace 1 + - id: 12e9f1f9-b2fb-4449-b57b-7ed8e2706272 + name: Workspace 2 + list_meta: + total_count: 2 + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Workspace' + list_meta: + $ref: '#/components/schemas/ListMeta' diff --git a/sdks/db/processed-custom-request-cache/ongoody.com.yaml b/sdks/db/processed-custom-request-cache/ongoody.com.yaml new file mode 100644 index 000000000..27791e02d --- /dev/null +++ b/sdks/db/processed-custom-request-cache/ongoody.com.yaml @@ -0,0 +1,19 @@ +processed: + securitySchemes: + bearer: + type: http + scheme: bearer + description: Your Goody API key. + apiBaseUrl: https://api.ongoody.com + apiVersion: 1.0.0 + apiTitle: Goody API + endpoints: 14 + sdkMethods: 19 + schemas: 26 + parameters: 30 + contactEmail: support@ongoody.com + originalCustomRequest: + type: GET + url: https://assets.ongoody.com/static/web/goody-api-openapi.json + customRequestSpecFilename: ongoody.com.yaml + difficultyScore: 39.5 diff --git a/sdks/db/progress/goody-progress.yaml b/sdks/db/progress/goody-progress.yaml new file mode 100644 index 000000000..172eb6ece --- /dev/null +++ b/sdks/db/progress/goody-progress.yaml @@ -0,0 +1,85 @@ +examples: {} +examples_2: {} +examples_3: {} +operationIds: + /v1/me: + get: Me_getCurrentUser + /v1/order_batches: + get: OrderBatches_list + post: OrderBatches_createBatch + /v1/order_batches/{id}: + get: OrderBatches_get + /v1/order_batches/{id}/orders: + get: OrderBatches_getOrders + /v1/order_batches/{id}/recipients: + get: OrderBatches_getRecipients + /v1/orders: + get: Orders_getList + /v1/orders/{id}: + get: Orders_getById + /v1/orders/{id}/cancel: + post: Orders_cancelOrder + /v1/orders/{id}/update_expiration: + post: Orders_updateExpiration + /v1/payment_methods: + get: PaymentMethods_listAll + /v1/products: + get: Products_listActiveProducts + /v1/webhooks: + post: Webhooks_createEndpoint + /v1/webhooks/{id}: + delete: Webhooks_deleteEndpoint + /v1/workspaces: + get: Workspaces_getAll +operationTags: {} +renameTags: {} +requestSchemaNames: + /v1/orders/{id}/update_expiration: + post: + application/json: OrdersUpdateExpirationRequest +responseDescriptions: {} +responseSchemaNames: + /v1/order_batches: + get: + '200': + application/json: OrderBatchesListResponse + /v1/order_batches/{id}/orders: + get: + '200': + application/json: OrderBatchesGetOrdersResponse + '400': + application/json: OrderBatchesGetOrders400Response + /v1/order_batches/{id}/recipients: + get: + '200': + application/json: OrderBatchesGetRecipientsResponse + '400': + application/json: OrderBatchesGetRecipients400Response + /v1/orders: + get: + '200': + application/json: OrdersGetListResponse + /v1/payment_methods: + get: + '200': + application/json: PaymentMethodsListAllResponse + /v1/products: + get: + '200': + application/json: ProductsListActiveProductsResponse + /v1/webhooks: + post: + '201': + application/json: WebhooksCreateEndpointResponse + /v1/workspaces: + get: + '200': + application/json: WorkspacesGetAllResponse +securityParameters: + page: + query: false + per_page: + query: false + use_custom_catalog: + query: false +validServerUrls: {} diff --git a/sdks/db/published/from-custom-request_ongoody.com.json b/sdks/db/published/from-custom-request_ongoody.com.json new file mode 100644 index 000000000..2d8d9915f --- /dev/null +++ b/sdks/db/published/from-custom-request_ongoody.com.json @@ -0,0 +1,532 @@ +{ + "securitySchemes": { + "bearer": { + "type": "http", + "scheme": "bearer", + "description": "Your Goody API key." + } + }, + "apiBaseUrl": "https://api.ongoody.com", + "apiVersion": "1.0.0", + "apiTitle": "Goody API", + "endpoints": 14, + "sdkMethods": 19, + "schemas": 37, + "parameters": 30, + "contactEmail": "support@ongoody.com", + "originalCustomRequest": { + "type": "GET", + "url": "https://assets.ongoody.com/static/web/goody-api-openapi.json" + }, + "customRequestSpecFilename": "ongoody.com.yaml", + "difficultyScore": 39.5, + "difficulty": "Easy", + "company": "Goody", + "sdkName": "goody-{language}-sdk", + "clientName": "Goody", + "metaDescription": "Goody is a new way to send personal and business gifts as easily as a text message. \n\nOur business gifting platform, Goody for Business, powers employee engagement, client appreciation, and sales prospecting gifts at more than 12,000 leading companies. Goody integrates with 30 leading HR platforms, allowing companies to automatically gift employees on birthdays and work anniversaries.\n\nChoose from a curated gift collection of 250+ brands. Send a gift with only an email or phone number — no address required. Let gift recipients swap your gift for equal or lower-priced options, with no pricing shown.", + "apiStatusUrls": "inherit", + "homepage": "www.ongoody.com/", + "developerDocumentation": "developer.ongoody.com/introduction/overview", + "categories": [ + "hr", + "employee_engagement", + "gifts", + "sales", + "client_appreciation", + "platform" + ], + "category": "Customer Appreciation", + "apiDescription": "Goody is a new way to send personal and business gifts as easily as a text message. \n\nOur business gifting platform, Goody for Business, powers employee engagement, client appreciation, and sales prospecting gifts at more than 12,000 leading companies. Goody integrates with 30 leading HR platforms, allowing companies to automatically gift employees on birthdays and work anniversaries.\n\nChoose from a curated gift collection of 250+ brands. Send a gift with only an email or phone number — no address required. Let gift recipients swap your gift for equal or lower-priced options, with no pricing shown.", + "methods": [ + { + "url": "/v1/me", + "method": "getCurrentUser", + "httpMethod": "get", + "tag": "Me", + "typeScriptTag": "me", + "description": "Retrieve current user", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/v1/order_batches", + "method": "list", + "httpMethod": "get", + "tag": "Order Batches", + "typeScriptTag": "orderBatches", + "description": "List order batches", + "parameters": [ + { + "name": "page", + "schema": "integer", + "required": false, + "description": "Page for pagination, starting at 1", + "default": 1 + }, + { + "name": "perPage", + "schema": "integer", + "required": false, + "description": "Items per page for pagination", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/order_batches", + "method": "createBatch", + "httpMethod": "post", + "tag": "Order Batches", + "typeScriptTag": "orderBatches", + "description": "Create an order batch", + "parameters": [ + { + "name": "from_name", + "schema": "string", + "required": true, + "description": "", + "example": "FROM_NAME" + }, + { + "name": "message", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "recipients", + "schema": "array", + "required": true, + "description": "" + }, + { + "name": "cart", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "send_method", + "schema": "string", + "required": true, + "description": "", + "example": "SEND_METHOD" + }, + { + "name": "card_id", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "payment_method_id", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "workspace_id", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "scheduled_send_on", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "expires_at", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "reserved_options", + "schema": "object", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "An order batch is the primary resource created by the API. Order batches contain an array of orders." + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/v1/order_batches/{id}/orders", + "method": "getOrders", + "httpMethod": "get", + "tag": "Order Batches", + "typeScriptTag": "orderBatches", + "description": "Retrieve orders for an order batch", + "parameters": [ + { + "name": "id", + "schema": "string", + "required": true, + "description": "Order batch ID", + "example": "ID" + }, + { + "name": "page", + "schema": "integer", + "required": false, + "description": "Page for pagination, starting at 1", + "default": 1 + }, + { + "name": "perPage", + "schema": "integer", + "required": false, + "description": "Items per page for pagination", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/order_batches/{id}/recipients", + "method": "getRecipients", + "httpMethod": "get", + "tag": "Order Batches", + "typeScriptTag": "orderBatches", + "description": "Retrieve recipients for an order batch", + "parameters": [ + { + "name": "id", + "schema": "string", + "required": true, + "description": "Order batch ID", + "example": "ID" + }, + { + "name": "page", + "schema": "integer", + "required": false, + "description": "Page for pagination, starting at 1", + "default": 1 + }, + { + "name": "perPage", + "schema": "integer", + "required": false, + "description": "Items per page for pagination", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/order_batches/{id}", + "method": "get", + "httpMethod": "get", + "tag": "Order Batches", + "typeScriptTag": "orderBatches", + "description": "Retrieve an order batch", + "parameters": [ + { + "name": "id", + "schema": "string", + "required": true, + "description": "Order batch ID", + "example": "ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "An order batch is the primary resource created by the API. Order batches contain an array of orders." + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/orders/{id}/cancel", + "method": "cancelOrder", + "httpMethod": "post", + "tag": "Orders", + "typeScriptTag": "orders", + "description": "Cancel an order", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "An individual order contains the gift link to be sent to the recipient (if applicable) and other information about the order." + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/orders", + "method": "getList", + "httpMethod": "get", + "tag": "Orders", + "typeScriptTag": "orders", + "description": "List orders", + "parameters": [ + { + "name": "page", + "schema": "integer", + "required": false, + "description": "Page for pagination, starting at 1", + "default": 1 + }, + { + "name": "perPage", + "schema": "integer", + "required": false, + "description": "Items per page for pagination", + "default": 20 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/orders/{id}", + "method": "getById", + "httpMethod": "get", + "tag": "Orders", + "typeScriptTag": "orders", + "description": "Retrieve an order", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "An individual order contains the gift link to be sent to the recipient (if applicable) and other information about the order." + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/orders/{id}/update_expiration", + "method": "updateExpiration", + "httpMethod": "post", + "tag": "Orders", + "typeScriptTag": "orders", + "description": "Update expiration for an order", + "parameters": [ + { + "name": "expiration", + "schema": "string", + "description": "", + "example": "2022-02-01T00:00:00+0000" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "An individual order contains the gift link to be sent to the recipient (if applicable) and other information about the order." + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/payment_methods", + "method": "listAll", + "httpMethod": "get", + "tag": "Payment Methods", + "typeScriptTag": "paymentMethods", + "description": "List all payment methods", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/v1/products", + "method": "listActiveProducts", + "httpMethod": "get", + "tag": "Products", + "typeScriptTag": "products", + "description": "List all active products", + "parameters": [ + { + "name": "page", + "schema": "integer", + "required": false, + "description": "Page for pagination, starting at 1", + "default": 1 + }, + { + "name": "perPage", + "schema": "integer", + "required": false, + "description": "Items per page for pagination", + "default": 20 + }, + { + "name": "useCustomCatalog", + "schema": "boolean", + "required": false, + "description": "Limit to custom catalog only (for approved API partners)" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/v1/webhooks", + "method": "createEndpoint", + "httpMethod": "post", + "tag": "Webhooks", + "typeScriptTag": "webhooks", + "description": "Create a webhook endpoint", + "parameters": [ + { + "name": "url", + "schema": "string", + "description": "" + }, + { + "name": "events", + "schema": "array", + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/v1/webhooks/{id}", + "method": "deleteEndpoint", + "httpMethod": "delete", + "tag": "Webhooks", + "typeScriptTag": "webhooks", + "description": "Delete a webhook endpoint", + "parameters": [ + { + "name": "url", + "schema": "string", + "description": "" + }, + { + "name": "events", + "schema": "array", + "description": "" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Webhook endpoint deleted" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/v1/workspaces", + "method": "getAll", + "httpMethod": "get", + "tag": "Workspaces", + "typeScriptTag": "workspaces", + "description": "List all workspaces", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + } + ], + "repositoryDescription": "Goody is a versatile gifting platform that simplifies sending personal and business gifts. It integrates with top HR platforms, offers a curated gift collection, and allows recipients to swap gifts hassle-free. Goody's {language} SDK generated by Konfig (https://konfigthis.com/).", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/goody/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/goody/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/goody/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/goody/imagePreview.png", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/goody/favicon.png", + "clientNameCamelCase": "goody", + "lastUpdated": "2024-03-29T22:43:40.620Z", + "typescriptSdkUsageCode": "import { Goody } from 'goody-typescript-sdk';\n\nconst goody = new Goody({\n // Your Goody API key.\n bearer: \"BEARER\"\n})", + "typescriptSdkFirstRequestCode": "// Retrieve current user\nconst getCurrentUserResponse = goody.me.getCurrentUser()", + "fixedSpecFileName": "goody-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_ongoody.com.json b/sdks/db/spec-data/from-custom-request_ongoody.com.json new file mode 100644 index 000000000..7fd1a6d00 --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_ongoody.com.json @@ -0,0 +1,24 @@ +{ + "securitySchemes": { + "bearer": { + "type": "http", + "scheme": "bearer", + "description": "Your Goody API key." + } + }, + "apiBaseUrl": "https://api.ongoody.com", + "apiVersion": "1.0.0", + "apiTitle": "Goody API", + "endpoints": 14, + "sdkMethods": 19, + "schemas": 26, + "parameters": 30, + "contactEmail": "support@ongoody.com", + "originalCustomRequest": { + "type": "GET", + "url": "https://assets.ongoody.com/static/web/goody-api-openapi.json" + }, + "customRequestSpecFilename": "ongoody.com.yaml", + "difficultyScore": 39.5, + "difficulty": "Easy" +} \ No newline at end of file diff --git a/sdks/publish.yaml b/sdks/publish.yaml index 0d56bb9f6..b165949d3 100644 --- a/sdks/publish.yaml +++ b/sdks/publish.yaml @@ -8735,3 +8735,33 @@ publish: serviceName: false sdkName: market-data-{language}-sdk clientName: MarketData + from-custom-request_ongoody.com: + homepage: www.ongoody.com/ + company: Goody + developerDocumentation: developer.ongoody.com/introduction/overview + apiStatusUrls: inherit + metaDescription: >- + Goody is a new way to send personal and business gifts as easily as a text + message. + + + Our business gifting platform, Goody for Business, powers employee + engagement, client appreciation, and sales prospecting gifts at more than + 12,000 leading companies. Goody integrates with 30 leading HR platforms, + allowing companies to automatically gift employees on birthdays and work + anniversaries. + + + Choose from a curated gift collection of 250+ brands. Send a gift with + only an email or phone number — no address required. Let gift recipients + swap your gift for equal or lower-priced options, with no pricing shown. + categories: + - hr + - employee_engagement + - gifts + - sales + - client_appreciation + - platform + serviceName: false + sdkName: goody-{language}-sdk + clientName: Goody diff --git a/sdks/src/collect-from-custom-requests.ts b/sdks/src/collect-from-custom-requests.ts index 676fc4268..18b11ee11 100644 --- a/sdks/src/collect-from-custom-requests.ts +++ b/sdks/src/collect-from-custom-requests.ts @@ -2541,6 +2541,10 @@ const customRequests: Record = { type: "GET", url: "https://cdn.finshark.io/docs/openapi_v1.yaml", }, + "ongoody.com": { + type: "GET", + url: "https://assets.ongoody.com/static/web/goody-api-openapi.json", + }, }; async function downloadOpenApiSpecFromMintlify({