Manage a Customers Wallet

Your customers may wish to remove a saved instrument from their wallet after it has been saved. You can easily allow customers to remove saved instruments from their wallet using the delete instrument feature.

Delete an Instrument

curl --location --request DELETE 'https://dev-api.wpay.com.au/wow/v1/pay/instore/customer/instruments/{{paymentInstrumentId}}' \
--header 'X-Api-Key: {{yourAPIKey}}' \
--header 'Authorization: Bearer {{yourBearerToken}}' \
var myHeaders = new Headers();
var environment = "substitute environment-value here"
var yourAPIkey = "YOUR-API-KEY";
var accessToken = "ACCESS-TOKEN";
var paymentInstrumentId = 1127915;

myHeaders.append("Content-Type", "application/json");
myHeaders.append("X-Api-Key", yourAPIkey);
myHeaders.append("Authorization", `Bearer ${accessToken}`);

var raw = "";

var requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://${environment}.wpay.com.au/wow/v1/pay/instore/customer/instruments/${paymentInstrumentId}", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

var semaphore = DispatchSemaphore (value: 0)

let yourAPIkey = "YOUR-API-KEY";
let environment = "substitute environment-value here"
let accessToken = "ACCESS-TOKEN";
let paymentInstrumentId = 1127915;

var request = URLRequest(url: URL(string: "https://\(environment).wpay.com.au/wow/v1/pay/instore/customer/instruments/\(paymentInstrumentId)")!,timeoutInterval: Double.infinity)
request.addValue(yourAPIkey, forHTTPHeaderField: "X-Api-Key")
request.addValue("Bearer \(accessToken)", forHTTPHeaderField: "Authorization")

request.httpMethod = "DELETE"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    semaphore.signal()
    return
  }
  print(String(data: data, encoding: .utf8)!)
  semaphore.signal()
}

task.resume()
semaphore.wait()
var yourAPIkey = "YOUR-API-KEY"
var environment = "substitute environment-value here"
var accessToken = "ACCESS-TOKEN"
var paymentInstrumentId = 1127915

val response = khttp.delete(
  url = "https://$environment" + 
        ".wpay.com.au/wow/v1/pay/instore/customer/instruments/$paymentInstrumentId",
  headers = mapOf("Content-Type" to "application/json1",
                  "X-Api-Key" to yourAPIkey,
                 "Authorization", "Bearer $accessToken")
)

if(response.statusCode == 204) {
  print("Deleted paymentInstrumentId: $paymentInstrumentId")
} else {
  handleError(response)
}

Once an instrument is successfully deleted from a customer's wallet it will no longer be returned when retrieving a customer's wallet.

🚧

Instruments Linked to Payment Agreements

An instrument linked to an existing active payment agreement cannot be deleted from a customers wallet. The payment agreement will need to be updated to a new payment instrument or the payment agreement must be expired/deleted before the instrument can be removed.