openapi: 3.2.0 info: title: MTN Management Shopping Cart API description: ' The Shopping Cart API provides a standardized mechanism for the management of shopping carts. Including creation, update, retrieval ' version: 1.0.0 servers: - url: https://api.mtn.com/tmf-api/shoppingCart/v1/ security: - ApiKeyAuth: [] - OAuth2: [] tags: - name: shoppingCart paths: /shoppingCart: post: operationId: createShoppingCartLogin summary: This API will return the cart session cookie, to be used for all subsequent requests. description: This operation creates a ShoppingCart entity. The session cookie created is unique per shopping cart and will identify each shopping cart tags: - shoppingCart parameters: - name: transactionId in: header description: unique transaction identifier required: true schema: type: string - name: customerType in: header description: target system of request required: true schema: type: string enum: - CBUOnline responses: '201': description: Created content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_CreateSessionResponse' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_CreateSession' description: The ShoppingCart to be created required: true /shoppingCart/{id}: get: operationId: retrieveShoppingCart summary: Retrieves a ShoppingCart Information by ID description: This operation retrieves a ShoppingCart entity. tags: - shoppingCart parameters: - name: id description: Identifier of the ShoppingCart required: true in: path schema: type: string - name: transactionId in: header description: unique transaction identifier required: true schema: type: string - name: customerType in: header description: target system of request required: true schema: type: string enum: - CBUOnline - name: cookie in: header x-example: JSESSIONID=rvUKhWtBRaC3zuyv_KxKQQmFq4tI0wla2D--0OBC46QKBGT4cMwI description: The unique ID of the session is returned. This must be passed as it is in the header of all the next ATG API calls. required: true schema: type: string - name: callingSystem in: query required: false description: This is an identifer for the calling system. eg. MTN App, Online Recharges, No Funds, NGMTNApp schema: type: string responses: '200': description: Success content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCartListByIDSuccessResponse' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' /shoppingCart/{id}/order: patch: operationId: createShoppingCart summary: Creates a ShoppingCart order description: This operation creates a ShoppingCart Order. tags: - shoppingCart parameters: - name: id in: path required: true description: This parameter indicates which site the response must be given. eg. MTNSite, OnlineStore, EBU_CC, EBU_SME, NGMTNApp schema: type: string - name: transactionId in: header description: unique transaction identifier required: true schema: type: string - name: customerType in: header description: target system of request required: true schema: type: string enum: - CBUOnline - name: cookie in: header x-example: JSESSIONID=rvUKhWtBRaC3zuyv_KxKQQmFq4tI0wla2D--0OBC46QKBGT4cMwI description: The unique ID of the session is returned. This must be passed as it is in the header of all the next ATG API calls. required: true schema: type: string responses: '201': description: Created content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateOrderResponse' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateOrder' description: The ShoppingCart to be created required: true /shoppingCart/{id}/userInfo: patch: operationId: patchShoppingCartUserInfo summary: Updates partially a ShoppingCart user's information description: This operation updates partially a ShoppingCart user's information. tags: - shoppingCart parameters: - name: id in: path required: true description: This parameter indicates which site the response must be given. eg. MTNSite, OnlineStore, EBU_CC, EBU_SME, NGMTNApp schema: type: string - name: transactionId in: header description: unique transaction identifier required: true schema: type: string - name: customerType in: header description: target system of request required: true schema: type: string enum: - CBUOnline - name: cookie in: header x-example: JSESSIONID=rvUKhWtBRaC3zuyv_KxKQQmFq4tI0wla2D--0OBC46QKBGT4cMwI description: The unique ID of the session is returned. This must be passed as it is in the header of all the next ATG API calls. required: true schema: type: string responses: '200': description: Updated content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateUserInfoResponse' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateUserInfo' description: The ShoppingCart to be updated required: true /shoppingCart/{id}/shippingInfo: patch: operationId: patchShoppingCartShippingInfo summary: Updates partially a ShoppingCart's shipping information description: This operation updates partially a ShoppingCart shipping information. tags: - shoppingCart parameters: - name: id in: path required: true description: This parameter indicates which site the response must be given. eg. MTNSite, OnlineStore, EBU_CC, EBU_SME, NGMTNApp schema: type: string - name: transactionId in: header description: unique transaction identifier required: true schema: type: string - name: customerType in: header description: target system of request required: true schema: type: string enum: - CBUOnline - name: cookie in: header x-example: JSESSIONID=rvUKhWtBRaC3zuyv_KxKQQmFq4tI0wla2D--0OBC46QKBGT4cMwI description: The unique ID of the session is returned. This must be passed as it is in the header of all the next ATG API calls. required: true schema: type: string responses: '200': description: Updated content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateShippingInfoResponse' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateShippingInfo' description: The ShoppingCart to be updated required: true /shoppingCart/{id}/submitOrder: patch: operationId: patchSubmitOrder summary: Updates an order for submission description: This operation submits the order items to be processed. tags: - shoppingCart parameters: - name: id in: path required: true description: This parameter indicates which site the response must be given. eg. MTNSite, OnlineStore, EBU_CC, EBU_SME, NGMTNApp schema: type: string - name: transactionId in: header description: unique transaction identifier required: true schema: type: string - name: customerType in: header description: target system of request required: true schema: type: string enum: - CBUOnline - name: cookie in: header x-example: JSESSIONID=rvUKhWtBRaC3zuyv_KxKQQmFq4tI0wla2D--0OBC46QKBGT4cMwI description: The unique ID of the session is returned. This must be passed as it is in the header of all the next ATG API calls. required: true schema: type: string responses: '200': description: Updated content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_UpdateSubmitOrderResponse' '400': description: Bad Request content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '405': description: Method Not allowed content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/ShoppingCart_SubmitOrder' description: The ShoppingCart to be updated required: true components: schemas: RelatedParty: type: object description: Related Entity reference. A related party defines party or party role linked to a specific entity. required: - '@referredType' - id properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. role: type: string description: Role played by the related party '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ShoppingCart_CreateSession: type: object properties: channel: type: object properties: id: type: string description: This parameter indicates which site the response must be given. eg. MTNSite, OnlineStore, EBU_CC, EBU_SME, NGMTNApp relatedParty: type: object properties: id: type: string description: This is the unique identifier of the source channel ShoppingCart_UpdateOrder: type: object description: 'Shopping Cart resource is used for the temporarily selection and reservation of product offerings in e-commerce, call center and retail purchase. Shopping cart supports purchase of both physical and digital goods and service (e.g. handset, telecom network service). Shopping Cart contain list of cart items, a reference to customer (partyRole) or contact medium in case customer not exist, and the total items price including promotions Skipped properties: id,href,validFor,cartTotalPrice' properties: cartItem: type: array items: $ref: '#/components/schemas/CartItemOrder' PriceAlterationOrderRef: required: - price properties: description: type: string description: A narrative that explains in detail the semantics of this order item price alteration name: type: string description: Name of the order item price alteration unitOfMeasure: type: string description: Could be minutes, GB... price: $ref: '#/components/schemas/PriceOrder' productOfferingPrice: $ref: '#/components/schemas/ProductOfferingPriceOrder' ShoppingCart_UpdateUserInfoResponse: type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string ShoppingCart_SubmitOrder: type: object properties: cartItem: type: array items: $ref: '#/components/schemas/CartItemSubmitOrder' contactMedium: type: array items: $ref: '#/components/schemas/ContactMediumSubmitOrder' ContactMediumSubmitOrder: type: object properties: emailAddress: type: string socialNetworkId: type: string PriceOrder: type: object description: Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration. properties: isDiscounted: type: boolean example: false isFinal: type: boolean example: false taxRate: type: number format: float description: Tax rate dutyFreeAmount: $ref: '#/components/schemas/Money' description: All taxes included amount (expressed in the given currency) taxIncludedAmount: $ref: '#/components/schemas/Money' description: All taxes included amount (expressed in the given currency) '@type': type: string description: When sub-classing, this defines the sub-class entity name example: xtraTimeBalanceAmount ShoppingCart_CreateSessionResponse: type: object required: - statusCode - statusMessage - supportMessage - transactionId properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: type: object properties: cookie: type: string description: The unique ID of the session is returned. This must be passed as it is in the header of all the next ATG API calls. [Tony] - Rather call this sessionId example: JSESSIONID=rvUKhWtBRaC3zuyv_KxKQQmFq4tI0wla2D--0OBC46QKBGT4cMwI PriceAlterationRef: type: object properties: price: $ref: '#/components/schemas/PriceRef' ShoppingCart_UpdateShippingInfo: type: object description: 'Shopping Cart resource is used for the temporarily selection and reservation of product offerings in e-commerce, call center and retail purchase. Shopping cart supports purchase of both physical and digital goods and service (e.g. handset, telecom network service). Shopping Cart contain list of cart items, a reference to customer (partyRole) or contact medium in case customer not exist, and the total items price including promotions Skipped properties: id,href,validFor,cartTotalPrice' properties: contactMedium: type: array items: $ref: '#/components/schemas/ContactMediumPatchShippingInfo' relatedParty: type: object properties: id: type: string description: This is an identifer for the calling system. eg. MTN App, Online Recharges, No Funds MediumCharacteristicPatchUserInfo: type: object description: Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) properties: title: type: string description: Title of consumer example: Mr. firstName: type: string description: First name of customer surname: type: string description: surname of customer idNumber: type: string description: ID number of customer idType: type: string description: Type of ID of customer enum: - RSAID - PASSPORT emailAddress: type: string description: Full email address in standard format phoneNumber: type: string description: The primary phone number of the contact dealerCode: type: string description: This parameter represents dealer code. For online channel value will be "Online". This parameter is mandatory for all except user type - EBU Upgrade User. dealerName: type: string description: Dealer name is defined & agreed for each Channel. This value is passed to downstream to identify the dealer of the offer/promotion. This parameter is mandatory for all except user type - EBU Upgrade User, Prepaid User. ProductPriceOrderRef: type: object description: An amount, usually of money, that represents the actual price paid by a Customer for a purchase, a rent or a lease of a Product. The price is valid for a defined period of time. required: - price - priceType properties: price: $ref: '#/components/schemas/PriceOrder' CartItemSubmitOrder: type: object properties: product: $ref: '#/components/schemas/SubmitOrderProductItem' ProductCharacteristicRef: type: object properties: name: type: string description: Name of the characteristic valueType: type: string description: Data type of the value of the characteristic value: $ref: '#/components/schemas/Any' description: The value of the characteristic CartPriceOrder: type: object description: An amount, usually of money, that represents the actual price paid by the customer for this item. May represent the total price of the shopping cart or the total of the cart item depending on the relation properties: description: type: string description: A narrative that explains in detail the semantics of this order item price. name: type: string description: A short descriptive name such as "Subscription price". unitOfMeasure: type: string description: Could be minutes, GB... price: $ref: '#/components/schemas/PriceOrder' priceAlteration: type: array items: $ref: '#/components/schemas/PriceAlterationOrderRef' '@type': type: string description: When sub-classing, this defines the sub-class entity name Any: {} ProductTermOrderRef: type: object properties: description: type: string description: Description of the productTerm validFor: $ref: '#/components/schemas/TimePeriod' description: productTerm validity period ShoppingCart_UpdateUserInfo: type: object description: 'Shopping Cart resource is used for the temporarily selection and reservation of product offerings in e-commerce, call center and retail purchase. Shopping cart supports purchase of both physical and digital goods and service (e.g. handset, telecom network service). Shopping Cart contain list of cart items, a reference to customer (partyRole) or contact medium in case customer not exist, and the total items price including promotions Skipped properties: id,href,validFor,cartTotalPrice' properties: contactMedium: type: array items: $ref: '#/components/schemas/ContactMediumPatchUserInfo' relatedParty: type: object properties: id: type: string description: This is an identifer for the calling system. eg. MTN App, Online Recharges, No Funds CartTotalPriceRef: type: object properties: description: type: string description: A narrative that explains in detail the semantics of this order item price. name: type: string description: A short descriptive name such as "Subscription price". unitOfMeasure: type: string description: Could be minutes, GB... priceAlteration: type: array items: $ref: '#/components/schemas/PriceAlterationRef' price: $ref: '#/components/schemas/PriceRef' ProductOfferingPriceOrder: type: object properties: value: type: string example: 0 id: type: string example: manualAdjustmentTotal ResourceRefOrder: type: object properties: id: type: string description: Unique identifier of a related entity. value: type: string description: 'The resource value that can be used to identify a resource with a public key (e.g.: a tel nr, an msisdn)' required: - id ContactMediumOrderRef: type: object description: Indicates the contact medium that could be used to contact the party. properties: id: type: string characteristic: $ref: '#/components/schemas/MediumCharacteristicOrderRef' description: Any additional characteristic(s) of this contact medium '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name Error: type: object required: - statusCode - statusMessage properties: statusCode: type: string description: This is the MADAPI Canonical Error Code (it is 4 characters long and it is not the HTTP Status Code which is 3 characters long). Back-end system errors are mapped to specific canonical error codes which are returned. More information on these mappings can be found on the MADAPI Confluence Page 'Response Codes' example: '1000' statusMessage: type: string description: More details and corrective actions related to the error which can be shown to a client supportMessage: type: string description: Internal message meant for consumers of the API to troubleshoot the error (could possible include the back-end system error code in the message if it would be useful) transactionId: type: string description: This is the same transactionId that is sent in the request timestamp: type: string format: date-time description: Timestamp that the error occurred example: 2020-08-01T12:34 path: type: string description: The path that caused the error example: /loans/2348024008124/... ShoppingCartListByIDSuccessResponse: type: object properties: statusCode: type: string example: '0000' description: MADAPI canonical code statusMessage: type: string example: Successful transactionId: type: string description: A trace id for tracking request/response example: '43843948394' data: $ref: '#/components/schemas/ShoppingCartListByIDSuccessResponseData' CartItemOrderProduct: type: object properties: id: type: string description: Unique identifier of the product name: type: string description: Name of the product. It could be the same as the name of the product offering description: type: string description: Is the description of the product. It could be copied from the description of the Product Offering. isCustomerVisible: type: boolean description: If true, the product is visible by the customer. productSerialNumber: type: string description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router. startDate: type: string format: date-time description: Is the date from which the product starts orderDate: type: string format: date-time description: Is the date when the product was ordered productTerm: type: array items: $ref: '#/components/schemas/ProductTermOrderRef' realizingResource: type: array items: $ref: '#/components/schemas/ResourceRefOrder' productCharacteristic: type: array items: $ref: '#/components/schemas/CharacteristicOrder' relatedParty: type: array items: $ref: '#/components/schemas/RelatedPartyOrderRef' billingAccount: type: array items: $ref: '#/components/schemas/RelatedPartyOrderRef' productPrice: type: array items: $ref: '#/components/schemas/ProductPriceOrderRef' '@baseType': type: string description: When sub-classing, this defines the super-class '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. ShoppingCartListByIDSuccessResponseData: type: object properties: id: type: string description: Identifier of the cart item (generally it is a sequence number 01, 02, 03, ...) in the shopping cart cartItem: type: array items: $ref: '#/components/schemas/CartItemRef' cartTotalPrice: type: array items: $ref: '#/components/schemas/CartTotalPriceRef' relatedParty: $ref: '#/components/schemas/RelatedParty' CharacteristicOrder: type: object description: Describes a given characteristic of an object or entity through a name/value pair. required: - name - value properties: name: type: string description: Name of the characteristic value: $ref: '#/components/schemas/Any' description: The value of the characteristic TimePeriod: type: object description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both properties: endDateTime: type: string format: date-time description: End of the time period, using IETC-RFC-3339 format startDateTime: type: string format: date-time description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end ProductRef: type: object properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id ShoppingCart_UpdateSubmitOrderResponse: type: object properties: statusCode: type: string example: '0000' description: MADAPI canonical code statusMessage: type: string example: Successful transactionId: type: string description: A trace id for tracking request/response example: '43843948394' data: $ref: '#/components/schemas/ShoppingCart_UpdateSubmitOrderResponseData' CartItemRef: type: object properties: id: type: string description: Identifier of the cart item (generally it is a sequence number 01, 02, 03, ...) in the shopping cart quantity: type: integer description: Quantity of cart items product: allOf: - $ref: '#/components/schemas/ProductRef' - properties: productOffering: $ref: '#/components/schemas/ProductOfferingRef' relatedParty: type: array items: $ref: '#/components/schemas/RelatedParty' productCharacteristic: type: array items: $ref: '#/components/schemas/ProductCharacteristicRef' productPrice: type: array items: $ref: '#/components/schemas/PriceAlterationRef' ShoppingCart_UpdateShippingInfoResponse: type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string MediumCharacteristicOrderRef: type: object description: Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) properties: title: type: string middleName: type: string lastName: type: string firstName: type: string emailAddress: type: string description: Full email address in standard format phoneNumber: type: string description: The primary phone number of the contact socialNetworkId: type: string description: Identifier as a member of a social network '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ProductOrderItemRef: type: object properties: productOrderId: type: string orderItemId: type: string CartItemOrder: type: object properties: status: type: string enum: - INTIAL id: type: string product: $ref: '#/components/schemas/CartItemOrderProduct' itemPrice: type: array items: $ref: '#/components/schemas/CartPriceOrder' '@type': type: string ContactMediumPatchUserInfo: type: object description: Indicates the contact medium that could be used to contact the party. properties: characteristic: $ref: '#/components/schemas/MediumCharacteristicPatchUserInfo' description: Any additional characteristic(s) of this contact medium '@baseType': type: string description: When sub-classing, this defines the super-class RelatedPartyOrderRef: type: object description: Related Entity reference. A related party defines party or party role linked to a specific entity. properties: id: type: string description: Unique identifier of a related entity. name: type: string description: Name of the related entity. PriceRef: type: object properties: taxRate: type: number format: float description: Tax rate dutyFreeAmount: $ref: '#/components/schemas/Money' taxIncludedAmount: $ref: '#/components/schemas/Money' ShoppingCart_UpdateSubmitOrderResponseData: type: object description: 'Shopping Cart resource is used for the temporarily selection and reservation of product offerings in e-commerce, call center and retail purchase. Shopping cart supports purchase of both physical and digital goods and service (e.g. handset, telecom network service). Shopping Cart contain list of cart items, a reference to customer (partyRole) or contact medium in case customer not exist, and the total items price including promotions Skipped properties: id,href,validFor,cartTotalPrice' properties: id: type: string cartTotalPrice: type: array items: $ref: '#/components/schemas/CartPriceOrder' cartItem: type: array items: $ref: '#/components/schemas/CartItemOrder' relatedParty: type: array items: $ref: '#/components/schemas/RelatedPartyOrderRef' validFor: $ref: '#/components/schemas/TimePeriod' contactMedium: type: array items: $ref: '#/components/schemas/ContactMediumOrderRef' '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name ProductOfferingRef: type: object description: ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information. properties: id: type: string description: Unique identifier of a related entity. href: type: string description: Reference of the related entity. name: type: string description: Name of the related entity. '@baseType': type: string description: When sub-classing, this defines the super-class '@schemaLocation': type: string format: uri description: A URI to a JSON-Schema file that defines additional attributes and relationships '@type': type: string description: When sub-classing, this defines the sub-class entity name '@referredType': type: string description: The actual type of the target instance when needed for disambiguation. required: - id Money: type: object description: A base / value business entity used to represent money properties: unit: type: string description: Currency (ISO4217 norm uses 3 letters to define the currency) value: type: number format: float description: A positive floating point number AgreementItemValueOrRef: type: object properties: value: type: string ContactMediumPatchShippingInfo: type: object description: Indicates the contact medium that could be used to contact the party. properties: characteristic: $ref: '#/components/schemas/MediumCharacteristicPatchShippingInfo' description: Any additional characteristic(s) of this contact medium '@baseType': type: string description: When sub-classing, this defines the super-class MediumCharacteristicPatchShippingInfo: type: object description: Describes the contact medium characteristics that could be used to contact a party (an individual or an organization) properties: addressVerification: type: string description: This parameter shows if the address was verified. enum: - true - false city: type: string description: The city example: Johannesburg complexName: type: string description: Middle name of customer example: Monovilla country: type: string description: The country example: South Africa deliveryType: type: string description: The type of delivery for the item enum: - eShipping - Ship To Customer - InStore emailAddress: type: string description: Full email address in standard format example: RobertoCarlos1234@gmail.com firstName: type: string description: First name of customer example: Roberto surname: type: string description: surname of customer example: Carlos landmark: type: string description: Landmark/Point of interest example: test phoneNumber: type: string description: The primary phone number of the contact example: 27811111123 phoneNumberAlt: type: string description: The primary phone number of the contact example: 27811141121 postCode: type: string description: Postcode example: 0699 province: type: string description: Province example: Gauteng state: type: string description: State example: Johannesburg street1: type: string description: Describes the street example: 303 Kotze suburb: type: string description: Suburb additionalInfo: type: object properties: deliveryInstruction: type: string description: Special instructions for the delivery example: Deliver after 5pm isShippingAndResidentialAddressSame: type: boolean residentialAddressId: type: string SubmitOrderProductItem: type: object properties: description: type: string isCustomerVisible: type: boolean example: false agreement: type: array items: $ref: '#/components/schemas/AgreementItemValueOrRef' productOrderItem: type: array items: $ref: '#/components/schemas/ProductOrderItemRef' relatedParty: type: array items: $ref: '#/components/schemas/RelatedPartyOrderRef' ShoppingCart_UpdateOrderResponse: type: object required: - statusCode - statusMessage - supportMessage - transactionId properties: statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string description: It is a unique id for the transaction and it's request being issued. data: type: object properties: id: type: string description: The unique ID identifies the order ID to use when looking up the order. example: o220001 securitySchemes: ApiKeyAuth: type: apiKey name: X-API-Key in: header OAuth2: type: oauth2 flows: clientCredentials: scopes: {} tokenUrl: https://api.mtn.com/v1/oauth/access_token