Lua Requires Chilkat v9.5.0.65+
Lua
PayPal - Delete Draft Invoice
See more PayPal Examples
Deletes a draft invoice, by ID. Note that this call works for invoices in the draft state only. For invoices that have already been sent, you can cancel the invoice.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- Load our previously obtained access token. (see PayPal OAuth2 Access Token)
local jsonToken = chilkat.JsonObject.new()
jsonToken:load_file("qa_data/tokens/paypal.json")
-- Build the Authorization request header field value.
local sbAuth = chilkat.StringBuilder.new()
-- token_type should be "Bearer"
sbAuth:append(jsonToken:string_of("token_type"))
sbAuth:append(" ")
sbAuth:append(jsonToken:string_of("access_token"))
-- Make the initial connection.
-- A single REST object, once connected, can be used for many PayPal REST API calls.
-- The auto-reconnect indicates that if the already-established HTTPS connection is closed,
-- then it will be automatically re-established as needed.
local rest = chilkat.Rest.new()
local bAutoReconnect = true
local success = rest:connect("api.sandbox.paypal.com", 443, true, bAutoReconnect)
if not success then
print(rest.last_error_text)
return
end
-- ----------------------------------------------------------------------------------------------
-- The code above this comment could be placed inside a function/subroutine within the application
-- because the connection does not need to be made for every request. Once the connection is made
-- the app may send many requests..
-- ----------------------------------------------------------------------------------------------
rest:add_header("Authorization", sbAuth:get_as_string())
local invoiceId = "INV2-29Z4-EB7M-MUCY-327J"
local sbPath = chilkat.StringBuilder.new()
sbPath:append("/v1/invoicing/invoices/")
sbPath:append(invoiceId)
-- Send the DELETE request and get the JSON response.
local sbJsonResponse = chilkat.StringBuilder.new()
success = rest:full_request_no_body_sb("DELETE", sbPath:get_as_string(), sbJsonResponse)
if not success then
print(rest.last_error_text)
return
end
-- A 204 response is expected for success.
print("Response Status Code = " .. rest.response_status_code)
-- Did we get a 204 success response?
if rest.response_status_code ~= 204 then
print("Failed.")
return
end
print("Received successful 204 status code response.")
print("There is no response body, as expected.")
print("Success.")