Delete Payment Method
Permanently removes a stored payment method at both Azotte and the PSP. Not reversible.
URL
DELETE /api/c2a/customer/payment/methods/delete
Request Parameters
| Name | Type | Description |
|---|---|---|
p | string | Query parameter, required. Payment method URN. |
Response Parameters
PaymentMethodRemoveResponse wraps the removed AzottePaymentMethod snapshot.
| Name | Type | Description |
|---|---|---|
result | object (AzottePaymentMethod) | Removed method snapshot with state = Deleted. Null if not found. |
status | object (AzotteStatus) | Operation status envelope. PAYMENT_METHOD_NOT_FOUND on idempotent re-delete. |
Sample Response
{
"result": {
"paymentMethodUrn": "pm.00.482.7",
"state": "Deleted"
},
"status": { "messageCode": "SUCCESS" }
}
Not Found
{
"result": null,
"status": { "messageCode": "PAYMENT_METHOD_NOT_FOUND" }
}
Behaviour
- If the URN is referenced by an active subscription's billing instrument, the call still succeeds but the subscription's next renewal fails authorization and moves to
PastDue. Re-attach a method via the Subscription API before deleting. - Idempotent: deleting an already-deleted URN returns
PAYMENT_METHOD_NOT_FOUND.
Sample Codes
- cURL
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
curl --location --request DELETE \
'https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7' \
--header 'x-tn: e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f' \
--header 'x-api-key: sk_dev_acme_sample_123456789'
const res = await fetch(
'https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7',
{
method: 'DELETE',
headers: {
'x-tn': 'e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f',
'x-api-key': 'sk_dev_acme_sample_123456789'
}
}
);
console.log(await res.json());
import { request } from 'undici';
const { body } = await request(
'https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7',
{
method: 'DELETE',
headers: {
'x-tn': 'e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f',
'x-api-key': 'sk_dev_acme_sample_123456789'
}
}
);
console.log(await body.json());
import requests
res = requests.delete(
"https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete",
params={"p": "pm.00.482.7"},
headers={
"x-tn": "e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f",
"x-api-key": "sk_dev_acme_sample_123456789",
},
)
print(res.json())
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7"))
.header("x-tn", "e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f")
.header("x-api-key", "sk_dev_acme_sample_123456789")
.DELETE()
.build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("x-tn", "e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f");
http.DefaultRequestHeaders.Add("x-api-key", "sk_dev_acme_sample_123456789");
var res = await http.DeleteAsync(
"https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7");
Console.WriteLine(await res.Content.ReadAsStringAsync());
<?php
$ch = curl_init('https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => [
'x-tn: e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f',
'x-api-key: sk_dev_acme_sample_123456789',
],
]);
echo curl_exec($ch);
curl_close($ch);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE",
"https://acme.sandbox.azotte.com/api/v1/c2a/customer/payment/methods/delete?p=pm.00.482.7", nil)
req.Header.Set("x-tn", "e2a1c7b2-4f3a-4b8e-9c2d-1a2b3c4d5e6f")
req.Header.Set("x-api-key", "sk_dev_acme_sample_123456789")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(string(out))
}