createrefundinvoice method

Future<OrderinvoicesCreateRefundInvoiceResponse> createrefundinvoice(
  1. OrderinvoicesCreateRefundInvoiceRequest request,
  2. String merchantId,
  3. String orderId, {
  4. String? $fields,
})

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.

request - The metadata request object.

Request parameters:

merchantId - The ID of the account that manages the order. This cannot be a multi-client account.

orderId - The ID of the order.

$fields - Selector specifying which fields to include in a partial response.

Completes with a OrderinvoicesCreateRefundInvoiceResponse.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<OrderinvoicesCreateRefundInvoiceResponse> createrefundinvoice(
  OrderinvoicesCreateRefundInvoiceRequest request,
  core.String merchantId,
  core.String orderId, {
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  final url_ = commons.escapeVariable('$merchantId') +
      '/orderinvoices/' +
      commons.escapeVariable('$orderId') +
      '/createRefundInvoice';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return OrderinvoicesCreateRefundInvoiceResponse.fromJson(
      response_ as core.Map<core.String, core.dynamic>);
}