# Content API for Shopping . orderinvoices

## Instance Methods

Creates a charge invoice for a shipment group, and triggers a charge capture for orderinvoice enabled orders.

Creates a refund invoice for one or more shipment groups, and triggers a refund for orderinvoice enabled orders. This can only be used for line items that have previously been charged using `createChargeInvoice`. All amounts (except for the summary) are incremental with respect to the previous invoice.

### Method Details

`createchargeinvoice(merchantId, orderId, body=None)`

    Creates a charge invoice for a shipment group, and triggers a charge capture for orderinvoice enabled orders.

    Args:
      merchantId: string, The ID of the account that manages the order. This cannot be a multi-client account. (required)
      orderId: string, The ID of the order. (required)
      body: object, The request body.
        The object takes the form of:

    {
        "invoiceId": "A String", # [required] The ID of the invoice.
        "invoiceSummary": { # [required] Invoice summary.
          "additionalChargeSummaries": [ # Summary of the total amounts of the additional charges.
            {
              "totalAmount": { # [required] Total additional charge for this type.
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "type": "A String", # [required] Type of the additional charge.
                  #
                  # Acceptable values are:
                  # - "`shipping`"
            },
          ],
          "customerBalance": { # Deprecated.
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "googleBalance": { # Deprecated.
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "merchantBalance": { # Deprecated.
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "productTotal": { # [required] Total price for the product.
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "promotionSummaries": [ # Deprecated.
            {
              "promotionAmount": { # [required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts.
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "promotionId": "A String", # [required] ID of the promotion.
            },
          ],
        },
        "lineItemInvoices": [ # [required] Invoice details per line item.
          {
            "lineItemId": "A String", # ID of the line item. Either lineItemId or productId must be set.
            "productId": "A String", # ID of the product. This is the REST ID used in the products service. Either lineItemId or productId must be set.
            "shipmentUnitIds": [ # [required] The shipment unit ID is assigned by the merchant and defines individual quantities within a line item. The same ID can be assigned to units that are the same while units that differ must be assigned a different ID (for example: free or promotional units).
              "A String",
            ],
            "unitInvoice": { # [required] Invoice details for a single unit.
              "additionalCharges": [ # Additional charges for a unit, e.g. shipping costs.
                {
                  "additionalChargeAmount": { # [required] Amount of the additional charge.
                    "pretax": { # [required] Value before taxes.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                  },
                  "additionalChargePromotions": [ # Deprecated.
                    {
                      "promotionAmount": { # [required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts.
                        "pretax": { # [required] Value before taxes.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                        "tax": { # [required] Tax value.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                      },
                      "promotionId": "A String", # [required] ID of the promotion.
                    },
                  ],
                  "type": "A String", # [required] Type of the additional charge.
                      #
                      # Acceptable values are:
                      # - "`shipping`"
                },
              ],
              "promotions": [ # Deprecated.
                {
                  "promotionAmount": { # [required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts.
                    "pretax": { # [required] Value before taxes.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                  },
                  "promotionId": "A String", # [required] ID of the promotion.
                },
              ],
              "unitPricePretax": { # [required] Price of the unit, before applying taxes.
                "currency": "A String", # The currency of the price.
                "value": "A String", # The price represented as a number.
              },
              "unitPriceTaxes": [ # Tax amounts to apply to the unit price.
                {
                  "taxAmount": { # [required] Tax amount for the tax type.
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "taxName": "A String", # Optional name of the tax type. This should only be provided if `taxType` is `otherFeeTax`.
                  "taxType": "A String", # [required] Type of the tax.
                      #
                      # Acceptable values are:
                      # - "`otherFee`"
                      # - "`otherFeeTax`"
                      # - "`sales`"
                },
              ],
            },
          },
        ],
        "operationId": "A String", # [required] The ID of the operation, unique across all operations for a given order.
        "shipmentGroupId": "A String", # [required] ID of the shipment group. It is assigned by the merchant in the `shipLineItems` method and is used to group multiple line items that have the same kind of shipping charges.
      }

    Returns:
      An object of the form:

        {
        "executionStatus": "A String", # The status of the execution.
            #
            # Acceptable values are:
            # - "`duplicate`"
            # - "`executed`"
        "kind": "content#orderinvoicesCreateChargeInvoiceResponse", # Identifies what kind of resource this is. Value: the fixed string "content#orderinvoicesCreateChargeInvoiceResponse".
      }

`createrefundinvoice(merchantId, orderId, body=None)`

    Creates a refund invoice for one or more shipment groups, and triggers a refund for orderinvoice enabled orders. This can only be used for line items that have previously been charged using `createChargeInvoice`. All amounts (except for the summary) are incremental with respect to the previous invoice.

    Args:
      merchantId: string, The ID of the account that manages the order. This cannot be a multi-client account. (required)
      orderId: string, The ID of the order. (required)
      body: object, The request body.
        The object takes the form of:

    {
        "invoiceId": "A String", # [required] The ID of the invoice.
        "operationId": "A String", # [required] The ID of the operation, unique across all operations for a given order.
        "refundOnlyOption": { # Option to create a refund-only invoice. Exactly one of `refundOnlyOption` or `returnOption` must be provided.
          "description": "A String", # Optional description of the refund reason.
          "reason": "A String", # [required] Reason for the refund.
              #
              # Acceptable values are:
              # - "`adjustment`"
              # - "`autoPostInternal`"
              # - "`autoPostInvalidBillingAddress`"
              # - "`autoPostNoInventory`"
              # - "`autoPostPriceError`"
              # - "`autoPostUndeliverableShippingAddress`"
              # - "`couponAbuse`"
              # - "`courtesyAdjustment`"
              # - "`customerCanceled`"
              # - "`customerDiscretionaryReturn`"
              # - "`customerInitiatedMerchantCancel`"
              # - "`customerSupportRequested`"
              # - "`deliveredLateByCarrier`"
              # - "`deliveredTooLate`"
              # - "`expiredItem`"
              # - "`failToPushOrderGoogleError`"
              # - "`failToPushOrderMerchantError`"
              # - "`failToPushOrderMerchantFulfillmentError`"
              # - "`failToPushOrderToMerchant`"
              # - "`failToPushOrderToMerchantOutOfStock`"
              # - "`feeAdjustment`"
              # - "`invalidCoupon`"
              # - "`lateShipmentCredit`"
              # - "`malformedShippingAddress`"
              # - "`merchantDidNotShipOnTime`"
              # - "`noInventory`"
              # - "`orderTimeout`"
              # - "`other`"
              # - "`paymentAbuse`"
              # - "`paymentDeclined`"
              # - "`priceAdjustment`"
              # - "`priceError`"
              # - "`productArrivedDamaged`"
              # - "`productNotAsDescribed`"
              # - "`promoReallocation`"
              # - "`qualityNotAsExpected`"
              # - "`returnRefundAbuse`"
              # - "`shippingCostAdjustment`"
              # - "`shippingPriceError`"
              # - "`taxAdjustment`"
              # - "`taxError`"
              # - "`undeliverableShippingAddress`"
              # - "`unsupportedPoBoxAddress`"
              # - "`wrongProductShipped`"
        },
        "returnOption": { # Option to create an invoice for a refund and mark all items within the invoice as returned. Exactly one of `refundOnlyOption` or `returnOption` must be provided.
          "description": "A String", # Optional description of the return reason.
          "reason": "A String", # [required] Reason for the return.
              #
              # Acceptable values are:
              # - "`customerDiscretionaryReturn`"
              # - "`customerInitiatedMerchantCancel`"
              # - "`deliveredTooLate`"
              # - "`expiredItem`"
              # - "`invalidCoupon`"
              # - "`malformedShippingAddress`"
              # - "`other`"
              # - "`productArrivedDamaged`"
              # - "`productNotAsDescribed`"
              # - "`qualityNotAsExpected`"
              # - "`undeliverableShippingAddress`"
              # - "`unsupportedPoBoxAddress`"
              # - "`wrongProductShipped`"
        },
        "shipmentInvoices": [ # Invoice details for different shipment groups.
          {
            "invoiceSummary": { # [required] Invoice summary.
              "additionalChargeSummaries": [ # Summary of the total amounts of the additional charges.
                {
                  "totalAmount": { # [required] Total additional charge for this type.
                    "pretax": { # [required] Value before taxes.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                  },
                  "type": "A String", # [required] Type of the additional charge.
                      #
                      # Acceptable values are:
                      # - "`shipping`"
                },
              ],
              "customerBalance": { # Deprecated.
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "googleBalance": { # Deprecated.
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "merchantBalance": { # Deprecated.
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "productTotal": { # [required] Total price for the product.
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "promotionSummaries": [ # Deprecated.
                {
                  "promotionAmount": { # [required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts.
                    "pretax": { # [required] Value before taxes.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                  },
                  "promotionId": "A String", # [required] ID of the promotion.
                },
              ],
            },
            "lineItemInvoices": [ # [required] Invoice details per line item.
              {
                "lineItemId": "A String", # ID of the line item. Either lineItemId or productId must be set.
                "productId": "A String", # ID of the product. This is the REST ID used in the products service. Either lineItemId or productId must be set.
                "shipmentUnitIds": [ # [required] The shipment unit ID is assigned by the merchant and defines individual quantities within a line item. The same ID can be assigned to units that are the same while units that differ must be assigned a different ID (for example: free or promotional units).
                  "A String",
                ],
                "unitInvoice": { # [required] Invoice details for a single unit.
                  "additionalCharges": [ # Additional charges for a unit, e.g. shipping costs.
                    {
                      "additionalChargeAmount": { # [required] Amount of the additional charge.
                        "pretax": { # [required] Value before taxes.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                        "tax": { # [required] Tax value.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                      },
                      "additionalChargePromotions": [ # Deprecated.
                        {
                          "promotionAmount": { # [required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts.
                            "pretax": { # [required] Value before taxes.
                              "currency": "A String", # The currency of the price.
                              "value": "A String", # The price represented as a number.
                            },
                            "tax": { # [required] Tax value.
                              "currency": "A String", # The currency of the price.
                              "value": "A String", # The price represented as a number.
                            },
                          },
                          "promotionId": "A String", # [required] ID of the promotion.
                        },
                      ],
                      "type": "A String", # [required] Type of the additional charge.
                          #
                          # Acceptable values are:
                          # - "`shipping`"
                    },
                  ],
                  "promotions": [ # Deprecated.
                    {
                      "promotionAmount": { # [required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts.
                        "pretax": { # [required] Value before taxes.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                        "tax": { # [required] Tax value.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                      },
                      "promotionId": "A String", # [required] ID of the promotion.
                    },
                  ],
                  "unitPricePretax": { # [required] Price of the unit, before applying taxes.
                    "currency": "A String", # The currency of the price.
                    "value": "A String", # The price represented as a number.
                  },
                  "unitPriceTaxes": [ # Tax amounts to apply to the unit price.
                    {
                      "taxAmount": { # [required] Tax amount for the tax type.
                        "currency": "A String", # The currency of the price.
                        "value": "A String", # The price represented as a number.
                      },
                      "taxName": "A String", # Optional name of the tax type. This should only be provided if `taxType` is `otherFeeTax`.
                      "taxType": "A String", # [required] Type of the tax.
                          #
                          # Acceptable values are:
                          # - "`otherFee`"
                          # - "`otherFeeTax`"
                          # - "`sales`"
                    },
                  ],
                },
              },
            ],
            "shipmentGroupId": "A String", # [required] ID of the shipment group. It is assigned by the merchant in the `shipLineItems` method and is used to group multiple line items that have the same kind of shipping charges.
          },
        ],
      }

    Returns:
      An object of the form:

        {
        "executionStatus": "A String", # The status of the execution.
            #
            # Acceptable values are:
            # - "`duplicate`"
            # - "`executed`"
        "kind": "content#orderinvoicesCreateRefundInvoiceResponse", # Identifies what kind of resource this is. Value: the fixed string "content#orderinvoicesCreateRefundInvoiceResponse".
      }