{"info":{"title":"Device as a Service Merchant APIs (lift-daas-service-production)","description":"# Introduction\nLiftForward Device as a Service Merchant API is used by Merchants to integrate with LiftForward when offering device as a service programs.\n\nThis area provides details on specific API endpoints. For an overview of the API and integrating with LiftForward see https://developers.liftforward.com.\n","version":"2.0.0"},"swagger":"2.0","produces":["application/json"],"securityDefinitions":{"api_key":{"type":"apiKey","description":"Api Key header issued by LiftForward.","name":"Api-Key","in":"header"}},"security":[{"api_key":[]}],"host":"api.liftforward.com","tags":[{"name":"Carts","description":"Cart endpoints"},{"name":"Drop Ship Purchase Orders","description":"DropShipPurchaseOrder endpoints"},{"name":"Merchant Customers","description":"MerchantCustomer endpoints"},{"name":"Merchant Customer Sessions","description":"MerchantCustomerSession endpoints"},{"name":"Pings","description":"Connectivity Tests"},{"name":"Products","description":"Product endpoints"},{"name":"Promotions","description":"Promotion endpoints"},{"name":"Sessions","description":"Session endpoints"}],"paths":{"/carts/{cart_id}":{"get":{"summary":"Show Cart","description":"Shows the cart indicated by the provided `cart_id`. This API is only available to merchants using the Partially Hosted Ecommerce Experience.\n\nThe Show Cart operation can be called at any time by a merchant to view the current state of the cart. Merchant can obtain the current `cart_id` by calling the Show MerchantCustomer API. Customers can only have 1 cart active at a time. Once the cart is checked out, the customer receives a new empty Cart with a new `cart_id`.\n\n# Cart States\n\nThe cart state will change as the customer adds and removes items from the cart and performs other options on the LiftForward site. Below are a few examples of typical cart states:\n\n## Empty Cart\n\nBelow is a typical empty cart.\n- `can_checkout` is `false` because this customer has not met the requirements to checkout.\n- `is_compliant` is `false` because this program requires at least 1 hero product in the cart.\n- `compliance_errors` contains an error indicating that a hero product is missing.\n- `status` is `draft` because the cart has not been checked out yet.\n- All 3 item arrays are empty.\n- The cart totals are all $0.00.\n\n```json\n{\n  \"cart\": {\n    \"cart_id\": \"mcgzsesbntzw4r9dyq5gs3eex2w\",\n    \"merchant_customer_id\": \"6b1bf54b-c92d-494a-9a19-4e9a8a9879ae\",\n    \"merchant\": {\n      \"source_channel_id\": \"ONLINE_SHIP_TO_HOME\",\n      \"store_id\": null,\n      \"employee_id\": null\n    },\n    \"country_code\": \"US\",\n    \"created_at\": \"2024-03-27T20:27:39Z\",\n    \"currency\": \"USD\",\n    \"total_sale_price\": 0.0,\n    \"total_price\": 0.0,\n    \"total_sales_tax\": 0.0,\n    \"total_installment_payment\": 0.0,\n    \"status\": \"draft\",\n    \"can_checkout\": false,\n    \"is_compliant\": true,\n    \"compliance_errors\": [\n      {\n        \"key\": \"hero_product_missing\"\n      }\n    ],\n    \"rental_items\": [],\n    \"finance_items\": [],\n    \"service_items\": []\n  }\n}\n```\n\n## Cart with Items\n\nBelow is a typical cart once the user has added some items.\n- `can_checkout` is `false` because this customer has not met the requirements to checkout.\n- `is_compliant` is `false` because this customer has not yet accepted an application with the lender.\n- `compliance_errors` contains an error indicating that there is no accepted credit application.\n- `status` is `draft` because the cart has not been checked out yet.\n- the `rental_items` and `finance_items` have cart items added by the customer.\n- The cart totals reflect the sum of the cart items.\n\n```json\n{\n  \"cart\": {\n    \"cart_id\": \"mcgzsesbntzw4r9dyq5gs3eex2w\",\n    \"merchant_customer_id\": \"6b1bf54b-c92d-494a-9a19-4e9a8a9879ae\",\n    \"merchant\": {\n      \"source_channel_id\": \"ONLINE_SHIP_TO_HOME\",\n      \"store_id\": null,\n      \"employee_id\": null\n    },\n    \"country_code\": \"US\",\n    \"created_at\": \"2024-03-27T20:27:39Z\",\n    \"currency\": \"USD\",\n    \"total_sale_price\": 1139.0,\n    \"total_price\": 1139.0,\n    \"total_sales_tax\": 0.0,\n    \"total_installment_payment\": 31.64,\n    \"status\": \"draft\",\n    \"can_checkout\": false,\n    \"is_compliant\": false,\n    \"compliance_errors\": [\n      {\n        \"key\": \"application_not_accepted\"\n      }\n    ],\n    \"rental_items\": [\n      {\n        \"cart_item_id\": \"dqqpzs2y4kbw42a6y8a3dmd2sfg\",\n        \"product_id\": \"tablet_model_abc_rent\",\n        \"product_name\": \"Tablet Model ABC\",\n        \"merchant_sku\": \"1239diw80d9ckb\",\n        \"unit_retail_price\": 1079.0,\n        \"unit_sale_price\": 1079.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\":  1079.0,\n        \"total_payment_to_buy_out\": 1079.0,\n        \"total_payment_to_trade_in\": 1079.0,\n        \"unit_installment_payment\": 29.98,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"RENT\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": {\n          \"subscription_plan_id\": \"standard-plan\",\n          \"plan_code\": \"standard\",\n          \"plan_name\": \"Standard Plan\",\n          \"plan_subtitle\": \"This is the basic plan.\",\n          \"plan_summary\": \"Total financed amount when you upgrade is $1,079 and includes 36 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.\"\n        }\n      }\n    ],\n    \"finance_items\": [\n      {\n        \"cart_item_id\": \"8rw46qspxx824jarx6h4h7sg4ya\",\n        \"product_id\": \"tablet_headphones_v3_red\",\n        \"product_name\": \"Tablet Headphones V3 - Red\",\n        \"merchant_sku\": \"994kjbjslekff3\",\n        \"unit_retail_price\": 60.0,\n        \"unit_sale_price\": 60.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 60.0,\n        \"total_payment_to_buy_out\": 60.0,\n        \"total_payment_to_trade_in\": 60.0,\n        \"unit_installment_payment\": 1.67,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"FINANCING\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": null\n      }\n    ],\n    \"service_items\": []\n  }\n}\n```\n\n## Cart Ready for Checkout\n\nBelow is a typical cart once the customer has obtained a credit approval from the lender.\n- `can_checkout` is `true` because this cart is ready checkout.\n- `is_compliant` is `true` because this cart has met all the program requirements.\n- `compliance_errors` is empty because there are no errors.\n- `status` is `draft` because the cart has not been checked out yet.\n\n```json\n{\n  \"cart\": {\n    \"cart_id\": \"mcgzsesbntzw4r9dyq5gs3eex2w\",\n    \"merchant_customer_id\": \"6b1bf54b-c92d-494a-9a19-4e9a8a9879ae\",\n    \"merchant\": {\n      \"source_channel_id\": \"ONLINE_SHIP_TO_HOME\",\n      \"store_id\": null,\n      \"employee_id\": null\n    },\n    \"country_code\": \"US\",\n    \"created_at\": \"2024-03-27T20:27:39Z\",\n    \"currency\": \"USD\",\n    \"total_sale_price\": 1139.0,\n    \"total_price\": 1139.0,\n    \"total_sales_tax\": 0.0,\n    \"total_installment_payment\": 31.64,\n    \"status\": \"draft\",\n    \"can_checkout\": true,\n    \"is_compliant\": true,\n    \"compliance_errors\": [],\n    \"rental_items\": [\n      {\n        \"cart_item_id\": \"dqqpzs2y4kbw42a6y8a3dmd2sfg\",\n        \"product_id\": \"tablet_model_abc_rent\",\n        \"product_name\": \"Tablet Model ABC\",\n        \"merchant_sku\": \"1239diw80d9ckb\",\n        \"unit_retail_price\": 1079.0,\n        \"unit_sale_price\": 1079.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 1079.0,\n        \"total_payment_to_buy_out\": 1079.0,\n        \"total_payment_to_trade_in\": 1079.0,\n        \"unit_installment_payment\": 29.98,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"RENT\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": {\n          \"subscription_plan_id\": \"standard-plan\",\n          \"plan_code\": \"standard\",\n          \"plan_name\": \"Standard Plan\",\n          \"plan_subtitle\": \"This is the basic plan.\",\n          \"plan_summary\": \"Total financed amount when you upgrade is $1,079 and includes 36 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.\"\n        }\n      }\n    ],\n    \"finance_items\": [\n      {\n        \"cart_item_id\": \"8rw46qspxx824jarx6h4h7sg4ya\",\n        \"product_id\": \"tablet_headphones_v3_red\",\n        \"product_name\": \"Tablet Headphones V3 - Red\",\n        \"merchant_sku\": \"994kjbjslekff3\",\n        \"unit_retail_price\": 60.0,\n        \"unit_sale_price\": 60.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 60.0,\n        \"total_payment_to_buy_out\": 60.0,\n        \"total_payment_to_trade_in\": 60.0,\n        \"unit_installment_payment\": 1.67,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"FINANCING\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": null\n      }\n    ],\n    \"service_items\": []\n  }\n}\n```\n## Cart During Async Checkout Process\n\nBelow is a typical cart after a merchant has called the cart checkout api and the checkout process is running.\n- `can_checkout` is `false` because this cart has already been checked out.\n- `is_compliant` is `true` because this cart has met all the program requirements.\n- `compliance_errors` is empty because there are no errors.\n- `status` is `checkout_in_progress` because the cart checkout is in progress.\n\n```json\n{\n  \"cart\": {\n    \"cart_id\": \"mcgzsesbntzw4r9dyq5gs3eex2w\",\n    \"merchant_customer_id\": \"6b1bf54b-c92d-494a-9a19-4e9a8a9879ae\",\n    \"merchant\": {\n      \"source_channel_id\": \"ONLINE_SHIP_TO_HOME\",\n      \"store_id\": null,\n      \"employee_id\": null\n    },\n    \"country_code\": \"US\",\n    \"created_at\": \"2024-03-27T20:27:39Z\",\n    \"currency\": \"USD\",\n    \"total_sale_price\": 1139.0,\n    \"total_price\": 1139.0,\n    \"total_sales_tax\": 0.0,\n    \"total_installment_payment\": 31.64,\n    \"status\": \"checkout_in_progress\",\n    \"can_checkout\": false,\n    \"is_compliant\": true,\n    \"compliance_errors\": [],\n    \"rental_items\": [\n      {\n        \"cart_item_id\": \"dqqpzs2y4kbw42a6y8a3dmd2sfg\",\n        \"product_id\": \"tablet_model_abc_rent\",\n        \"product_name\": \"Tablet Model ABC\",\n        \"merchant_sku\": \"1239diw80d9ckb\",\n        \"unit_retail_price\": 1079.0,\n        \"unit_sale_price\": 1079.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 1079.0,\n        \"total_payment_to_buy_out\": 1079.0,\n        \"total_payment_to_trade_in\": 1079.0,\n        \"unit_installment_payment\": 29.98,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"RENT\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": {\n          \"subscription_plan_id\": \"standard-plan\",\n          \"plan_code\": \"standard\",\n          \"plan_name\": \"Standard Plan\",\n          \"plan_subtitle\": \"This is the basic plan.\",\n          \"plan_summary\": \"Total financed amount when you upgrade is $1,079 and includes 36 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.\"\n        }\n      }\n    ],\n    \"finance_items\": [\n      {\n        \"cart_item_id\": \"8rw46qspxx824jarx6h4h7sg4ya\",\n        \"product_id\": \"tablet_headphones_v3_red\",\n        \"product_name\": \"Tablet Headphones V3 - Red\",\n        \"merchant_sku\": \"994kjbjslekff3\",\n        \"unit_retail_price\": 60.0,\n        \"unit_sale_price\": 60.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 60.0,\n        \"total_payment_to_buy_out\": 60.0,\n        \"total_payment_to_trade_in\": 60.0,\n        \"unit_installment_payment\": 1.67,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"FINANCING\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": null\n      }\n    ],\n    \"service_items\": []\n  }\n}\n```\n\n## Cart After Checkout\n\nBelow is a typical cart after a merchant has called the cart checkout api.\n- `can_checkout` is `false` because this cart has already been checked out.\n- `is_compliant` is `true` because this cart has met all the program requirements.\n- `compliance_errors` is empty because there are no errors.\n- `status` is `checkout_complete` because the cart been checked out.\n\n```json\n{\n  \"cart\": {\n    \"cart_id\": \"mcgzsesbntzw4r9dyq5gs3eex2w\",\n    \"merchant_customer_id\": \"6b1bf54b-c92d-494a-9a19-4e9a8a9879ae\",\n    \"merchant\": {\n      \"source_channel_id\": \"ONLINE_SHIP_TO_HOME\",\n      \"store_id\": null,\n      \"employee_id\": null\n    },\n    \"country_code\": \"US\",\n    \"created_at\": \"2024-03-27T20:27:39Z\",\n    \"currency\": \"USD\",\n    \"total_sale_price\": 1139.0,\n    \"total_price\": 1139.0,\n    \"total_sales_tax\": 0.0,\n    \"total_installment_payment\": 31.64,\n    \"status\": \"checkout_complete\",\n    \"can_checkout\": false,\n    \"is_compliant\": true,\n    \"compliance_errors\": [],\n    \"rental_items\": [\n      {\n        \"cart_item_id\": \"dqqpzs2y4kbw42a6y8a3dmd2sfg\",\n        \"product_id\": \"tablet_model_abc_rent\",\n        \"product_name\": \"Tablet Model ABC\",\n        \"merchant_sku\": \"1239diw80d9ckb\",\n        \"unit_retail_price\": 1079.0,\n        \"unit_sale_price\": 1079.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 1079.0,\n        \"total_payment_to_buy_out\": 1079.0,\n        \"total_payment_to_trade_in\": 1079.0,\n        \"unit_installment_payment\": 29.98,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"RENT\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": {\n          \"subscription_plan_id\": \"standard-plan\",\n          \"plan_code\": \"standard\",\n          \"plan_name\": \"Standard Plan\",\n          \"plan_subtitle\": \"This is the basic plan.\",\n          \"plan_summary\": \"Total financed amount when you upgrade is $1,079 and includes 36 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.\"\n        }\n      }\n    ],\n    \"finance_items\": [\n      {\n        \"cart_item_id\": \"8rw46qspxx824jarx6h4h7sg4ya\",\n        \"product_id\": \"tablet_headphones_v3_red\",\n        \"product_name\": \"Tablet Headphones V3 - Red\",\n        \"merchant_sku\": \"994kjbjslekff3\",\n        \"unit_retail_price\": 60.0,\n        \"unit_sale_price\": 60.0,\n        \"residual_value\": 0.0,\n        \"total_over_term\": 60.0,\n        \"total_payment_to_buy_out\": 60.0,\n        \"total_payment_to_trade_in\": 60.0,\n        \"unit_installment_payment\": 1.67,\n        \"installment_service_fee\": 0.0,\n        \"currency\": \"USD\",\n        \"installment_count\": 36,\n        \"cart_max_quantity\": null,\n        \"contract_type\": \"FINANCING\",\n        \"linked_service_item_ids\": [],\n        \"subscription_plan\": null\n      }\n    ],\n    \"service_items\": []\n  }\n}\n```\n\n","produces":["application/json"],"parameters":[{"in":"path","name":"cart_id","type":"string","required":true}],"responses":{"200":{"description":"Show Cart","schema":{"$ref":"#/definitions/MerchantApi_Entities_CartResponse"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Carts"],"operationId":"getCartsCartId"}},"/carts/{cart_id}/checkout":{"post":{"summary":"Cart Checkout","description":"Checkout will begin the process of transforming the cart indicated by the `cart_id` parameter it into a SubscriptionOrder and create one or more DropShipPurchaseOrders.\n\nWhen the API returns a 200 response the carts `status` will be updated to `checkout_in_progress` and this will kick off a asynchronous process to complete placing the order. Typically there are several additional asynchronous steps required to complete the checkout process.\n\nMerchants can poll the Show Cart API to check the status of the cart. Once the asynchronous process is complete the cart status will be updated to `checkout_complete` or `checkout_failed`. When successful, Merchants should begin their internal fulfillment process for the order.\n\nThe `cart_id` and `merchant_order_id` parameters are required. The `merchant_order_id` is the merchant's unique identifier for the order. The provided `merchant_order_id` will allow the merchant to find associated DropShipPurchaseOrders via the GET /drop_ship_purchase_orders api.\n\nThe `merchant_order_id` must be unique for the each successful cart checkout. If the merchant provides a duplicate `merchant_order_id` the API will return a 409 Conflict error.\n\nMerchants should verify the cart's `can_checkout` attribute is `true` before calling checkout. If the cart is not ready to checkout the API will return a 409 error.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","name":"cart_id","type":"string","required":true},{"name":"CartCheckoutRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postCartsCartIdCheckout"}}],"responses":{"201":{"description":"Cart Checkout","schema":{"$ref":"#/definitions/MerchantApi_Entities_CartResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"title":"is missing","detail":"cart[merchant_order_id] is missing","source":{"pointer":"/data/cart/merchant_order_id"},"code":"invalid_parameter"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"title":"Cart Compliance Error","detail":"compliance error: application_not_accepted","status":409,"code":"application_not_accepted"}]}}}},"tags":["Carts"],"operationId":"postCartsCartIdCheckout"}},"/drop_ship_purchase_orders":{"get":{"summary":"Index DropShipPurchaseOrders","description":"Returns a paginated list of DropShipPurchaseOrders.\n\nWhen a customer places a Order through LiftForward's ecommerce experiences,\none or more DropShipPurchaseOrders are created by LiftForward to represent orders that needs to\nbe fulfilled by the merchant or other third party. The term 'drop ship' is used to reference that the\npurchase orders are to be delivered directly to the end-customer and not an intermediate facility.\nTypically each DropShipPurchaseOrder is matched by 1 order in the merchant's fulfillment system.\n\nDepending on the style of integration merchants will make use of the fulfill, return, cancel and sometimes\nupdate and accept DropShipPurchaseOrder APIs to manage the lifecycle of the DropShipPurchaseOrder.\n\nMerchant can filter the results using the following parameters:\n  - `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order.\n  - `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order.\n","produces":["application/json"],"parameters":[{"in":"query","name":"merchant_drop_ship_purchase_order_id","description":"Filters the results by merchant_drop_ship_purchase_order_id.","type":"string","required":false},{"in":"query","name":"drop_ship_purchase_order_id","description":"Filters the results by drop_ship_purchase_order_id.","type":"string","required":false},{"in":"query","name":"page","description":"Indicates which page of results to return.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Indicates the number of results to include in each page.","type":"integer","format":"int32","default":25,"minimum":1,"maximum":25,"required":false}],"responses":{"200":{"description":"Index DropShipPurchaseOrders","schema":{"$ref":"#/definitions/MerchantApi_Entities_DropShipPurchaseOrderIndexResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"getDropShipPurchaseOrders"}},"/drop_ship_purchase_orders/{drop_ship_purchase_order_id}":{"get":{"summary":"Show a DropShipPurchaseOrder","description":"Shows the DropShipPurchaseOrder indicated by the drop_ship_purchase_order_id parameter.","produces":["application/json"],"parameters":[{"in":"path","name":"drop_ship_purchase_order_id","type":"string","required":true}],"responses":{"200":{"description":"Show a DropShipPurchaseOrder","schema":{"$ref":"#/definitions/MerchantApi_Entities_DropShipPurchaseOrderResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"getDropShipPurchaseOrdersDropShipPurchaseOrderId"}},"/drop_ship_purchase_orders/accept":{"post":{"summary":"Accept a DropShipPurchaseOrder (async)","description":"The DropShipPurchaseOrder accept API is used by merchants to accept a drop ship purchase order and provide LiftForward with it's `merchant_drop_ship_purchase_order_id`.\n\nMerchants should use this API after they are notified of a new drop ship purchase order via the notification webhook. Accepting a drop ship purchase order will trigger a confirmation email to the customer and notify LiftForward that a merchant has begun fulfillment of the order.\n\nOne of the following 2 unique identifiers for the drop ship purchase order must be provided: - `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order. - `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order, as   sent in the drop ship purchase order notification webhook.\n\nWhen both are provided, the drop ship purchase order is looked up by `drop_ship_purchase_order_id` only. A 404 response means none of the merchant's drop ship purchase orders matched the identifier at the time of the request.\n\nWhen accepting a DropShipPurchaseOrder merchant are encouraged to provide a `merchant_drop_ship_purchase_order_id`. As this will make calling the fulfill, cancel and return APIs easier. Merchants who choose not to set a `merchant_drop_ship_purchase_order_id` will need to use the LiftForward `drop_ship_purchase_order_id` on subsequent API calls. ","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"AcceptRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postDropShipPurchaseOrdersAccept"}}],"responses":{"201":{"description":"Accept a DropShipPurchaseOrder (async)","schema":{"$ref":"#/definitions/ApiAsyncResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"postDropShipPurchaseOrdersAccept"}},"/drop_ship_purchase_orders/cancel":{"post":{"summary":"Cancel a DropShipPurchaseOrder (async)","description":"Drop ship purchase orders can be canceled when fulfillment has not yet been processed. Canceling will\ncancel the corresponding customer's subscription order items and all related payment authorizations. Drop\nship purchase orders remain open until they are fulfilled or canceled.\n\nOne of the following 2 unique identifiers for the drop ship purchase order must be provided:\n- `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order.\n- `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order, as\n  sent in the drop ship purchase order notification webhook.\n\nWhen both are provided, the drop ship purchase order is looked up by `drop_ship_purchase_order_id` only.\nA 404 response means none of the merchant's drop ship purchase orders matched the identifier at the time\nof the request.\n\nIf the `items` parameter is omitted, all items in the drop ship purchase order will be canceled.\n\nSome programs only support full cancellation of an order. If the `items` parameter is provided and\ndoes not include all items in the order, a 422 error will be returned for those programs.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"CancelRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postDropShipPurchaseOrdersCancel"}}],"responses":{"201":{"description":"Cancel a DropShipPurchaseOrder (async)","schema":{"$ref":"#/definitions/ApiAsyncResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"422":{"description":"Unprocessable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"Partial cancellation of DropShipPurchaseOrders is not supported."}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"postDropShipPurchaseOrdersCancel"}},"/drop_ship_purchase_orders/fulfill":{"post":{"summary":"Fulfill a DropShipPurchaseOrder (async)","description":"When the merchant fulfills a drop ship purchase order via shipping or in-store, the merchant is\nresponsible for notifying LiftForward of the fulfillment along with the required data. Fulfillment\nmarks the corresponding customer's subscription order items as active, captures payment on the existing\ncredit authorization, and finalized the customer's line of credit. Drop ship purchase orders remain\nopen until they are fulfilled or canceled. Fulfillment applies only to an existing drop ship purchase\norder that LiftForward has created for the merchant.\n\nOne of the following 2 unique identifiers for the drop ship purchase order must be provided:\n- `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order.\n- `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order, as\n  sent in the drop ship purchase order notification webhook.\n\nWhen both are provided, the drop ship purchase order is looked up by `drop_ship_purchase_order_id` only.\nA 404 response means none of the merchant's drop ship purchase orders matched the identifier at the time\nof the request.\n\nIf the `items` parameter is not provided, all items in the drop ship purchase order will be fulfilled.\nSome programs require serial numbers to be provided for fulfillment of some items. In these cases merchants\nshould provide the `serial_number` with the `sku` for each item requiring a serial number. If the item does\nnot require a serial number, the `serial_number` parameter should be omitted of passed as `null`.\n\nSome programs only support full fulfillment of an order. If the `items` parameter specifies fewer items\nthan remain to be fulfilled, a 422 error will be returned for those programs.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"FulfillRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postDropShipPurchaseOrdersFulfill"}}],"responses":{"201":{"description":"Fulfill a DropShipPurchaseOrder (async)","schema":{"$ref":"#/definitions/ApiAsyncResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"422":{"description":"Unprocessable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"Partial fulfillment of DropShipPurchaseOrders is not supported."}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"postDropShipPurchaseOrdersFulfill"}},"/drop_ship_purchase_orders/return":{"post":{"summary":"Return a DropShipPurchaseOrder (async)","description":"Drop ship purchase orders can be returned after successful fulfillment. Returning marks the\ncorresponding customer's subscription order as returned and refunds all related payments to the\ncustomer.\n\nOne of the following 2 unique identifiers for the drop ship purchase order must be provided:\n- `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order.\n- `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order, as\n  sent in the drop ship purchase order notification webhook.\n\nWhen both are provided, the drop ship purchase order is looked up by `drop_ship_purchase_order_id` only.\nA 404 response means none of the merchant's drop ship purchase orders matched the identifier at the time\nof the request.\n\nIf the `items` parameter is omitted, all items in the drop ship purchase order will be returned.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"ReturnRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postDropShipPurchaseOrdersReturn"}}],"responses":{"201":{"description":"Return a DropShipPurchaseOrder (async)","schema":{"$ref":"#/definitions/ApiAsyncResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"postDropShipPurchaseOrdersReturn"}},"/drop_ship_purchase_orders/update":{"post":{"summary":"Update a DropShipPurchaseOrder (async)","description":"When necessary the drop ship purchase order update api will allow the merchant to update the\nserial number associated with the listed item.\n\nOne of the following 2 unique identifiers for the drop ship purchase order must be provided:\n- `merchant_drop_ship_purchase_order_id` - The merchant's unique identifier for the drop ship purchase order.\n- `drop_ship_purchase_order_id` - The LiftForward unique identifier for the drop ship purchase order, as\n  sent in the drop ship purchase order notification webhook.\n\nWhen both are provided, the drop ship purchase order is looked up by `drop_ship_purchase_order_id` only.\nA 404 response means none of the merchant's drop ship purchase orders matched the identifier at the time\nof the request.\n\nThe `items` parameter is required and must contain at least 1 object with a `current_serial_number` value that\nhas already been submitted to LiftForward. If found the api will return a success response and update the\nserial_number on file with the provided `new_serial_number` value in the background.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"UpdateRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postDropShipPurchaseOrdersUpdate"}}],"responses":{"201":{"description":"Update a DropShipPurchaseOrder (async)","schema":{"$ref":"#/definitions/ApiAsyncResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Drop Ship Purchase Orders"],"operationId":"postDropShipPurchaseOrdersUpdate"}},"/merchant_customers":{"post":{"summary":"Create or Show MerchantCustomer","description":"Creates a new MerchantCustomer for the provided `merchant_customer_id`. If a MerchantCustomer already exists for the provided `merchant_customer_id` the existing MerchantCustomer is returned.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"postMerchantCustomers","in":"body","required":true,"schema":{"$ref":"#/definitions/postMerchantCustomers"}}],"responses":{"201":{"description":"Created successfully","schema":{"$ref":"#/definitions/MerchantApi_Entities_MerchantCustomerResponse"}},"200":{"description":"Already exists","schema":{"$ref":"#/definitions/MerchantApi_Entities_MerchantCustomerResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"9de3c888-b459-4c20-a376-8eaf4c7e3819","errors":[{"message":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Merchant Customers"],"operationId":"postMerchantCustomers"}},"/merchant_customers/{merchant_customer_id}":{"get":{"summary":"Show MerchantCustomer","description":"Shows the MerchantCustomer associated with the provided `merchant_customer_id`.\n","produces":["application/json"],"parameters":[{"in":"path","name":"merchant_customer_id","type":"string","required":true}],"responses":{"200":{"description":"MerchantCustomer found.","schema":{"$ref":"#/definitions/MerchantApi_Entities_MerchantCustomerResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"404":{"description":"Not Found - a customer matching the provided merchant_customer_id was not found","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"c70be943-8bb5-4bf8-b8b8-50c178decef9","errors":[{"detail":"Couldn't find Customer"}]}}}},"tags":["Merchant Customers"],"operationId":"getMerchantCustomersMerchantCustomerId"}},"/merchant_customers/{merchant_customer_id}/session":{"post":{"summary":"Create MerchantCustomer Session","description":"Creates a new MerchantCustomer Session for the provided `merchant_customer_id`.\n\nMerchantCustomer Sessions are used as a secure way for merchants to pass customer details to LiftForward before redirecting the customer to a LiftForward hosted credit application.\n\nThis feature is not supported for all programs.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","name":"merchant_customer_id","type":"string","required":true},{"name":"SessionRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postMerchantCustomersMerchantCustomerIdSession"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/MerchantApi_Entities_SessionResponse"}},"400":{"description":"Invalid parameters - one or more required parameters are invalid or missing","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"fb447b36-5371-4349-8332-6448691126e5","errors":[{"detail":"session[program_code] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"404":{"description":"Not Found - a customer matching the provided parameters was not found","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"89b3a89e-ac31-498d-9e17-4af285ee75fa","errors":[{"detail":"Couldn't find Customer"}]}}},"409":{"description":"Conflict - a session could not be created due to the customer having an existing purchase in the provided program.","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"f8e354af-12f7-4154-9309-c319cd31075b","errors":[{"detail":"Session could not be initialized"}]}}}},"tags":["Merchant Customer Sessions"],"operationId":"postMerchantCustomersMerchantCustomerIdSession"}},"/merchant_customers/{merchant_customer_id}/session/{session_id}":{"get":{"summary":"Show MerchantCustomer Session","description":"Returns an existing MerchantCustomer Session for the provided `session_id`.\n","produces":["application/json"],"parameters":[{"in":"path","name":"merchant_customer_id","type":"string","required":true},{"in":"path","name":"session_id","type":"string","required":true}],"responses":{"200":{"description":"MerchantCustomer Session found.","schema":{"$ref":"#/definitions/MerchantApi_Entities_SessionResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"404":{"description":"Not Found - a session matching the provided session_id was not found","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"d0eda91c-4e52-421a-a795-7b0d7462fcdc","errors":[{"detail":"Couldn't find CustomerSession"}]}}}},"tags":["Merchant Customer Sessions"],"operationId":"getMerchantCustomersMerchantCustomerIdSessionSessionId"}},"/pings":{"get":{"summary":"Index Ping","description":"A simple INDEX style operation allowing developers to verify connectivity and authentication.","produces":["application/json"],"responses":{"200":{"description":"Index Ping"}},"tags":["Pings"],"operationId":"getPings"}},"/products":{"get":{"summary":"Index Products","description":"Returns a paginated list of all the Products in the merchant's Product Catalog.\n\nUsing the `merchant_sku` parameter merchants can filter the results. Using the the `page` and `per_page` parameters merchants can paginate the results. ","produces":["application/json"],"parameters":[{"in":"query","name":"page","description":"Indicates which page of results to return.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Indicates the number of results to include in each page.","type":"integer","format":"int32","default":25,"minimum":1,"maximum":25,"required":false},{"in":"query","name":"merchant_sku","description":"Filters the results by merchant_sku.","type":"string","required":false}],"responses":{"200":{"description":"Index Products","schema":{"$ref":"#/definitions/ProductIndexResponse"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Products"],"operationId":"getProducts"},"post":{"summary":"Create Product","description":"Creates new Products in the merchant's Product Catalog. If a product with a value matching the `merchant_sku` already exists\nthe existing product will be updated with the provided attributes.\n\nWhen creating new products the LF system will assign a `product_id` value for the product. Typically this\nvalue will be `{merchant_id}-{merchant_sku}`. Given `product_id` is used as a url parameter any non url safe characters\nin the `merchant_sku` will be removed. For example a merchant sku of \"SKU 123/456\" will be converted to a product_id of \"SKU123456\".\nThe `merchant_sku` value will remain unchanged.\n\nThe following attributes are calculated by LiftForward and are not assignable:\n `installment_price`, `installment_count`, `residual_value`, `total_over_term`, `total_payment_to_buy_out`,\n `total_payment_to_trade_in`, `installment_service_fee`, \u0026 `total_installment_service_fee`\n\nIf a merchant is looking to update only a few attributes of an existing product the Update Product endpoint is recommended.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"CreateProductRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postProducts"}}],"responses":{"201":{"description":"Create Product","schema":{"$ref":"#/definitions/ProductResponse"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"cross_sells sku not found: NON-EXISTENT-1, NON-EXISTENT-2"}]}}}},"tags":["Products"],"operationId":"postProducts"}},"/products/{product_id}":{"get":{"summary":"Show Product","description":"Shows the Product identified by the `product_id` path parameter.\n\nUnder the `available_subscription_plans` parameter the API will return the Subscription Plans available for the product. SubscriptionPlans may alter the `residual_value`, `installment_count` and other attributes of the products financed pricing.\n\nThe Subscription Plan may also include an additional service such as a warranty or a digital service. ","produces":["application/json"],"parameters":[{"in":"path","name":"product_id","description":"The ID of the product to show.","type":"string","required":true},{"in":"query","name":"unit_sale_price","description":"Overrides the products unit_sale_price and subsequent installment calculations.","type":"number","format":"double","required":false}],"responses":{"200":{"description":"Show Product","schema":{"$ref":"#/definitions/ProductResponse"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Products"],"operationId":"getProductsProductId"},"put":{"summary":"Update Product","description":"Updates the Product identified by the `product_id` parameter with the provided attributes.\n\nMany attributes returned by the products api are calculated by LiftForward or are used for critical operations and are not updatable.\n\nPartial updates are supported. Only the attributes provided in the request will be updated. For example the following request will only update the `unit_sale_price` attribute of the product.\n```\n{\n  \"product\": {\n    \"unit_sale_price\": 299.99,\n  }\n}\n```\n\nThe following request will only update the available attributes of the product.\n```\n{\n  \"product\": {\n    \"available\": false,\n    \"inventory_message\": \"This product is currently out of stock.\",\n    \"inventory_help_message\": \"Please check back later for availability.\"\n  }\n}\n```\n\nSome values can be updated to null when a value if null is accepted. For example the following request will update the `cart_max_quantity` attribute to null.\n```\n{\n  \"product\": {\n    \"cart_max_quantity\": null\n  }\n}\n```\n\n\nupdates to the following attributes are supported:\n- `asset_url`\n- `available`\n- `browsable`\n- `cart_max_quantity`\n- `categories`\n- `contract_type`\n- `currency`\n- `deep_link`\n- `description_list`\n- `description`\n- `discontinued`\n- `european_article_number`\n- `inventory_help_message`\n- `inventory_message`\n- `inventory_type`\n- `manufacturer_part_number`\n- `manufacturer`\n- `net_unit_sale_price`\n- `product_name`\n- `sales_taxes_and_fees`\n- `unit_retail_price`\n- `unit_sale_price`\n- `cross_sells`\n\nIf `unit_sale_price` is updated for a product that already has tax/fee levies and `sales_taxes_and_fees` is not provided, the stored levy amounts are recalculated proportionally from the new sale price using the existing levy rates.\n\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","name":"product_id","type":"string","required":true},{"name":"UpdateProductRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/putProductsProductId"}}],"responses":{"200":{"description":"Update Product","schema":{"$ref":"#/definitions/ProductResponse"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"cross_sells sku not found: NON-EXISTENT-1, NON-EXISTENT-2"}]}}}},"tags":["Products"],"operationId":"putProductsProductId"}},"/products/{product_id}/locations":{"get":{"summary":"Index Product Locations","description":"Returns the per-location availability and inventory messaging configured for the Product.\n\nSupply a `location_id` (LiftForward id) or `merchant_location_id` (your own id) to fetch a single Location. Use the `page` and `per_page` parameters to paginate the results. ","produces":["application/json"],"parameters":[{"in":"path","name":"product_id","type":"string","required":true},{"in":"query","name":"page","description":"Indicates which page of results to return.","type":"integer","format":"int32","default":1,"required":false},{"in":"query","name":"per_page","description":"Indicates the number of results to include in each page.","type":"integer","format":"int32","default":25,"minimum":1,"maximum":25,"required":false},{"in":"query","name":"location_id","description":"Filter to a single Location by its LiftForward id.","type":"string","required":false,"x-example":"jsx6gyxpwshrrsd3r3zjqzsnhwv"},{"in":"query","name":"merchant_location_id","description":"Filter to a single Location by the merchant's own id.","type":"string","required":false,"x-example":"62CR"}],"responses":{"200":{"description":"Index Product Locations","schema":{"$ref":"#/definitions/MerchantApi_Entities_ProductLocationsResponse"}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Products"],"operationId":"getProductsProductIdLocations"},"post":{"summary":"Upsert Product Locations","description":"Creates or updates the availability and inventory messaging for the Product at one or more Locations.\n\nSend an array of `product_locations`. Each entry identifies its Location by either `location_id` (LiftForward id) or `merchant_location_id` (your own id). The whole array is applied in a single transaction — if any entry is invalid, nothing is saved. ","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","name":"product_id","type":"string","required":true},{"name":"postProductsProductIdLocations","in":"body","required":true,"schema":{"$ref":"#/definitions/postProductsProductIdLocations"}}],"responses":{"201":{"description":"Upsert Product Locations","schema":{"$ref":"#/definitions/MerchantApi_Entities_ProductLocationsResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}}},"tags":["Products"],"operationId":"postProductsProductIdLocations"}},"/promotions":{"post":{"summary":"Show Promotions","description":"Returns a list of promotions with subscription plans available for the provided items.\n\nThe request body must include at least 1 item with its SKU. Optionally, quantity, unit_sale_price and residual value category can be provided for each item. When optional values are not provided, defaults from the known product are used. If any SKUs are not recognized and no unit_sale_price is provided for that item, a 422 error is returned as the item's price can not be calculated. If a shipping_fee is provided, it will be included in the pricing calculations in the response. Each available subscription plan includes an items array with per-request-line financing figures. Rounded per-item payments may differ from the plan-level installment_payment by cents; shipping_fee is not allocated across items. ","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"PromotionsRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postPromotions"}}],"responses":{"201":{"description":"Show Promotions","schema":{"$ref":"#/definitions/PromotionResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"422":{"description":"Unprocessable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"SKU 'SKU-A' is not a recognized product and no unit_sale_price was provided.","code":"invalid_parameter","source":{"pointer":"/items/0/sku","value":"SKU-A"}},{"detail":"SKU 'SKU-B' is not a recognized product and no unit_sale_price was provided.","code":"invalid_parameter","source":{"pointer":"/items/1/sku","value":"SKU-B"}}]}}}},"tags":["Promotions"],"operationId":"postPromotions"}},"/sessions":{"post":{"summary":"Create Session","description":"Creates a new session unattached to a MerchantCustomer.\n\nSessions are used as a secure way for merchants to reference a specific browser session before presenting a LiftForward hosted credit application.\n\nThis feature is not supported for all programs.\n","produces":["application/json"],"consumes":["application/json"],"parameters":[{"name":"SessionRequest","in":"body","required":true,"schema":{"$ref":"#/definitions/postSessions"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/SessionResponse"}},"400":{"description":"Invalid parameters - one or more required parameters are invalid or missing","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"ca1eb127-f0af-4dbb-a765-2ce26102a7f2","errors":[{"detail":"session[program_code] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"409":{"description":"Incompatible upgrade terms","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"36591266-baf4-42de-8ae2-7c6bb9152ec0","errors":[{"detail":"The cart contains products with incompatible upgrade terms.","title":"Incompatible upgrade terms","code":"incompatible_upgrade_terms","status":409}]}}}},"tags":["Sessions"],"operationId":"postSessions"}},"/sessions/{session_id}":{"get":{"summary":"Show Session","description":"Retrieve information about an existing Session.\n\nThis feature is not supported for all programs.\n","produces":["application/json"],"parameters":[{"in":"path","name":"session_id","type":"string","required":true}],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/SessionResponse"}},"400":{"description":"Invalid parameters","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"merchant_customer[merchant_customer_id] is missing"}]}}},"401":{"description":"Unauthorized","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"unauthorized api key"}]}}},"405":{"description":"Not Allowed","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"405 Not Allowed"}]}}},"408":{"description":"Request Time Out","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"408 Request Time Out"}]}}},"500":{"description":"Internal Service Error","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"500 Unexpected Service Error"}]}}},"503":{"description":"Service Unavailable","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"e4c77025-48ee-4e72-beed-cb5686537be3","errors":[{"detail":"503 Service Unavailable"}]}}},"404":{"description":"Not Found - a session matching the provided parameters was not found","schema":{"$ref":"#/definitions/ApiErrorResponse"},"examples":{"application/json":{"request_id":"2395cdad-50bf-475b-bb0b-f95607238cd0","errors":[{"detail":"Couldn't find session"}]}}}},"tags":["Sessions"],"operationId":"getSessionsSessionId"}}},"definitions":{"MerchantApi_Entities_CartResponse":{"type":"object","properties":{"cart":{"$ref":"#/definitions/CartEntity"}},"description":"MerchantApi_Entities_CartResponse model"},"CartEntity":{"type":"object","properties":{"cart_id":{"type":"string","example":"63theprcydxe8hvgz697aes5gdg","description":"Unique identifier for the Cart."},"merchant_customer_id":{"type":"string","example":"9n83759e4f865see4etjd59gkyj","description":"Unique identifier for customer. Provided by the Merchant on create."},"merchant":{"$ref":"#/definitions/MerchantApi_Entities_MerchantEntity"},"country_code":{"type":"string","example":"US","description":"ISO 3166 2-character country code."},"created_at":{"type":"string","example":"2021-08-13T20:30:59Z","description":"Date and Time (UTC) the cart was created."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3-character currency code."},"total_sale_price":{"type":"number","format":"float","example":1259.99,"description":"Total cash value of merchandise specified in the items array."},"total_price":{"type":"number","format":"float","example":1366.49,"description":"Total amount to be financed for this cart. Should equal sum of total_sale_price, total_sales_tax, total_shipping_fee and total_misc_fees."},"total_sales_tax":{"type":"number","format":"float","example":106.5,"description":"Total sales tax for this order."},"total_installment_payment":{"type":"number","format":"float","example":56.94,"description":"The sum of installment payment for all items."},"status":{"type":"string","enum":["checkout_complete","checkout_failed","checkout_in_progress","checkout_retrying","draft"],"example":"checkout_complete","description":"The status of the cart."},"can_checkout":{"type":"boolean","description":"Whether the cart can be checked out."},"is_compliant":{"type":"boolean","description":"Whether the cart has compliance errors"},"compliance_errors":{"type":"array","items":{"$ref":"#/definitions/EcommerceApi_Entities_CartComplianceErrorEntity"},"description":"Compliance errors for the cart"},"sales_tax_rates":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_SalesTaxRateEntity"},"description":"Intended for display purposes only. An array of taxes applicable to this product."},"rental_items":{"type":"array","items":{"$ref":"#/definitions/CartItemEntity"},"description":"Cart items with a RENT contract type."},"finance_items":{"type":"array","items":{"$ref":"#/definitions/CartItemEntity"},"description":"Cart items with a FINANCED contract type."},"service_items":{"type":"array","items":{"$ref":"#/definitions/CartItemEntity"},"description":"Cart items with a SERVICE contract type."}},"required":["cart_id","merchant_customer_id","country_code","created_at","can_checkout","is_compliant","compliance_errors","sales_tax_rates","rental_items","finance_items","service_items"]},"MerchantApi_Entities_MerchantEntity":{"type":"object","properties":{"source_channel_id":{"type":"string","enum":["IN_STORE","ONLINE_IN_STORE","ONLINE_SHIP_TO_HOME"],"default":"ONLINE_SHIP_TO_HOME","example":"ONLINE_SHIP_TO_HOME","description":"String identifying the sales channel the order originated from. ONLINE_SHIP_TO_HOME for typical ecommerce, ONLINE_IN_STORE for click and collect, IN_STORE for point of sale."},"store_id":{"type":"string","example":"3028478594","description":"String to identify merchant's store."},"employee_id":{"type":"string","example":"39383473893939","description":"String to identify merchant's employee who assisted with sale."},"merchant_metadata":{"type":"object","example":{"custom_key_1":"custom_value_1","custom_key_2":"custom_value_2"},"description":"Arbitrary metadata for the session"}}},"EcommerceApi_Entities_CartComplianceErrorEntity":{"type":"object","properties":{"key":{"type":"string","enum":["over_limit","hero_product_missing","hero_quantity_exceeded","max_quantity_exceeded","max_hero_product_count_exceeded","application_declined","application_expired","application_not_accepted","application_canceled","max_premium_plans_exceeded","min_order_total_not_met","accessory_price_exceeded","max_order_total_exceeded","shipping_address_missing","payment_token_missing","sales_quote_expired"],"example":"over_limit","description":"The key of the compliance error."},"type":{"type":"string","enum":["over_limit","hero_product_missing","hero_quantity_exceeded","max_quantity_exceeded","max_hero_product_count_exceeded","application_declined","application_expired","application_not_accepted","application_canceled","max_premium_plans_exceeded","min_order_total_not_met","accessory_price_exceeded","max_order_total_exceeded","shipping_address_missing","payment_token_missing","sales_quote_expired"],"example":"over_limit","description":"Type of compliance error. ."}},"required":["key","type"]},"MerchantApi_Entities_SalesTaxRateEntity":{"type":"object","properties":{"sales_tax_rate_code":{"type":"string","enum":["VAT","GST","HST","PST","QST"],"example":"VAT","description":"The unique code for this sales tax rate"},"rate":{"type":"number","format":"float","example":0.0875,"description":"Tax rate in decimal"},"amount":{"type":"number","format":"float","example":26.25,"description":"Tax amount in purchase currency"}},"required":["sales_tax_rate_code","rate","amount"]},"CartItemEntity":{"type":"object","properties":{"cart_item_id":{"type":"string","example":"8dkdtz7g3yj8bgzd4wc8q633vkx","description":"Unique identifier for the Cart Item"},"product_id":{"type":"string","example":"pjx9fznp6ma5acpcr8dg3bg9crz","description":"Unique identifier for this Product."},"product_name":{"type":"string","example":"Super cool product","description":"Display name for product."},"merchant_sku":{"type":"string","example":"SUPER-PRODUCT-123","description":"Unique SKU identifier for the product."},"unit_retail_price":{"type":"number","format":"double","example":350.0,"description":"Unit retail price for the item including any typically embedded taxes and fees."},"unit_sale_price":{"type":"number","format":"double","example":350.0,"description":"Unit price the item should be sold for including any discount or typically embedded taxes and fees."},"total_payment_to_buy_out":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they buy out the item."},"total_payment_to_trade_in":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they can trade in the item."},"unit_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make per unit item."},"installment_service_fee":{"type":"number","format":"float","example":9.95,"description":"Fee customer must pay along with the unit_installment_payment. Used only on some programs."},"total_installment_service_fee":{"type":"number","format":"float","example":9.95,"description":"Sum of the installment_service_fee over the term of the loan. Used only on some programs."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3 character currency code."},"installment_count":{"type":"integer","format":"int32","example":36,"description":"Count of installments (aka payments) for this line item."},"cart_max_quantity":{"type":"integer","format":"int32","example":1,"description":"Maximum number of these items allowed in the cart at once. Null indicates no limit."},"available":{"type":"boolean","example":false,"description":"Indicates if the product is available for purchase."},"inventory_message":{"type":"string","example":"Available Now","description":"The message that is displayed on detail page next to the product. For example: “Ships today”, “Ships in 3 weeks” or “Low availability”."},"inventory_help_message":{"type":"string","example":"Available Now","description":"The message that is displayed to a customer when they hover over the availability help icon on product detail page.  For example “Available on mm/dd/yyyy”."},"contract_type":{"type":"string","enum":["FINANCING","RENT","SERVICE","SERVICE_SUBSCRIPTION"],"example":"RENT","description":"RENT - Rental item purchased with the opportunity to upgrade.\\\n                      FINANCE - Item financed with no opportunity to upgrade. \\\n                      SERVICE - Service associated with an item."},"discontinued":{"type":"boolean","example":false,"description":"true - indicates the product is no longer available for purchase in the program.\\\n                      false - indicates the product is available for purchase in the program."},"residual_value_category":{"type":"string","example":"iPhone 16","description":"The residual value category for the product, typically \"{model} {processor}\". Used to calculate product residual values in some programs. Accepted values are program dependent - LiftForward maintains the list for your program. A product sent with an unrecognised category is still accepted, but carries no residual value and is hidden from the storefront until the category is added."},"residual_value":{"type":"string","description":"The total residual value for this line item (unit residual value * quantity)."},"total_over_term":{"type":"string","description":"The total amount paid over the term of the contract for this line item."},"sales_tax_rates":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_SalesTaxRateEntity"},"description":"Intended for display purposes only. An array of taxes applicable to this product."},"linked_service_item_ids":{"type":"array","items":{"type":"string"},"example":["edhfcwj58yrys4bdzyn68mbjzcb"],"description":"Cart Item IDs of services linked to this Cart Item"},"linked_cart_item_ids":{"type":"array","items":{"type":"string"},"example":["3zgsvyp57amg3txwsjrff6sew77"],"description":"Cart Item IDs of products linked to this service Cart Item"},"subscription_plan":{"$ref":"#/definitions/MerchantApi_Entities_SubscriptionPlanEntity"}},"required":["cart_item_id","product_id","product_name","merchant_sku","unit_retail_price","unit_sale_price","total_payment_to_buy_out","total_payment_to_trade_in","unit_installment_payment","installment_service_fee","total_installment_service_fee","currency","installment_count","available","contract_type","discontinued","residual_value","total_over_term","sales_tax_rates","linked_service_item_ids","linked_cart_item_ids"]},"MerchantApi_Entities_SubscriptionPlanEntity":{"type":"object","properties":{"subscription_plan_id":{"type":"string","example":"standard-plan-30","description":"The unique id for this plan."},"program_code":{"type":"string","example":"subscription-us","description":"The program code for the subscription plan."},"plan_code":{"type":"string","example":"standard","description":"A short string that identifies the type of plan independent of the installment_count."},"plan_name":{"type":"string","example":"Standard Plan","description":"A displayable name for this plan."},"plan_subtitle":{"type":"string","example":"This is the basic plan.","description":"Promotional copy to display for this plan."},"plan_summary":{"type":"string","example":"Total financed amount when you upgrade is $2,090 and includes 25 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.","description":"Longer summary description on the plan and it's benefits"},"financing_plan_type":{"type":"string","enum":["financing","upgrade"],"example":"financing","description":"The type of financing plan for this product."}},"required":["subscription_plan_id","program_code","plan_code","plan_name","plan_subtitle","plan_summary","financing_plan_type"]},"ApiErrorResponse":{"type":"object","properties":{"request_id":{"type":"string","example":"dc91d388-eb87-4583-8fac-0534619d2a5c","description":"Unique identifier for request. Useful for debugging."},"errors":{"type":"array","items":{"$ref":"#/definitions/ApiError"},"description":"Array of api errors."}},"required":["request_id","errors"],"description":"ApiErrorResponse model"},"ApiError":{"type":"object","properties":{"source":{"type":"object","properties":{"pointer":{"type":"string","example":"/data/application/first_name","description":"JSON path of the invalid parameter."}},"required":["pointer"]},"title":{"type":"string","example":"is missing","description":"Short title of the error."},"detail":{"type":"string","example":"merchant_customer[merchant_customer_id] is missing","description":"Text description of the api error."}},"required":["detail"]},"MerchantApi_Entities_CartCheckoutEntity":{"type":"object","properties":{"merchant_order_id":{"type":"string","example":"ycwknppqp8m5e2v7b98ethksr7q","description":"Unique identifier used by merchant the order that will be created for this cart."}},"required":["merchant_order_id"]},"postCartsCartIdCheckout":{"type":"object","properties":{"cart":{"$ref":"#/definitions/MerchantApi_Entities_CartCheckoutEntity","type":"object","properties":{"merchant_order_id":{"type":"string"}},"required":["merchant_order_id"]}},"required":["cart"],"description":"Cart Checkout"},"MerchantApi_Entities_DropShipPurchaseOrderIndexResponse":{"type":"object","properties":{"drop_ship_purchase_orders":{"type":"array","items":{"$ref":"#/definitions/DropShipPurchaseOrder"}},"meta":{"$ref":"#/definitions/MetaEntity"}},"description":"MerchantApi_Entities_DropShipPurchaseOrderIndexResponse model"},"DropShipPurchaseOrder":{"type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string","example":"4gzny7pdj87mkvbkhc3gq74pjwh","description":"LiftForward's drop ship purchase order Id"},"merchant_drop_ship_purchase_order_id":{"type":"string","example":"LFOR12345ABDF","description":"Merchant's drop ship purchase order Id which is customer displayable"},"merchant_drop_ship_purchase_order_record_id":{"type":"string","example":"12345A","description":"Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`"},"merchant_customer_id":{"type":"string","example":"esn2zdqgt8v2b4gbdt84dmd88km","description":"Unique identifier for customer, provided by the Merchant on create merchant customer api"},"program_code":{"type":"string","example":"program-abc","description":"String provided by LiftForward to identify the Device as a Service Program."},"source_channel_id":{"type":"string","enum":["IN_STORE","ONLINE_IN_STORE","ONLINE_SHIP_TO_HOME"],"default":"ONLINE_SHIP_TO_HOME","example":"ONLINE_SHIP_TO_HOME","description":"String identifying the sales channel the order originated from. ONLINE_SHIP_TO_HOME for typical ecommerce, ONLINE_IN_STORE for click and collect, IN_STORE for point of sale."},"created_at":{"type":"string","format":"date-time","example":"2022-10-08T20:30:59Z","description":"iso8601 Date and Time (UTC) the purchase order was created"},"status":{"type":"string","enum":["NEW","PENDING","PLACEMENT_PENDING","PLACED","CANCEL_REQUESTED","CANCELLATION_PENDING","CANCELLED","ACTIVATION_PENDING","ACTIVE","RETURN_PENDING","RETURNED"],"example":"ACTIVE","description":"Status of the drop ship purchase order"},"phone_number":{"type":"string","example":"+18403240590","description":"Phone number of the customer including the country code prefix"},"email":{"type":"string","example":"elliot.alderson@gmail.com","description":"Email address of the customer"},"merchant_marketing_opt_in":{"type":"boolean","example":true,"description":"Indicates if the customer has opted in to receive marketing communications from the merchant"},"sales_associate_email":{"type":"string","example":"darlene.alderson@gmail.com","description":"Email address of sales associate associated with the drop ship purchase order"},"location_id":{"type":"string","example":"a8d886nrfq2jpb8g4r55yfbc4qz","description":"LiftForward's Id for the location associated with the drop ship purchase order"},"merchant_location_id":{"type":"string","example":"Store 1234","description":"Merchant's Id for the location associated with the drop ship purchase order"},"lender_order_id":{"type":"string","example":"98d44cb9-cb3a-467d-bea0-4a791ca4fe18","description":"ID assigned by the program lender for this order."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3 character currency code."},"order_shipping_fees":{"type":"number","format":"float","example":9.99,"description":"A flat shipping fee for the entire drop ship purchase order"},"total_price":{"type":"number","format":"float","example":1200.0,"description":"Total price (including taxes and fees) the customer will pay for the drop ship purchase order"},"fulfillable":{"type":"boolean","example":false,"description":"Indicates if any items in the drop ship purchase order can be fulfilled"},"cancelable":{"type":"boolean","example":false,"description":"Indicates if any items in the drop ship purchase order can be canceled"},"returnable":{"type":"boolean","example":true,"description":"Indicates if any items in the drop ship purchase order can be returned"},"billing_address":{"$ref":"#/definitions/MerchantApi_Entities_OrderAddress"},"shipping_address":{"$ref":"#/definitions/MerchantApi_Entities_OrderAddress"},"items":{"type":"array","items":{"$ref":"#/definitions/DropShipPurchaseOrderItem"},"description":"All items in the order are required"},"merchant_metadata":{"type":"object","description":"Arbitrary JSON Hash passed from the merchant"}},"required":["merchant_customer_id","program_code","created_at","status","merchant_marketing_opt_in","currency","total_price","fulfillable","cancelable","returnable","shipping_address","items"]},"MerchantApi_Entities_OrderAddress":{"type":"object","properties":{"address_line_1":{"type":"string","example":"217 East Broadway","description":"Street address"},"address_line_2":{"type":"string","example":"Apt. 4E","description":"Apt, Floor, Suite etc.. "},"city":{"type":"string","example":"New York","description":"Address city."},"state_code":{"type":"string","example":"NY","description":"2 letter US state code abbreviation."},"postal_code":{"type":"string","example":"10002","description":"Address zip code. Format NNNNN, NNNNNNNNN or NNNNN-NNNN in the US."},"country_code":{"type":"string","example":"US","description":"2 letter ISO-3166-1 country code."},"first_name":{"type":"string","example":"Elliot","description":"First name of customer."},"last_name":{"type":"string","example":"Alderson","description":"Last name of customer."}},"required":["address_line_1","city","state_code","postal_code","country_code","first_name","last_name"]},"DropShipPurchaseOrderItem":{"type":"object","properties":{"drop_ship_purchase_order_item_id":{"type":"string","example":"4tvpjc5qdahjw2yyfmhg7x9qpaj","description":"LiftForward id for the drop ship purchase order item"},"sku":{"type":"string","example":"MP12345","description":"Merchant's SKU for the product associated with the drop ship purchase order item"},"product_id":{"type":"string","example":"hdb8vdctyb6f6zfvtktbacgxwtc","description":"LiftForward id for the product associated with the drop ship purchase order item"},"product_name":{"type":"string","example":"Pineapple Phone 14 Pro 256GB","description":"Display name for product. Provided by the merchant in the product catalog import"},"quantity":{"type":"integer","format":"int32","example":1,"description":"Currently always 1 but here for future use"},"serial_number":{"type":"string","example":"SN1234","description":"Serial number for the item if provided by the merchant"},"carrier":{"type":"string","example":"UPS","description":"Shipping carrier for the tracking number if provided by merchant"},"tracking_number":{"type":"string","example":"920482948394","description":"Shipping carrier's tracking number if provided by merchant"},"status":{"type":"string","enum":["new","pending","placement_pending","placed","cancel_requested","cancellation_pending","cancelled","activation_pending","active","return_pending","returned"],"example":"active","description":"Status of the item's fulfillment"},"fulfillable":{"type":"boolean","example":false,"description":"Indicates of this item can be fulfilled"},"cancelable":{"type":"boolean","example":false,"description":"Indicates of this item can be canceled"},"returnable":{"type":"boolean","example":true,"description":"Indicates of this item can be returned"},"created_at":{"type":"string","format":"date-time","example":"2022-10-08T20:30:59Z"},"fulfilled_at":{"type":"string","format":"date-time","example":"2022-10-08T20:30:59Z"},"unit_sale_price":{"type":"number","format":"float","example":299.99,"description":"Unit price the item was sold for"},"unit_shipping_fee":{"type":"number","format":"float","example":5.49,"description":"Shipping fee for the item"},"unit_sales_tax":{"type":"number","format":"float","example":3.69,"description":"Sales tax charged on the item"},"unit_environmental_fees":{"type":"number","format":"float","example":4.79,"description":"Environment fee charged on the item"},"unit_misc_fees":{"type":"number","format":"float","example":2.59,"description":"Miscellaneous fees charged on the item"},"unit_total_price":{"type":"number","format":"float","example":316.55,"description":"Total unit price for the item including any taxes and fees."},"merchant_order_item_id":{"type":"string","example":"ITEM-123","description":"Merchant-provided ID for this order item"},"parent_merchant_order_item_id":{"type":"string","example":"DEVICE-123","description":"Merchant order item ID of the item that this item is linked to (e.g., indicates which item a service item is linked to)"},"parent_drop_ship_purchase_order_item_id":{"type":"string","example":"6rfgss88acw3b74zccf68b9fh95","description":"LiftForward ID of the drop ship purchase order item that this item is linked to (e.g., indicates which item a service item is linked to)"},"lender_order_item_id":{"type":"string","example":"831c3a0b-3f19-4b42-955a-3574a49cc899","description":"ID assigned by the program lender for this item."},"subscription_plan":{"$ref":"#/definitions/MerchantApi_Entities_SubscriptionPlanEntity","description":"Subscription plan associated with this item."}},"required":["drop_ship_purchase_order_item_id","sku","product_id","product_name","fulfillable","cancelable","returnable","created_at","fulfilled_at"]},"MetaEntity":{"type":"object","properties":{"page":{"type":"integer","format":"int32","example":1,"description":"Current page of results."},"per_page":{"type":"integer","format":"int32","example":25,"description":"Results per page."},"total_pages":{"type":"integer","format":"int32","example":10,"description":"Total number of pages in complete result set."},"total_records":{"type":"integer","format":"int32","example":250,"description":"Total number of records in the complete result set."}}},"MerchantApi_Entities_DropShipPurchaseOrderResponse":{"type":"object","properties":{"drop_ship_purchase_order":{"$ref":"#/definitions/DropShipPurchaseOrder"}},"description":"MerchantApi_Entities_DropShipPurchaseOrderResponse model"},"DropShipPurchaseOrderAccept":{"type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string","example":"4gzny7pdj87mkvbkhc3gq74pjwh","description":"LiftForward's drop ship purchase order Id"},"merchant_drop_ship_purchase_order_id":{"type":"string","example":"LFOR12345ABDF","description":"Merchant's drop ship purchase order Id which is customer displayable"},"merchant_drop_ship_purchase_order_record_id":{"type":"string","example":"12345A","description":"Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`"}}},"postDropShipPurchaseOrdersAccept":{"type":"object","properties":{"drop_ship_purchase_order_accept":{"$ref":"#/definitions/DropShipPurchaseOrderAccept","type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_id":{"type":"string"}}}},"required":["drop_ship_purchase_order_accept"],"description":"Accept a DropShipPurchaseOrder (async)"},"ApiAsyncResponse":{"type":"object","properties":{"request_id":{"type":"string","example":"f5235379-5b36-4623-b3e5-9e7ed8ec77b3","description":"LiftForward's unique ID for a single API request"},"code":{"type":"string","example":"200","description":"HTTP response status code"},"status":{"type":"string","example":"successful","description":"A value of 'success' is returned when status code in the\n200 range. This action has been successfully completed or\nqueued for processing and should be considered successful.\n"},"message":{"type":"string","example":"The request has been queued and is considered successful.","description":"Additional information about the status of the API request."},"request_url":{"type":"string","example":"/orders/123456","description":"The API endpoint that was called."},"request_parameters":{"type":"object","example":"{\n  \"merchant_drop_ship_purchase_order_id\": \"12345232049280948209348236\"\n}\n","description":"Parameters submitted by the API call for confirmation."}},"required":["request_id","code","status"],"description":"ApiAsyncResponse model"},"DropShipPurchaseOrderCancel":{"type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string","example":"4gzny7pdj87mkvbkhc3gq74pjwh","description":"LiftForward's drop ship purchase order Id"},"merchant_drop_ship_purchase_order_id":{"type":"string","example":"LFOR12345ABDF","description":"Merchant's drop ship purchase order Id which is customer displayable"},"merchant_drop_ship_purchase_order_record_id":{"type":"string","example":"12345A","description":"Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`"},"canceled_at":{"type":"string","format":"date-time","example":"2022-10-08T10:22:55.340Z","description":"ISO 8601 timestamp when the order was canceled by the merchant (not related to when the API call was made)"},"items":{"type":"array","items":{"$ref":"#/definitions/DropShipPurchaseOrderReturnItem"},"description":"Items to cancel may be specified by SKU"}},"required":["canceled_at"]},"DropShipPurchaseOrderReturnItem":{"type":"object","properties":{"sku":{"type":"string","example":"MP-12345","description":"Merchant's product SKU"},"serial_number":{"type":"string","example":"SN1234","description":"Serial number of the device"}},"required":["sku"]},"postDropShipPurchaseOrdersCancel":{"type":"object","properties":{"drop_ship_purchase_order_cancel":{"$ref":"#/definitions/DropShipPurchaseOrderCancel","type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_record_id":{"type":"string"},"canceled_at":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"sku":{"type":"string"}},"required":["sku"]}}},"required":["canceled_at"]}},"required":["drop_ship_purchase_order_cancel"],"description":"Cancel a DropShipPurchaseOrder (async)"},"DropShipPurchaseOrderFulfill":{"type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string","example":"4gzny7pdj87mkvbkhc3gq74pjwh","description":"LiftForward's drop ship purchase order Id"},"merchant_drop_ship_purchase_order_id":{"type":"string","example":"LFOR12345ABDF","description":"Merchant's drop ship purchase order Id which is customer displayable"},"merchant_drop_ship_purchase_order_record_id":{"type":"string","example":"12345A","description":"Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`"},"fulfilled_at":{"type":"string","format":"date-time","example":"2022-10-08T10:22:55.340Z","description":"Date and time the order was fulfilled by the merchant (not related to when the API call was made)"},"items":{"type":"array","items":{"$ref":"#/definitions/DropShipPurchaseOrderFulfillItem"},"description":"All items in the order are required"}},"required":["fulfilled_at","items"]},"DropShipPurchaseOrderFulfillItem":{"type":"object","properties":{"sku":{"type":"string","example":"MP-12345","description":"Merchant's product SKU"},"quantity":{"type":"integer","format":"int32","example":1,"description":"Always 1 for Apple programs"},"serial_number":{"type":"string","example":"SN1234","description":"Serial number of the device"},"carrier":{"type":"string","example":"UPS","description":"Shipping carrier"},"tracking_number":{"type":"string","example":"920482948394","description":"Shipping carrier's tracking number"}},"required":["sku","quantity"]},"postDropShipPurchaseOrdersFulfill":{"type":"object","properties":{"drop_ship_purchase_order_fulfill":{"$ref":"#/definitions/DropShipPurchaseOrderFulfill","type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_record_id":{"type":"string"},"fulfilled_at":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"sku":{"type":"string"},"quantity":{"type":"integer","format":"int32","default":1},"serial_number":{"type":"string"},"carrier":{"type":"string"},"tracking_number":{"type":"string"}},"required":["sku"]}}},"required":["fulfilled_at","items"]}},"required":["drop_ship_purchase_order_fulfill"],"description":"Fulfill a DropShipPurchaseOrder (async)"},"DropShipPurchaseOrderReturn":{"type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string","example":"4gzny7pdj87mkvbkhc3gq74pjwh","description":"LiftForward's drop ship purchase order Id"},"merchant_drop_ship_purchase_order_id":{"type":"string","example":"LFOR12345ABDF","description":"Merchant's drop ship purchase order Id which is customer displayable"},"merchant_drop_ship_purchase_order_record_id":{"type":"string","example":"12345A","description":"Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`"},"returned_at":{"type":"string","format":"date-time","example":"2022-10-08T10:22:55Z","description":"ISO 8601 timestamp when the order was returned by the merchant (not related to when the API call was made)"},"items":{"type":"array","items":{"$ref":"#/definitions/DropShipPurchaseOrderReturnItem"},"description":"Items to return may be specified by SKU"}},"required":["returned_at"]},"postDropShipPurchaseOrdersReturn":{"type":"object","properties":{"drop_ship_purchase_order_return":{"$ref":"#/definitions/DropShipPurchaseOrderReturn","type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_record_id":{"type":"string"},"returned_at":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"sku":{"type":"string"}},"required":["sku"]}}},"required":["returned_at"]}},"required":["drop_ship_purchase_order_return"],"description":"Return a DropShipPurchaseOrder (async)"},"DropShipPurchaseOrderUpdate":{"type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string","example":"4gzny7pdj87mkvbkhc3gq74pjwh","description":"LiftForward's drop ship purchase order Id"},"merchant_drop_ship_purchase_order_id":{"type":"string","example":"LFOR12345ABDF","description":"Merchant's drop ship purchase order Id which is customer displayable"},"merchant_drop_ship_purchase_order_record_id":{"type":"string","example":"12345A","description":"Merchant's record Id which can be different than the customer displayable `merchant_drop_ship_purchase_order_id`"},"items":{"type":"array","items":{"$ref":"#/definitions/DropShipPurchaseOrderUpdateItemEntity"},"description":"All items in the order are required"}},"required":["items"]},"DropShipPurchaseOrderUpdateItemEntity":{"type":"object","properties":{"sku":{"type":"string","example":"MP-12345","description":"Merchant's product SKU"},"current_serial_number":{"type":"string","example":"SN1234","description":"Current serial number of the device"},"new_serial_number":{"type":"string","example":"SN4321","description":"New serial number of the device"}},"required":["sku"]},"postDropShipPurchaseOrdersUpdate":{"type":"object","properties":{"drop_ship_purchase_order_update":{"$ref":"#/definitions/DropShipPurchaseOrderUpdate","type":"object","properties":{"drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_id":{"type":"string"},"merchant_drop_ship_purchase_order_record_id":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"sku":{"type":"string"},"quantity":{"type":"integer","format":"int32","default":1},"current_serial_number":{"type":"string"},"new_serial_number":{"type":"string"},"new_carrier":{"type":"string"},"new_tracking_number":{"type":"string"}},"required":["sku","current_serial_number"]}}},"required":["items"]}},"required":["drop_ship_purchase_order_update"],"description":"Update a DropShipPurchaseOrder (async)"},"MerchantApi_Entities_MerchantCustomerCreate":{"type":"object","properties":{"merchant_customer_id":{"type":"string","example":"hghx6kz7rryhbn86apzn77gpvwj","description":"Unique identifier for customer. Provided by the Merchant on create."}},"required":["merchant_customer_id"]},"postMerchantCustomers":{"type":"object","properties":{"merchant_customer":{"$ref":"#/definitions/MerchantApi_Entities_MerchantCustomerCreate","type":"object","properties":{"merchant_customer_id":{"type":"string"}},"required":["merchant_customer_id"]}},"required":["merchant_customer"],"description":"Create or Show MerchantCustomer"},"MerchantApi_Entities_MerchantCustomerResponse":{"type":"object","properties":{"merchant_customer":{"$ref":"#/definitions/MerchantApi_Entities_MerchantCustomerEntity"}},"description":"MerchantApi_Entities_MerchantCustomerResponse model"},"MerchantApi_Entities_MerchantCustomerEntity":{"type":"object","properties":{"merchant_customer_id":{"type":"string","example":"hghx6kz7rryhbn86apzn77gpvwj","description":"Unique identifier for customer. Provided by the Merchant on create."},"program_enrollments":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_ProgramEnrollmentEntity"}},"assets":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_AssetIdEntity"}}},"required":["merchant_customer_id"]},"MerchantApi_Entities_ProgramEnrollmentEntity":{"type":"object","properties":{"program_code":{"type":"string","example":"program-abc","description":"String provided by LiftForward to identify the Device as a Service Program."},"approval":{"$ref":"#/definitions/MerchantApi_Entities_ApprovalEntity"}},"required":["program_code"]},"MerchantApi_Entities_ApprovalEntity":{"type":"object","properties":{"approval_token":{"type":"string","example":"f25368b5-5113-47bf-b981-403cac530174","description":"Token which is used to create Orders and PaymentMethods."},"expires_at":{"type":"string","example":"2026-11-03T22:18:18Z","description":"When this approval will expire, in iso8601 format."},"status":{"type":"string","example":"active","description":"The status of the approval. Possible values: [active, used, canceled, expired]."},"credit_amount":{"type":"number","format":"float","example":299.99,"description":"The amount of credit that has been approved."},"currency":{"type":"string","example":"USD","description":"The currency for credit_amount."},"order_id":{"type":"string","example":"625xsge29by5gs9x4tssnjc26vm","description":"Associated order id."},"payment_method_id":{"type":"string","example":"wv952bf72s7v65fc4crjm7fdsdr","description":"Associated payment method id."},"session_id":{"type":"string","example":"29bcf737-9e49-4273-a274-c37b4d4ca767","description":"Associated Session id"},"cart_id":{"type":"string","example":"rrgeeemqeajr79erevq538ewxgw","description":"Associated cart id"},"offers":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_OfferEntity"},"description":"Array of Offers."}},"required":["approval_token","expires_at"]},"MerchantApi_Entities_OfferEntity":{"type":"object","properties":{"offer_id":{"type":"string","example":"9y7jqqtaqv56yjhwjspfdqrxxey","description":"Unique id for offer."},"credit_amount":{"type":"number","format":"float","example":2500.0,"description":"The credit limit for this offer."},"currency":{"type":"string","example":"USD","description":"ISO 4217 3 character currency code."},"apr":{"type":"number","format":"float","example":0.0999,"description":"Annual Percentage Rate, expressed as a decimal, for this offer."},"installment_count":{"type":"integer","format":"int32","example":36,"description":"Count of installments (aka payments) for this offer."}}},"MerchantApi_Entities_AssetIdEntity":{"type":"object","properties":{"asset_id":{"type":"string","example":"qsf7e6jmnqmgsmngzej9emvf2dv","description":"Unique identifier for this asset."}}},"postMerchantCustomersMerchantCustomerIdSession":{"type":"object","properties":{"session":{"type":"object","properties":{"program_code":{"type":"string","description":"String provided by LiftForward to identify the Device as a Service Program.","example":"program-abc"},"merchant_approval_url":{"type":"string","description":"URL on the merchant site the customer is redirected to after a customer's application is approved.","example":"https://www.merchant.com/approved"},"merchant_decline_url":{"type":"string","description":"URL on the merchant site the customer is redirected to after a customer's application is declined.","example":"https://www.merchant.com/declined"},"merchant_cancel_url":{"type":"string","description":"URL on the merchant site the customer is redirected to after a customer cancels their application.","example":"https://www.merchant.com/canceled"},"merchant_pending_url":{"type":"string","description":"URL on the merchant site the customer is redirected to when a customer's application is pending.","example":"https://www.merchant.com/pending"},"language":{"type":"string","description":"Preferred language for the customer experience.","example":"en"},"payment":{"type":"object","description":"The first installment the merchant took at its own checkout. Required by programs that collect later installments through the payment processor.","properties":{"processor":{"type":"string","description":"The payment processor that handled the first installment.","example":"2c2p"},"token":{"type":"string","description":"The merchant's reference for the first installment payment, such as the Shopify payment ID.","example":"8429234238.1"},"first_installment_captured":{"type":"boolean","description":"Whether the merchant has captured the first installment."}}},"tracking_consents":{"type":"object","description":"Tracking consent preferences provided at session creation.","properties":{"strictly_necessary":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether strictly necessary tracking is granted."},"required":{"type":"boolean","description":"Whether strictly necessary tracking is required."}},"required":["granted"]},"functional":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether functional tracking is granted."},"required":{"type":"boolean","description":"Whether functional tracking is required."}},"required":["granted"]},"performance_analytics":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether performance and analytics tracking is granted."},"required":{"type":"boolean","description":"Whether performance and analytics tracking is required."}},"required":["granted"]},"marketing_targeting":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether marketing and targeting tracking is granted."},"required":{"type":"boolean","description":"Whether marketing and targeting tracking is required."}},"required":["granted"]}},"required":["strictly_necessary","functional","performance_analytics","marketing_targeting"]},"simulate_outcome":{"type":"string","description":"One of [approved, checkout] to simulate a specific session outcome. For testing purposes only.","enum":["approved","checkout"],"default":null,"example":"checkout"},"customer":{"type":"object","description":"Pre-fill customer details for the session.","properties":{"personal_details":{"type":"object","description":"Personal details of the customer.","properties":{"first_name":{"type":"string","description":"First name of the customer.","example":"Elliot"},"middle_name":{"type":"string","description":"Middle name of the customer.","example":"Lee"},"last_name":{"type":"string","description":"Last name of the customer.","example":"Alderson"},"email":{"type":"string","description":"Email address of the customer.","example":"elliot.alderson@gmail.com"},"mobile_phone_number":{"type":"string","description":"Mobile phone number of the customer. Format: NNNNNNNNNN.","example":"8403240590"},"home_phone_number":{"type":"string","description":"Home phone number of customer. Format: NNNNNNNNNN. Required if mobile phone number not provided.","example":"8403240590"},"date_of_birth":{"type":"string","format":"date","description":"Date of birth of customer. Format: YYYY-MM-DD","example":"1986-09-17"},"tax_id":{"type":"string","description":"Tax id (SSN) of customer. Format: NNNNNNNNN","example":"840324059"},"annual_income":{"type":"integer","format":"int32","description":"Gross annual income of customer in local currency. Values between 0 and 9,999,999 allowed.","example":130000}}},"billing_address":{"type":"object","description":"Billing address of the customer.","properties":{"address_line_1":{"type":"string","description":"First line of the billing address.","example":"123 Main St"},"address_line_2":{"type":"string","description":"Second line of the billing address.","example":"Apt 4B"},"city":{"type":"string","description":"City of the billing address.","example":"New York"},"state_code":{"type":"string","description":"State code of the billing address. For US addresses, provide 2-letter state code.","example":"NY"},"postal_code":{"type":"string","description":"Postal code of the billing address.","example":"10001"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code of the billing address.","example":"US"}}}}},"order":{"type":"object","description":"Order details for the session.","properties":{"currency":{"type":"string","description":"ISO 4217 3-character currency code.","enum":["USD","CAD","EUR","GBP","AUD","CHF","MYR"],"example":"USD"},"plan_code":{"type":"string","description":"String provided by LiftForward to identify the Device as a Service Plan. Required if the program has multiple plans.","example":"plan-123"},"merchant_order_id":{"type":"string","description":"Unique identifier used by merchant for this order. Should be provided if possible.","example":"8429234238273948723947"},"shipping_fee":{"type":"number","format":"float","description":"A flat shipping fee for the entire order, separate from individual item shipping fees","example":15.99},"merchant":{"type":"object","description":"Merchant-specific order details.","properties":{"source_channel_id":{"type":"string","description":"Channel through which the order was placed.","enum":["IN_STORE","ONLINE_IN_STORE","ONLINE_SHIP_TO_HOME"],"default":"ONLINE_SHIP_TO_HOME","example":"ONLINE_SHIP_TO_HOME"},"store_id":{"type":"string","description":"Identifier for the merchant store.","example":"store-123"},"employee_id":{"type":"string","description":"Identifier for the merchant employee.","example":"emp-456"},"tender_type":{"type":"string","description":"Payment method used by the merchant for this order.","example":"credit_card"},"merchant_metadata":{"type":"object","description":"Arbitrary metadata for the session","example":{"custom_key_1":"custom_value_1","custom_key_2":"custom_value_2"}}}},"shipping_address":{"type":"object","description":"Shipping address for the order.","properties":{"first_name":{"type":"string","description":"First name of customer.","example":"Elliot"},"last_name":{"type":"string","description":"Last name of customer.","example":"Alderson"},"address_line_1":{"type":"string","description":"Street address","example":"217 East Broadway"},"address_line_2":{"type":"string","description":"Apt, Floor, Suite etc.. ","example":"Apt. 4E"},"city":{"type":"string","description":"Address city.","example":"New York"},"state_code":{"type":"string","description":"2 letter US state code abbreviation.","example":"NY"},"postal_code":{"type":"string","description":"Address zip code. Format NNNNN, NNNNNNNNN or NNNNN-NNNN in the US.","example":"10002"},"country_code":{"type":"string","description":"2 letter ISO-3166-1 country code.","example":"US"}},"required":["address_line_1","city","postal_code","country_code"]},"merchant_items":{"type":"array","description":"Array of items in the order.","items":{"type":"object","properties":{"sku":{"type":"string","description":"Merchant stock-keeping unit identifier for the item.","example":"SKU-001"},"description":{"type":"string","description":"Description of the item.","example":"Laptop 15-inch display, 16GB RAM"},"image_url":{"type":"string","description":"URL for an image of the item.","example":"https://www.merchant.com/images/laptop.png"},"unit_sale_price":{"type":"number","format":"float","description":"Sale price per unit of the item.","example":999.99},"unit_retail_price":{"type":"number","format":"float","description":"Regular retail price per unit before any discounts.","example":1199.99},"quantity":{"type":"integer","format":"int32","description":"Quantity of the item ordered.","default":1,"example":1},"merchant_order_item_id":{"type":"string","description":"Merchant-provided identifier for this order item.","example":"order_item_123"},"parent_merchant_order_item_id":{"type":"string","description":"Merchant-provided identifier for another order item this item belongs to. Typically used to link insurance products to their devices.","example":"order_item_100"},"unit_total_price":{"type":"number","format":"float","description":"Total price per unit including all fees and taxes.","example":1049.99},"unit_balloon_payment":{"type":"number","format":"float","description":"Balloon payment amount per unit due at end of term.","default":0.0,"example":0.0},"shipping_fee":{"type":"number","format":"float","description":"Shipping fee for this individual item.","example":5.99},"subscription_plan_id":{"type":"string","description":"Identifier for the subscription plan associated with this item.","example":"plan-abc-24"},"service_term_length":{"type":"integer","format":"int32","description":"Length of the service term in months.","example":24},"sales_tax_rates":{"type":"array","description":"Breakdown of sales tax rates for this line item.","items":{"type":"object","properties":{"sales_tax_rate_code":{"type":"string","description":"Tax rate code identifying the type of tax levy.","enum":["VAT","GST","HST","PST","QST"]},"rate":{"type":"number","format":"float","description":"Tax rate as a decimal (e.g. 0.08 for 8%).","example":0.08},"amount":{"type":"number","format":"float","description":"Tax amount applied at this rate.","example":8.0}},"required":["sales_tax_rate_code","rate","amount"]}}},"required":["sku"]}}}}},"required":["program_code","merchant_approval_url","merchant_decline_url","merchant_cancel_url"]}},"required":["session"],"description":"Create MerchantCustomer Session"},"MerchantApi_Entities_SessionResponse":{"type":"object","properties":{"session":{"$ref":"#/definitions/MerchantApi_Entities_SessionResponseEntity"}},"required":["session"],"description":"MerchantApi_Entities_SessionResponse model"},"MerchantApi_Entities_SessionResponseEntity":{"type":"object","properties":{"session_id":{"type":"string","example":"sya4d2nxskft426dky45tm3rpqv","description":"Unique identifer for this Session."},"status":{"type":"string","example":"applying","description":"Current status of the session (e.g., applying, checking_out, etc.)"},"reservation_status":{"type":"string","example":"waiting","description":"Current reservation status of the session (e.g., waiting, active, expired, etc.)"},"credit_application_url":{"type":"string","example":"https://www.liftforward.com/en-us/program-abc/credit_application/zpdjy9m2rnbnx2fxwsvy42taxe5","description":"URL for the LiftForward hosted credit application."},"account_url":{"type":"string","example":"https://www.liftforward.com/en-us/program-abc/account?accesToken=rqf3kn8kyf2xkp9bzrqv74jp3y2","description":"URL for the hosted customer account page."},"cart_url":{"type":"string","example":"https://www.liftforward.com/en-us/program-abc/cart?accesToken=q3dmszst3vj7fkg4wqtsnvqtb8m","description":"URL for the hosted customer cart page."},"cart_id":{"type":"string","example":"7kkxeev5kvdvpvrctac8d4k227h","description":"ID of the cart associated with the session."},"merchant_customer_id":{"type":"string","example":"kxb8mvwqadrncwk8ws57rtcsrkc","description":"Unique identifier for customer. Provided by the Merchant on create."},"program_code":{"type":"string","example":"program-abc","description":"String provided by LiftForward to identify the Device as a Service Program."},"language":{"type":"string","example":"en","description":"Preferred language for the customer experience."},"merchant_approval_url":{"type":"string","example":"https://www.merchant.com/approved","description":"URL on the merchant site the customer is redirected to after a customer's application is approved."},"merchant_decline_url":{"type":"string","example":"https://www.merchant.com/declined","description":"URL on the merchant site the customer is redirected to after a customer's application is declined."},"merchant_cancel_url":{"type":"string","example":"https://www.merchant.com/canceled","description":"URL on the merchant site the customer is redirected to after a customer's cancels their application."},"merchant_pending_url":{"type":"string","example":"https://www.merchant.com/pending","description":"URL on the merchant site the customer is redirected to when a customer's application is pending."},"tracking_consents":{"$ref":"#/definitions/MerchantApi_Entities_TrackingConsentEntity","description":"Tracking consent preferences provided at session creation."},"order":{"$ref":"#/definitions/MerchantApi_Entities_SessionOrder"}},"required":["merchant_customer_id","program_code","merchant_approval_url","merchant_decline_url","order"]},"MerchantApi_Entities_TrackingConsentEntity":{"type":"object","properties":{"strictly_necessary":{"$ref":"#/definitions/MerchantApi_Entities_TrackingConsentEntity_ConsentEntity","description":"Consent for strictly necessary tracking as defined by GDPR."},"functional":{"$ref":"#/definitions/MerchantApi_Entities_TrackingConsentEntity_ConsentEntity","description":"Consent for functional tracking as defined by GDPR."},"performance_analytics":{"$ref":"#/definitions/MerchantApi_Entities_TrackingConsentEntity_ConsentEntity","description":"Consent for performance and analytics tracking as defined by GDPR."},"marketing_targeting":{"$ref":"#/definitions/MerchantApi_Entities_TrackingConsentEntity_ConsentEntity","description":"Consent for marketing and targeting tracking as defined by GDPR."}}},"MerchantApi_Entities_TrackingConsentEntity_ConsentEntity":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether consent has been granted."},"required":{"type":"boolean","description":"Whether consent is required."}},"required":["granted"]},"MerchantApi_Entities_SessionOrder":{"type":"object","properties":{"merchant":{"$ref":"#/definitions/MerchantApi_Entities_MerchantEntity"},"merchant_order_id":{"type":"string","example":"8429234238273948723947","description":"Unique identifier used by merchant for this order. Should be provided if possible."},"plan_code":{"type":"string","default":"program-abc-24","example":"program-abc-24","description":"String provided by LiftForward to identify the Device as a Service Plan."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3 character currency code."},"shipping_fee":{"type":"number","format":"float","example":15.99,"description":"A flat shipping fee for the entire order, separate from individual item shipping fees"},"shipping_address":{"$ref":"#/definitions/MerchantApi_Entities_OrderAddress"},"merchant_items":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_SessionOrderItemEntity"},"description":"Array of OrderItems describing the merchant items in this order."}},"required":["merchant_items"]},"MerchantApi_Entities_SessionOrderItemEntity":{"type":"object","properties":{"sku":{"type":"string","example":"30-X9383-94","description":"Merchant defined SKU for this item."},"description":{"type":"string","example":"Product 123","description":"Short description or title of the product."},"merchant_order_item_id":{"type":"string","example":"order_item_123","description":"Merchant provided identifier for this OrderItem."},"quantity":{"type":"integer","format":"int32","default":1,"example":1,"description":"Quantity of items purchased. Only available for some programs. Typically must be 1."},"unit_retail_price":{"type":"number","format":"float","example":299.99,"description":"Unit retail price for the item before any discount. Defaults to unit_sale_price."},"unit_sale_price":{"type":"number","format":"float","example":299.99,"description":"Unit price the item was sold for including any discount."},"unit_balloon_payment":{"type":"number","format":"float","default":0.0,"example":50.0,"description":"Used with select device as a service programs. Amount of a balloon payment due at the end of upgrade period."},"unit_total_price":{"type":"number","format":"float","example":356.63,"description":"Total unit price for the item including any taxes and fees."},"shipping_fee":{"type":"number","format":"float","default":0,"example":25.39,"description":"Shipping fee for this line item."},"sales_tax":{"type":"number","format":"float","default":0,"example":26.25,"description":"Sales tax for this line item."},"sales_tax_rates":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_SalesTaxRateEntity"},"description":"Breakdown of sales tax rates for this line item. Only returned on plan_items."},"misc_fees":{"type":"number","format":"float","default":0,"example":5.0,"description":"Miscellaneous fees for this line item."},"apr":{"type":"number","format":"float","example":0.0999,"description":"Annual Percentage Rate, expressed as a decimal, for this line item."},"installment_count":{"type":"integer","format":"int32","example":36,"description":"Count of installments (aka payments) for this line item."},"unit_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make per unit item."},"unit_total_interest":{"type":"number","format":"float","example":50.0,"description":"Total interest paid per unit item assuming all installments indicated by installment_count are made."},"parent_merchant_order_item_id":{"type":"string","example":"order_item_123","description":"Merchant provided identifier for another OrderItem this order item belongs to. Typically used to link insurance products to their devices."},"image_url":{"type":"string","example":"https://placekitten.com/500/500","description":"Product image url. Should be using HTTPS always to avoid mixed content errors."},"description_list":{"type":"array","items":{"type":"string"},"example":["Product has feature 1","Product has feature 2"],"description":"Array of strings describing the product. Typically used the describe product features."}},"required":["sku"]},"ProductIndexResponse":{"type":"object","properties":{"products":{"type":"array","items":{"$ref":"#/definitions/ProductEntity"}},"meta":{"$ref":"#/definitions/MetaEntity"}},"description":"ProductIndexResponse model"},"ProductEntity":{"type":"object","properties":{"product_id":{"type":"string","example":"pjx9fznp6ma5acpcr8dg3bg9crz","description":"Unique identifier for this Product."},"product_name":{"type":"string","example":"Super cool product","description":"Display name for product."},"description":{"type":"string","example":"This is a super cool product that does many things.","description":"Multi sentence description of the product."},"description_list":{"type":"string","example":["32 GB RAM","5 TB Hard Drive","Intel i9 CPU"],"description":"Array of strings containing a list of product features."},"manufacturer":{"type":"string","example":"Apple","description":"The name of the manufacturer of the product."},"merchant_detail_page_url":{"type":"string","example":"https://www.merchant.com/product/123456","description":"The URL to the product detail page on the merchant site."},"product_image_url":{"type":"string","example":"https://www.merchant.com/product/123456/image.png","description":"The URL to the product image."},"manufacturer_part_number":{"type":"string","example":"SMP3BP334S4","description":"Manufacturer part number issued by the manufacturer. Either manufacturer_part_number or european_article_number is required when creating a product."},"merchant_sku":{"type":"string","example":"SUPER-PRODUCT-123","description":"Unique SKU identifier for the product."},"european_article_number":{"type":"string","example":"2658932154786","description":"EAN-13 identifier for the product. Either manufacturer_part_number or european_article_number is required when creating a product."},"unit_retail_price":{"type":"number","format":"double","example":350.0,"description":"Unit retail price for the item including any typically embedded taxes and fees."},"unit_sale_price":{"type":"number","format":"double","example":350.0,"description":"Unit price the item should be sold for including any discount or typically embedded taxes and fees."},"net_unit_sale_price":{"type":"number","format":"double","example":325.0,"description":"The net (excluding any taxes or fees) sale price of the product."},"residual_value":{"type":"number","format":"float","example":29.99,"description":"The amount this product is expected to be worth at then end of the term."},"total_over_term":{"type":"number","format":"float","example":29.99,"description":"The total amount the customer will pay over the term of the subscription if the customer choses to keep the item."},"total_payment_to_buy_out":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they buy out the item."},"total_payment_to_trade_in":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they can trade in the item."},"unit_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make per unit item."},"installment_service_fee":{"type":"number","format":"float","example":9.95,"description":"Fee customer must pay along with the unit_installment_payment. Used only on some programs."},"total_installment_service_fee":{"type":"number","format":"float","example":9.95,"description":"Sum of the installment_service_fee over the term of the loan. Used only on some programs."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3 character currency code."},"installment_count":{"type":"integer","format":"int32","example":36,"description":"Count of installments (aka payments) for this line item."},"cart_max_quantity":{"type":"integer","format":"int32","example":1,"description":"Maximum number of these items allowed in the cart at once. Null indicates no limit."},"inventory_type":{"type":"string","enum":["THRESHOLD","NEVER","ALWAYS","CUSTOM"],"example":"NEVER","description":"The type of inventory setting used for this product. \\\n                      THRESHOLD - Availability changes based on inventory levels. \\\n                      ALWAYS - Product is always available. \\\n                      NEVER - Product is never available."},"available":{"type":"boolean","example":false,"description":"Indicates if the product is available for purchase."},"browsable":{"type":"boolean","example":true,"description":"Indicates if the product is browsable to customers."},"inventory_message":{"type":"string","example":"Available Now","description":"The message that is displayed on detail page next to the product. For example: “Ships today”, “Ships in 3 weeks” or “Low availability”."},"inventory_help_message":{"type":"string","example":"Available Now","description":"The message that is displayed to a customer when they hover over the availability help icon on product detail page.  For example “Available on mm/dd/yyyy”."},"contract_type":{"type":"string","enum":["FINANCING","RENT","SERVICE","SERVICE_SUBSCRIPTION"],"example":"RENT","description":"RENT - Rental item purchased with the opportunity to upgrade.\\\n                      FINANCE - Item financed with no opportunity to upgrade. \\\n                      SERVICE - Service associated with an item."},"service_type":{"type":"string","enum":["DIGITAL_SERVICE","INSURANCE"],"example":"DIGITAL_SERVICE","description":"Used only when contract_type is SERVICE. Service type indicates the type of service associated with an item. \\\n                      DIGITAL_SERVICE - Digital service product associated with an item. \\\n                      INSURANCE - Insurance service associated with an item."},"discontinued":{"type":"boolean","example":false,"description":"true - indicates the product is no longer available for purchase in the program.\\\n                      false - indicates the product is available for purchase in the program."},"residual_value_category":{"type":"string","example":"iPhone 16","description":"The residual value category for the product, typically \"{model} {processor}\". Used to calculate product residual values in some programs. Accepted values are program dependent - LiftForward maintains the list for your program. A product sent with an unrecognised category is still accepted, but carries no residual value and is hidden from the storefront until the category is added."},"available_subscription_plans":{"type":"array","items":{"$ref":"#/definitions/SubscriptionPlanEntity"}},"categories":{"type":"array","items":{"$ref":"#/definitions/ProductCategoryEntity"},"description":"List of categories for the product. At least one category is required. LiftForward will provide a program specific list of values that should be used."},"cross_sells":{"type":"array","items":{"$ref":"#/definitions/ProductCrossSellEntity"},"description":"Array of cross-sell products recommended with this product. All referenced merchant_sku values must exist in the merchant's catalog. Returns 409 Conflict if any SKUs are not found."}},"required":["product_id","product_name","description","description_list","manufacturer","merchant_detail_page_url","product_image_url","merchant_sku","unit_retail_price","unit_sale_price","net_unit_sale_price","residual_value","total_over_term","total_payment_to_buy_out","total_payment_to_trade_in","unit_installment_payment","installment_service_fee","total_installment_service_fee","currency","installment_count","inventory_type","available","browsable","contract_type","discontinued"]},"SubscriptionPlanEntity":{"type":"object","properties":{"subscription_plan_id":{"type":"string","example":"standard-plan-30","description":"The unique id for this plan."},"program_code":{"type":"string","example":"subscription-us","description":"The program code for the subscription plan."},"plan_code":{"type":"string","example":"standard","description":"A short string that identifies the type of plan independent of the installment_count."},"plan_name":{"type":"string","example":"Standard Plan","description":"A displayable name for this plan."},"plan_subtitle":{"type":"string","example":"This is the basic plan.","description":"Promotional copy to display for this plan."},"plan_summary":{"type":"string","example":"Total financed amount when you upgrade is $2,090 and includes 25 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.","description":"Longer summary description on the plan and it's benefits"},"financing_plan_type":{"type":"string","enum":["financing","upgrade"],"example":"financing","description":"The type of financing plan for this product."},"installment_count":{"type":"integer","format":"int32","example":30,"description":"Count of installments (aka payments) customer must make for this item."},"installment_count_to_trade_in":{"type":"integer","format":"int32","example":24,"description":"Count of installments (aka payments) customer must make to trade in or upgrade this item."},"unit_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make for 1 item under this subscription plan."},"installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make for all items under this subscription plan. (Deprecated in favor of total_installment_payment)"},"total_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make for all items under this subscription plan. Same value as installment_payment."},"total_over_term":{"type":"number","format":"float","example":2090.0,"description":"The total amount the customer will pay over the term of the subscription if the customer choses to keep the item."},"installment_service_fee":{"type":"number","format":"float","example":9.95,"description":"Fee customer must pay along with the unit_installment_payment. Used only on some programs."},"residual_value":{"type":"number","format":"float","example":29.99,"description":"The amount this product is expected to be worth at then end of the term. (Deprecated in favor of total_residual_value)"},"total_residual_value":{"type":"number","format":"float","example":29.99,"description":"The amount this product is expected to be worth at the end of the term. Same value as residual_value."},"total_payment_to_buy_out":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they buy out the item."},"total_payment_to_trade_in":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they can trade in or upgrade the item."},"total_interest":{"type":"number","format":"float","example":0.0,"description":"The total interest the customer will pay over the term of the subscription."},"apr":{"type":"number","format":"float","example":0.0,"description":"The annual percentage rate (APR) for the subscription."},"nominal_interest_rate":{"type":"number","format":"float","example":0.0,"description":"The nominal interest rate (debit rate) for the subscription."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3 character currency code."}},"required":["subscription_plan_id","program_code","plan_code","plan_name","plan_subtitle","plan_summary","financing_plan_type","installment_count","installment_count_to_trade_in","unit_installment_payment","installment_payment","total_installment_payment","total_over_term","installment_service_fee","residual_value","total_residual_value","total_payment_to_buy_out","total_payment_to_trade_in","total_interest","apr","nominal_interest_rate","currency"]},"ProductCategoryEntity":{"type":"object","properties":{"category_name":{"type":"string","example":"Electronics","description":"The name of the category."}},"required":["category_name"]},"ProductCrossSellEntity":{"type":"object","properties":{"merchant_sku":{"type":"string","example":"PRODUCT-1235","description":"Merchant SKU of the cross-sell product. Must exist in the merchant's catalog."}},"required":["merchant_sku"]},"postProducts":{"type":"object","properties":{"product":{"type":"object","properties":{"merchant_sku":{"type":"string","description":"Unique SKU identifier for the product.","example":"SUPER-PRODUCT-123"},"product_name":{"type":"string","description":"Display name for product.","example":"Super cool product"},"unit_retail_price":{"type":"number","format":"double","description":"Unit retail price for the item including any typically embedded taxes and fees. Defaults to unit_sale_price if not provided.","example":350.0},"unit_sale_price":{"type":"number","format":"double","description":"Unit price the item should be sold for including any discount or typically embedded taxes and fees.","example":350.0},"net_unit_sale_price":{"type":"number","format":"double","description":"The net (excluding any taxes or fees) sale price of the product.","example":325.0},"currency":{"type":"string","description":"ISO 4217 3 character currency code.","enum":["USD","CAD","EUR","GBP","AUD","CHF","MYR"],"default":"USD","example":"USD"},"cart_max_quantity":{"type":"integer","format":"int32","description":"Maximum number of these items allowed in the cart at once. Null indicates no limit.","default":null,"example":1},"available":{"type":"boolean","description":"Indicates if the product is available for purchase.","default":true,"example":false},"inventory_message":{"type":"string","description":"The message that is displayed on detail page next to the product. For example: “Ships today”, “Ships in 3 weeks” or “Low availability”.","default":"Available","example":"Available Now"},"inventory_help_message":{"type":"string","description":"The message that is displayed to a customer when they hover over the availability help icon on product detail page.  For example “Available on mm/dd/yyyy”.","default":"Available","example":"Available Now"},"discontinued":{"type":"boolean","description":"true - indicates the product is no longer available for purchase in the program.\\\n                      false - indicates the product is available for purchase in the program.","default":false,"example":false},"residual_value_category":{"type":"string","description":"The residual value category for the product, typically \"{model} {processor}\". Used to calculate product residual values in some programs. Accepted values are program dependent - LiftForward maintains the list for your program. A product sent with an unrecognised category is still accepted, but carries no residual value and is hidden from the storefront until the category is added.","example":"iPhone 16"},"contract_type":{"type":"string","description":"RENT - Rental item purchased with the opportunity to upgrade.\\\n                      FINANCE - Item financed with no opportunity to upgrade. \\\n                      SERVICE - Service associated with an item.","enum":["FINANCING","RENT","SERVICE","SERVICE_SUBSCRIPTION"],"example":"RENT"},"manufacturer_part_number":{"type":"string","description":"Manufacturer part number issued by the manufacturer. Either manufacturer_part_number or european_article_number is required when creating a product.","example":"SMP3BP334S4"},"european_article_number":{"type":"string","description":"EAN-13 identifier for the product. Either manufacturer_part_number or european_article_number is required when creating a product.","example":"2658932154786"},"manufacturer":{"type":"string","description":"The name of the manufacturer of the product.","example":"Apple"},"description":{"type":"string","description":"Multi sentence description of the product.","example":"This is a super cool product that does many things."},"description_list":{"type":"array","description":"Array of strings containing a list of product features.","example":["32 GB RAM","5 TB Hard Drive","Intel i9 CPU"],"items":{"type":"string"}},"merchant_detail_page_url":{"type":"string","description":"The URL to the product detail page on the merchant site.","example":"https://www.merchant.com/product/123456"},"product_image_url":{"type":"string","description":"The URL to the product image.","example":"https://www.merchant.com/product/123456/image.png"},"browsable":{"type":"boolean","description":"Indicates if the product is browsable to customers.","default":true,"example":true},"inventory_type":{"type":"string","description":"The type of inventory setting used for this product. \\\n                      THRESHOLD - Availability changes based on inventory levels. \\\n                      ALWAYS - Product is always available. \\\n                      NEVER - Product is never available.","enum":["THRESHOLD","NEVER","ALWAYS","CUSTOM"],"example":"NEVER"},"sales_taxes_and_fees":{"type":"array","description":"List of sales taxes and fees applicable to the product. Typically only applicable in markets where value added tax or ewaste fees are used.","items":{"type":"object","properties":{"code":{"type":"string","description":"A code that identifies the tax or fee.","enum":["VAT"],"example":"VAT"},"amount":{"type":"number","format":"double","description":"The amount of the tax or fee to be charged on this product.","example":25.0},"embedded_in_unit_sale_price":{"type":"boolean","description":"Indicates if the tax or fee amount was be embedded in unit_sale_price.","default":true}},"required":["code","amount"]}},"categories":{"type":"array","description":"List of categories for the product. At least one category is required. LiftForward will provide a program specific list of values that should be used.","items":{"type":"object","properties":{"category_name":{"type":"string","description":"The name of the category.","example":"Electronics"}},"required":["category_name"]}},"cross_sells":{"type":"array","description":"Array of cross-sell products recommended with this product. All referenced merchant_sku values must exist in the merchant's catalog. Returns 409 Conflict if any SKUs are not found.","items":{"type":"object","properties":{"merchant_sku":{"type":"string","description":"Merchant SKU of the cross-sell product. Must exist in the merchant's catalog.","example":"PRODUCT-1235"}},"required":["merchant_sku"]}}},"required":["merchant_sku","product_name","unit_sale_price","net_unit_sale_price","currency","contract_type","manufacturer","description","merchant_detail_page_url","product_image_url","inventory_type","categories"]}},"required":["product"],"description":"Create Product"},"ProductResponse":{"type":"object","properties":{"product":{"$ref":"#/definitions/ProductEntity"}},"required":["product"],"description":"ProductResponse model"},"putProductsProductId":{"type":"object","properties":{"product":{"type":"object","properties":{"product_name":{"type":"string","description":"Display name for product.","example":"Super cool product"},"unit_retail_price":{"type":"number","format":"double","description":"Unit retail price for the item including any typically embedded taxes and fees.","example":350.0},"unit_sale_price":{"type":"number","format":"double","description":"Unit price the item should be sold for including any discount or typically embedded taxes and fees.","example":350.0},"net_unit_sale_price":{"type":"number","format":"double","description":"The net (excluding any taxes or fees) sale price of the product.","example":325.0},"currency":{"type":"string","description":"ISO 4217 3 character currency code.","enum":["USD","CAD","EUR","GBP","AUD","CHF","MYR"],"default":"USD","example":"USD"},"cart_max_quantity":{"type":"integer","format":"int32","description":"Maximum number of these items allowed in the cart at once. Null indicates no limit.","example":1},"available":{"type":"boolean","description":"Indicates if the product is available for purchase.","example":false},"inventory_message":{"type":"string","description":"The message that is displayed on detail page next to the product. For example: “Ships today”, “Ships in 3 weeks” or “Low availability”.","example":"Available Now"},"inventory_help_message":{"type":"string","description":"The message that is displayed to a customer when they hover over the availability help icon on product detail page.  For example “Available on mm/dd/yyyy”.","example":"Available Now"},"discontinued":{"type":"boolean","description":"true - indicates the product is no longer available for purchase in the program.\\\n                      false - indicates the product is available for purchase in the program.","example":false},"residual_value_category":{"type":"string","description":"The residual value category for the product, typically \"{model} {processor}\". Used to calculate product residual values in some programs. Accepted values are program dependent - LiftForward maintains the list for your program. A product sent with an unrecognised category is still accepted, but carries no residual value and is hidden from the storefront until the category is added.","example":"iPhone 16"},"contract_type":{"type":"string","description":"RENT - Rental item purchased with the opportunity to upgrade.\\\n                      FINANCE - Item financed with no opportunity to upgrade. \\\n                      SERVICE - Service associated with an item.","enum":["FINANCING","RENT","SERVICE","SERVICE_SUBSCRIPTION"],"example":"RENT"},"manufacturer_part_number":{"type":"string","description":"Manufacturer part number issued by the manufacturer. Either manufacturer_part_number or european_article_number is required when creating a product.","example":"SMP3BP334S4"},"european_article_number":{"type":"string","description":"EAN-13 identifier for the product. Either manufacturer_part_number or european_article_number is required when creating a product.","example":"2658932154786"},"manufacturer":{"type":"string","description":"The name of the manufacturer of the product.","example":"Apple"},"description":{"type":"string","description":"Multi sentence description of the product.","example":"This is a super cool product that does many things."},"description_list":{"type":"array","description":"Array of strings containing a list of product features.","example":["32 GB RAM","5 TB Hard Drive","Intel i9 CPU"],"items":{"type":"string"}},"merchant_detail_page_url":{"type":"string","description":"The URL to the product detail page on the merchant site.","example":"https://www.merchant.com/product/123456"},"product_image_url":{"type":"string","description":"The URL to the product image.","example":"https://www.merchant.com/product/123456/image.png"},"browsable":{"type":"boolean","description":"Indicates if the product is browsable to customers.","example":true},"inventory_type":{"type":"string","description":"The type of inventory setting used for this product. \\\n                      THRESHOLD - Availability changes based on inventory levels. \\\n                      ALWAYS - Product is always available. \\\n                      NEVER - Product is never available.","enum":["THRESHOLD","NEVER","ALWAYS","CUSTOM"],"example":"NEVER"},"sales_taxes_and_fees":{"type":"array","description":"List of sales taxes and fees applicable to the product. Typically only applicable in markets where value added tax or ewaste fees are used.","items":{"type":"object","properties":{"code":{"type":"string","description":"A code that identifies the tax or fee.","enum":["VAT"],"example":"VAT"},"amount":{"type":"number","format":"double","description":"The amount of the tax or fee to be charged on this product.","example":25.0}},"required":["code","amount"]}},"categories":{"type":"array","description":"List of categories for the product","items":{"type":"object","properties":{"category_name":{"type":"string","description":"The name of the category.","example":"Electronics"}},"required":["category_name"]}},"cross_sells":{"type":"array","description":"Array of cross-sell products recommended with this product. All referenced merchant_sku values must exist in the merchant's catalog. Returns 409 Conflict if any SKUs are not found.","example":[{"merchant_sku":"PRODUCT-1235"},{"merchant_sku":"PRODUCT-1236"}],"items":{"type":"object","properties":{"merchant_sku":{"type":"string","description":"Merchant SKU of the cross-sell product. Must exist in the merchant's catalog.","example":"PRODUCT-1235"}},"required":["merchant_sku"]}}}}},"required":["product"],"description":"Update Product"},"MerchantApi_Entities_ProductLocationsResponse":{"type":"object","properties":{"product_locations":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_ProductLocationEntity"}},"meta":{"$ref":"#/definitions/MetaEntity"}},"description":"MerchantApi_Entities_ProductLocationsResponse model"},"MerchantApi_Entities_ProductLocationEntity":{"type":"object","properties":{"location_id":{"type":"string","example":"sqhbc4dp7qjwh4mz6de3c9q7jmz","description":"LiftForward identifier for the Location."},"merchant_location_id":{"type":"string","example":"62CR","description":"The Location's identifier in the merchant's own system."},"available":{"type":"boolean","example":true,"description":"Whether the product is available at this Location."},"inventory_message":{"type":"string","example":"Available at this store","description":"Inventory message shown for this product at this location. Overrides the product-level message."},"inventory_help_message":{"type":"string","example":"Ready for pickup today","description":"Help message shown when hovering the availability help icon for this product at this location."}},"required":["location_id","merchant_location_id","available","inventory_message","inventory_help_message"]},"postProductsProductIdLocations":{"type":"object","properties":{"product_locations":{"type":"array","items":{"type":"object","properties":{"location_id":{"type":"string","description":"LiftForward identifier for the Location. Provide this or merchant_location_id.","example":"xf6sv2nhgbbbt565cmdg46b2gem"},"merchant_location_id":{"type":"string","description":"The Location's identifier in the merchant's own system. Provide this or location_id.","example":"62CR"},"available":{"type":"boolean","description":"Whether the product is available at this Location.","example":true},"inventory_message":{"type":"string","description":"Inventory message shown for this product at this Location.","example":"Available at this store"},"inventory_help_message":{"type":"string","description":"Help message shown when hovering the availability help icon for this Location.","example":"Ready for pickup today"}},"required":["available","inventory_message","inventory_help_message"]}}},"required":["product_locations"],"description":"Upsert Product Locations"},"postPromotions":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"sku":{"type":"string","description":"The merchant SKU of the item.","example":"SKU12345"},"quantity":{"type":"integer","format":"int32","description":"The quantity of the item. Defaults to 1 if not provided.","example":1},"unit_sale_price":{"type":"number","format":"float","description":"The sale price per unit of the item. If not provided, the product sale price known to LiftForward will be used.","example":900.0},"residual_value_category":{"type":"string","description":"The residual value category of the item, used to determine its value at the end of  the subscription plans term.","example":"laptops"}},"required":["sku"]}},"shipping_fee":{"type":"number","format":"float","description":"A flat shipping fee for the entire order to include in pricing calculations.","default":0.0,"example":5.99}},"required":["items"],"description":"Show Promotions"},"PromotionResponse":{"type":"object","properties":{"promotions":{"type":"array","items":{"$ref":"#/definitions/PromotionEntity"},"description":"List of available promotions for the provided items."}},"required":["promotions"],"description":"PromotionResponse model"},"PromotionEntity":{"type":"object","properties":{"promotion_code":{"type":"string","example":"MERCHANT-UPGRADE-01","description":"String provided by LiftForward to identify the Promotion."},"title":{"type":"string","example":"Smart Upgrade","description":"Title of the promotion."},"type":{"type":"string","example":"payment","description":"Type of the promotion, e.g., \"payment\", \"upgrade\"."},"category":{"type":"string","example":"upgrade","description":"Category of the promotion, e.g., \"upgrade\"."},"description":{"type":"string","example":"About Smart Upgrade...","description":"Description of the promotion."},"available_subscription_plans":{"type":"array","items":{"$ref":"#/definitions/PromotionSubscriptionPlanEntity"},"description":"List of Subscription Plans available for the promotion."}},"required":["promotion_code","title","type","category","description","available_subscription_plans"]},"PromotionSubscriptionPlanEntity":{"type":"object","properties":{"subscription_plan_id":{"type":"string","example":"standard-plan-30","description":"The unique id for this plan."},"program_code":{"type":"string","example":"subscription-us","description":"The program code for the subscription plan."},"plan_code":{"type":"string","example":"standard","description":"A short string that identifies the type of plan independent of the installment_count."},"plan_name":{"type":"string","example":"Standard Plan","description":"A displayable name for this plan."},"plan_subtitle":{"type":"string","example":"This is the basic plan.","description":"Promotional copy to display for this plan."},"plan_summary":{"type":"string","example":"Total financed amount when you upgrade is $2,090 and includes 25 months of payments. T\u0026Cs, fees, charges \u0026 exclusions apply.","description":"Longer summary description on the plan and it's benefits"},"financing_plan_type":{"type":"string","enum":["financing","upgrade"],"example":"financing","description":"The type of financing plan for this product."},"installment_count":{"type":"integer","format":"int32","example":30,"description":"Count of installments (aka payments) customer must make for this item."},"installment_count_to_trade_in":{"type":"integer","format":"int32","example":24,"description":"Count of installments (aka payments) customer must make to trade in or upgrade this item."},"unit_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make for 1 item under this subscription plan."},"installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make for all items under this subscription plan. (Deprecated in favor of total_installment_payment)"},"total_installment_payment":{"type":"number","format":"float","example":9.91,"description":"Amount of each payment customer will make for all items under this subscription plan. Same value as installment_payment."},"total_over_term":{"type":"number","format":"float","example":2090.0,"description":"The total amount the customer will pay over the term of the subscription if the customer choses to keep the item."},"installment_service_fee":{"type":"number","format":"float","example":9.95,"description":"Fee customer must pay along with the unit_installment_payment. Used only on some programs."},"residual_value":{"type":"number","format":"float","example":29.99,"description":"The amount this product is expected to be worth at then end of the term. (Deprecated in favor of total_residual_value)"},"total_residual_value":{"type":"number","format":"float","example":29.99,"description":"The amount this product is expected to be worth at the end of the term. Same value as residual_value."},"total_payment_to_buy_out":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they buy out the item."},"total_payment_to_trade_in":{"type":"number","format":"float","example":2030.0,"description":"The total amount the customer must pay before they can trade in or upgrade the item."},"total_interest":{"type":"number","format":"float","example":0.0,"description":"The total interest the customer will pay over the term of the subscription."},"apr":{"type":"number","format":"float","example":0.0,"description":"The annual percentage rate (APR) for the subscription."},"nominal_interest_rate":{"type":"number","format":"float","example":0.0,"description":"The nominal interest rate (debit rate) for the subscription."},"currency":{"type":"string","default":"USD","example":"USD","description":"ISO 4217 3 character currency code."},"items":{"type":"array","items":{"$ref":"#/definitions/MerchantApi_Entities_PlanItemFinancingEntity"},"description":"Per item financing breakdown for this SubscriptionPlan. Shipping and other non-item specific fees are not included in these calculations."}},"required":["subscription_plan_id","program_code","plan_code","plan_name","plan_subtitle","plan_summary","financing_plan_type","installment_count","installment_count_to_trade_in","unit_installment_payment","installment_payment","total_installment_payment","total_over_term","installment_service_fee","residual_value","total_residual_value","total_payment_to_buy_out","total_payment_to_trade_in","total_interest","apr","nominal_interest_rate","currency","items"]},"MerchantApi_Entities_PlanItemFinancingEntity":{"type":"object","properties":{"sku":{"type":"string","example":"SKU12345","description":"The merchant SKU of the item from the request."},"quantity":{"type":"integer","format":"int32","example":2,"description":"The quantity of the item from the request."},"unit_sale_price":{"type":"number","format":"float","example":49.99,"description":"Sale price used for a single unit of this item (from the request, or the known product price when not provided)."},"unit_amount_financed":{"type":"number","format":"float","example":49.99,"description":"Amount financed for a single unit of this item."},"unit_installment_payment":{"type":"number","format":"float","example":2.09,"description":"Monthly payment for a single unit of this item."},"total_installment_payment":{"type":"number","format":"float","example":4.17,"description":"Monthly payment for all units of this item line."},"total_residual_value":{"type":"number","format":"float","example":9.65,"description":"Expected residual value for this item line (all units) at end of term."}},"required":["sku","quantity","unit_sale_price","unit_amount_financed","unit_installment_payment","total_installment_payment","total_residual_value"]},"postSessions":{"type":"object","properties":{"session":{"type":"object","properties":{"program_code":{"type":"string","description":"String provided by LiftForward to identify the Device as a Service Program.","example":"program-abc"},"merchant_approval_url":{"type":"string","description":"URL on the merchant site the customer is redirected to after a customer's application is approved.","example":"https://www.merchant.com/approved"},"merchant_decline_url":{"type":"string","description":"URL on the merchant site the customer is redirected to after a customer's application is declined.","example":"https://www.merchant.com/declined"},"merchant_cancel_url":{"type":"string","description":"URL on the merchant site the customer is redirected to after a customer cancels their application.","example":"https://www.merchant.com/canceled"},"merchant_pending_url":{"type":"string","description":"URL on the merchant site the customer is redirected to when a customer's application is pending.","example":"https://www.merchant.com/pending"},"language":{"type":"string","description":"Preferred language for the customer experience.","example":"en"},"payment":{"type":"object","description":"The first installment the merchant took at its own checkout. Required by programs that collect later installments through the payment processor.","properties":{"processor":{"type":"string","description":"The payment processor that handled the first installment.","example":"2c2p"},"token":{"type":"string","description":"The merchant's reference for the first installment payment, such as the Shopify payment ID.","example":"8429234238.1"},"first_installment_captured":{"type":"boolean","description":"Whether the merchant has captured the first installment."}}},"tracking_consents":{"type":"object","description":"Tracking consent preferences provided at session creation.","properties":{"strictly_necessary":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether strictly necessary tracking is granted."},"required":{"type":"boolean","description":"Whether strictly necessary tracking is required."}},"required":["granted"]},"functional":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether functional tracking is granted."},"required":{"type":"boolean","description":"Whether functional tracking is required."}},"required":["granted"]},"performance_analytics":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether performance and analytics tracking is granted."},"required":{"type":"boolean","description":"Whether performance and analytics tracking is required."}},"required":["granted"]},"marketing_targeting":{"type":"object","properties":{"granted":{"type":"boolean","description":"Whether marketing and targeting tracking is granted."},"required":{"type":"boolean","description":"Whether marketing and targeting tracking is required."}},"required":["granted"]}},"required":["strictly_necessary","functional","performance_analytics","marketing_targeting"]},"simulate_outcome":{"type":"string","description":"One of [approved, checkout] to simulate a specific session outcome. For testing purposes only.","enum":["approved","checkout"],"default":null,"example":"checkout"},"customer":{"type":"object","description":"Pre-fill customer details for the session.","properties":{"personal_details":{"type":"object","description":"Personal details of the customer.","properties":{"first_name":{"type":"string","description":"First name of the customer.","example":"Elliot"},"middle_name":{"type":"string","description":"Middle name of the customer.","example":"Lee"},"last_name":{"type":"string","description":"Last name of the customer.","example":"Alderson"},"email":{"type":"string","description":"Email address of the customer.","example":"elliot.alderson@gmail.com"},"mobile_phone_number":{"type":"string","description":"Mobile phone number of the customer. Format: NNNNNNNNNN.","example":"8403240590"},"home_phone_number":{"type":"string","description":"Home phone number of customer. Format: NNNNNNNNNN. Required if mobile phone number not provided.","example":"8403240590"},"date_of_birth":{"type":"string","format":"date","description":"Date of birth of customer. Format: YYYY-MM-DD","example":"1986-09-17"},"tax_id":{"type":"string","description":"Tax id (SSN) of customer. Format: NNNNNNNNN","example":"840324059"},"annual_income":{"type":"integer","format":"int32","description":"Gross annual income of customer in local currency. Values between 0 and 9,999,999 allowed.","example":130000}}},"billing_address":{"type":"object","description":"Billing address of the customer.","properties":{"address_line_1":{"type":"string","description":"First line of the billing address.","example":"123 Main St"},"address_line_2":{"type":"string","description":"Second line of the billing address.","example":"Apt 4B"},"city":{"type":"string","description":"City of the billing address.","example":"New York"},"state_code":{"type":"string","description":"State code of the billing address. For US addresses, provide 2-letter state code.","example":"NY"},"postal_code":{"type":"string","description":"Postal code of the billing address.","example":"10001"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code of the billing address.","example":"US"}}}}},"order":{"type":"object","description":"Order details for the session.","properties":{"currency":{"type":"string","description":"ISO 4217 3-character currency code.","enum":["USD","CAD","EUR","GBP","AUD","CHF","MYR"],"example":"USD"},"plan_code":{"type":"string","description":"String provided by LiftForward to identify the Device as a Service Plan. Required if the program has multiple plans.","example":"plan-123"},"merchant_order_id":{"type":"string","description":"Unique identifier used by merchant for this order. Should be provided if possible.","example":"8429234238273948723947"},"shipping_fee":{"type":"number","format":"float","description":"A flat shipping fee for the entire order, separate from individual item shipping fees","example":15.99},"merchant":{"type":"object","description":"Merchant-specific order details.","properties":{"source_channel_id":{"type":"string","description":"Channel through which the order was placed.","enum":["IN_STORE","ONLINE_IN_STORE","ONLINE_SHIP_TO_HOME"],"default":"ONLINE_SHIP_TO_HOME","example":"ONLINE_SHIP_TO_HOME"},"store_id":{"type":"string","description":"Identifier for the merchant store.","example":"store-123"},"employee_id":{"type":"string","description":"Identifier for the merchant employee.","example":"emp-456"},"tender_type":{"type":"string","description":"Payment method used by the merchant for this order.","example":"credit_card"},"merchant_metadata":{"type":"object","description":"Arbitrary metadata for the session","example":{"custom_key_1":"custom_value_1","custom_key_2":"custom_value_2"}}}},"shipping_address":{"type":"object","description":"Shipping address for the order.","properties":{"first_name":{"type":"string","description":"First name of customer.","example":"Elliot"},"last_name":{"type":"string","description":"Last name of customer.","example":"Alderson"},"address_line_1":{"type":"string","description":"Street address","example":"217 East Broadway"},"address_line_2":{"type":"string","description":"Apt, Floor, Suite etc.. ","example":"Apt. 4E"},"city":{"type":"string","description":"Address city.","example":"New York"},"state_code":{"type":"string","description":"2 letter US state code abbreviation.","example":"NY"},"postal_code":{"type":"string","description":"Address zip code. Format NNNNN, NNNNNNNNN or NNNNN-NNNN in the US.","example":"10002"},"country_code":{"type":"string","description":"2 letter ISO-3166-1 country code.","example":"US"}},"required":["address_line_1","city","postal_code","country_code"]},"merchant_items":{"type":"array","description":"Array of items in the order.","items":{"type":"object","properties":{"sku":{"type":"string","description":"Merchant stock-keeping unit identifier for the item.","example":"SKU-001"},"description":{"type":"string","description":"Description of the item.","example":"Laptop 15-inch display, 16GB RAM"},"image_url":{"type":"string","description":"URL for an image of the item.","example":"https://www.merchant.com/images/laptop.png"},"unit_sale_price":{"type":"number","format":"float","description":"Sale price per unit of the item.","example":999.99},"unit_retail_price":{"type":"number","format":"float","description":"Regular retail price per unit before any discounts.","example":1199.99},"quantity":{"type":"integer","format":"int32","description":"Quantity of the item ordered.","default":1,"example":1},"merchant_order_item_id":{"type":"string","description":"Merchant-provided identifier for this order item.","example":"order_item_123"},"parent_merchant_order_item_id":{"type":"string","description":"Merchant-provided identifier for another order item this item belongs to. Typically used to link insurance products to their devices.","example":"order_item_100"},"unit_total_price":{"type":"number","format":"float","description":"Total price per unit including all fees and taxes.","example":1049.99},"unit_balloon_payment":{"type":"number","format":"float","description":"Balloon payment amount per unit due at end of term.","default":0.0,"example":0.0},"shipping_fee":{"type":"number","format":"float","description":"Shipping fee for this individual item.","example":5.99},"subscription_plan_id":{"type":"string","description":"Identifier for the subscription plan associated with this item.","example":"plan-abc-24"},"service_term_length":{"type":"integer","format":"int32","description":"Length of the service term in months.","example":24},"sales_tax_rates":{"type":"array","description":"Breakdown of sales tax rates for this line item.","items":{"type":"object","properties":{"sales_tax_rate_code":{"type":"string","description":"Tax rate code identifying the type of tax levy.","enum":["VAT","GST","HST","PST","QST"]},"rate":{"type":"number","format":"float","description":"Tax rate as a decimal (e.g. 0.08 for 8%).","example":0.08},"amount":{"type":"number","format":"float","description":"Tax amount applied at this rate.","example":8.0}},"required":["sales_tax_rate_code","rate","amount"]}}},"required":["sku"]}}}}},"required":["program_code","merchant_approval_url","merchant_decline_url","merchant_cancel_url"]}},"required":["session"],"description":"Create Session"},"SessionResponse":{"type":"object","properties":{"session":{"$ref":"#/definitions/MerchantApi_Entities_SessionAnonymousResponseEntity"}},"required":["session"],"description":"SessionResponse model"},"MerchantApi_Entities_SessionAnonymousResponseEntity":{"type":"object","properties":{"session_id":{"type":"string","example":"654m2nwzvnpbypcwrmjmq5krvk6","description":"Unique identifier for this Session."},"status":{"type":"string","example":"applying","description":"Current status of the session (e.g., applying, checking_out, etc.)"},"reservation_status":{"type":"string","example":"waiting","description":"Current reservation status of the session (e.g., waiting, active, expired, etc.)"},"credit_application_url":{"type":"string","example":"https://www.liftforward.com/en-us/program-abc/credit_application/4w5qd68dar7y3g79wfgacag7f23","description":"URL for the LiftForward hosted credit application."},"merchant_customer_id":{"type":"string","example":"wt24qpne29ngje8ryvahssqhvam","description":"Unique identifier for customer. Provided by the Merchant on create or generated by LiftForward."},"program_code":{"type":"string","example":"program-abc","description":"String provided by LiftForward to identify the Device as a Service Program."},"language":{"type":"string","example":"en","description":"Preferred language for the customer experience."},"merchant_approval_url":{"type":"string","example":"https://www.merchant.com/approved","description":"URL on the merchant site the customer is redirected to after a customer's application is approved."},"merchant_decline_url":{"type":"string","example":"https://www.merchant.com/declined","description":"URL on the merchant site the customer is redirected to after a customer's application is declined."},"merchant_cancel_url":{"type":"string","example":"https://www.merchant.com/canceled","description":"URL on the merchant site the customer is redirected to after a customer's cancels their application."},"merchant_pending_url":{"type":"string","example":"https://www.merchant.com/pending","description":"URL on the merchant site the customer is redirected to when a customer's application is pending."},"tracking_consents":{"$ref":"#/definitions/MerchantApi_Entities_TrackingConsentEntity","description":"Tracking consent preferences provided at session creation."},"order":{"$ref":"#/definitions/MerchantApi_Entities_SessionOrder"},"approval":{"$ref":"#/definitions/MerchantApi_Entities_ApprovalEntity"}},"required":["merchant_customer_id","program_code"]}}}