# 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)`

    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. (required)
        The object takes the form of:

    {
        "operationId": "A String", # [required] The ID of the operation, unique across all operations for a given order.
        "invoiceSummary": { # [required] Invoice summary.
          "productTotal": { # [required] Total price for the product.
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "merchantBalance": { # Deprecated.
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "googleBalance": { # Deprecated.
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "pretax": { # [required] Value before taxes.
              "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.
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "pretax": { # [required] Value before taxes.
                  "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.
            },
          ],
          "customerBalance": { # Deprecated.
            "tax": { # [required] Tax value.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
            "pretax": { # [required] Value before taxes.
              "currency": "A String", # The currency of the price.
              "value": "A String", # The price represented as a number.
            },
          },
          "additionalChargeSummaries": [ # Summary of the total amounts of the additional charges.
            {
              "totalAmount": { # [required] Total additional charge for this type.
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "pretax": { # [required] Value before taxes.
                  "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.
            },
          ],
        },
        "invoiceId": "A String", # [required] The ID of the invoice.
        "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.
        "lineItemInvoices": [ # [required] Invoice details per line item.
          {
            "unitInvoice": { # [required] Invoice details for a single unit.
              "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.
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "pretax": { # [required] Value before taxes.
                      "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.
                {
                  "taxType": "A String", # [required] Type of the tax.
                  "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.
                },
              ],
              "additionalCharges": [ # Additional charges for a unit, e.g. shipping costs.
                {
                  "additionalChargeAmount": { # [required] Amount of the additional charge.
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "pretax": { # [required] Value before taxes.
                      "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.
                  "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.
                        "tax": { # [required] Tax value.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                        "pretax": { # [required] Value before taxes.
                          "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.
                    },
                  ],
                },
              ],
            },
            "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",
            ],
            "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.
          },
        ],
      }

    Returns:
      An object of the form:

        {
        "kind": "content#orderinvoicesCreateChargeInvoiceResponse", # Identifies what kind of resource this is. Value: the fixed string "content#orderinvoicesCreateChargeInvoiceResponse".
        "executionStatus": "A String", # The status of the execution.
      }

`createrefundinvoice(merchantId, orderId, body)`

    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. (required)
        The object takes the form of:

    {
        "shipmentInvoices": [ # Invoice details for different shipment groups.
          {
            "invoiceSummary": { # [required] Invoice summary.
              "productTotal": { # [required] Total price for the product.
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "merchantBalance": { # Deprecated.
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "googleBalance": { # Deprecated.
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "pretax": { # [required] Value before taxes.
                  "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.
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "pretax": { # [required] Value before taxes.
                      "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.
                },
              ],
              "customerBalance": { # Deprecated.
                "tax": { # [required] Tax value.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
                "pretax": { # [required] Value before taxes.
                  "currency": "A String", # The currency of the price.
                  "value": "A String", # The price represented as a number.
                },
              },
              "additionalChargeSummaries": [ # Summary of the total amounts of the additional charges.
                {
                  "totalAmount": { # [required] Total additional charge for this type.
                    "tax": { # [required] Tax value.
                      "currency": "A String", # The currency of the price.
                      "value": "A String", # The price represented as a number.
                    },
                    "pretax": { # [required] Value before taxes.
                      "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.
                },
              ],
            },
            "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.
            "lineItemInvoices": [ # [required] Invoice details per line item.
              {
                "unitInvoice": { # [required] Invoice details for a single unit.
                  "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.
                        "tax": { # [required] Tax value.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                        "pretax": { # [required] Value before taxes.
                          "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.
                    {
                      "taxType": "A String", # [required] Type of the tax.
                      "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.
                    },
                  ],
                  "additionalCharges": [ # Additional charges for a unit, e.g. shipping costs.
                    {
                      "additionalChargeAmount": { # [required] Amount of the additional charge.
                        "tax": { # [required] Tax value.
                          "currency": "A String", # The currency of the price.
                          "value": "A String", # The price represented as a number.
                        },
                        "pretax": { # [required] Value before taxes.
                          "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.
                      "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.
                            "tax": { # [required] Tax value.
                              "currency": "A String", # The currency of the price.
                              "value": "A String", # The price represented as a number.
                            },
                            "pretax": { # [required] Value before taxes.
                              "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.
                        },
                      ],
                    },
                  ],
                },
                "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",
                ],
                "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.
              },
            ],
          },
        ],
        "invoiceId": "A String", # [required] The ID of the invoice.
        "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.
          "reason": "A String", # [required] Reason for the return.
          "description": "A String", # Optional description of the return reason.
        },
        "refundOnlyOption": { # Option to create a refund-only invoice. Exactly one of refundOnlyOption or returnOption must be provided.
          "reason": "A String", # [required] Reason for the refund.
          "description": "A String", # Optional description of the refund reason.
        },
        "operationId": "A String", # [required] The ID of the operation, unique across all operations for a given order.
      }

    Returns:
      An object of the form:

        {
        "kind": "content#orderinvoicesCreateRefundInvoiceResponse", # Identifies what kind of resource this is. Value: the fixed string "content#orderinvoicesCreateRefundInvoiceResponse".
        "executionStatus": "A String", # The status of the execution.
      }