createInvoice method
Creates a draft invoice for an order created using the Orders API.
A draft invoice remains in your account and no action is taken. You must publish the invoice before Square can process it (send it to the customer's email address or charge the customer’s card on file).
Implementation
Future<Invoice> createInvoice({
required CreateInvoiceRequest request,
String? authToken,
}) async {
authToken ??= authenticationService.getCachedToken()?.accessToken;
Map<String, String> headers = {
"Authorization": "Bearer ${authToken ?? ""}",
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json',
};
Uri endpoint = Uri.https(
baseUrl, "/v2/invoices");
//print (endpoint.toString());
var response = await
http.post(endpoint, body: jsonEncode(request.toJson()), headers: headers);
if (response.statusCode == 200) {
print (jsonDecode(response.body));
return InvoiceResponse.fromJson(jsonDecode(response.body)).invoice!;
}
else {
print (response.body);
throw InvoiceException(statusCode: response.statusCode, message: InvoiceResponse.fromJson(jsonDecode(response.body)).errors?[0].detail?.toString());
}
}