Customers
Delete Payment Method
고객과 연관된 결제 수단을 삭제합니다.
DELETE
/
customers
/
{customer_id}
/
payment-methods
/
{payment_method_id}
JavaScript
import DodoPayments from 'dodopayments';
const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});
await client.customers.deletePaymentMethod('payment_method_id', {
customer_id: 'cus_TV52uJWWXt2yIoBBxpjaa',
});import os
from dodopayments import DodoPayments
client = DodoPayments(
bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted
)
client.customers.delete_payment_method(
payment_method_id="payment_method_id",
customer_id="cus_TV52uJWWXt2yIoBBxpjaa",
)package main
import (
"context"
"github.com/dodopayments/dodopayments-go"
"github.com/dodopayments/dodopayments-go/option"
)
func main() {
client := dodopayments.NewClient(
option.WithBearerToken("My Bearer Token"),
)
err := client.Customers.DeletePaymentMethod(
context.TODO(),
"cus_TV52uJWWXt2yIoBBxpjaa",
"payment_method_id",
)
if err != nil {
panic(err.Error())
}
}
package com.dodopayments.api.example;
import com.dodopayments.api.client.DodoPaymentsClient;
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;
import com.dodopayments.api.models.customers.CustomerDeletePaymentMethodParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();
CustomerDeletePaymentMethodParams params = CustomerDeletePaymentMethodParams.builder()
.customerId("cus_TV52uJWWXt2yIoBBxpjaa")
.paymentMethodId("payment_method_id")
.build();
client.customers().deletePaymentMethod(params);
}
}package com.dodopayments.api.example
import com.dodopayments.api.client.DodoPaymentsClient
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient
import com.dodopayments.api.models.customers.CustomerDeletePaymentMethodParams
fun main() {
val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()
val params: CustomerDeletePaymentMethodParams = CustomerDeletePaymentMethodParams.builder()
.customerId("cus_TV52uJWWXt2yIoBBxpjaa")
.paymentMethodId("payment_method_id")
.build()
client.customers().deletePaymentMethod(params)
}require "dodopayments"
dodo_payments = Dodopayments::Client.new(
bearer_token: "My Bearer Token",
environment: "test_mode" # defaults to "live_mode"
)
result = dodo_payments.customers.delete_payment_method(
"payment_method_id",
customer_id: "cus_TV52uJWWXt2yIoBBxpjaa"
)
puts(result)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Dodopayments\Client;
use Dodopayments\Core\Exceptions\APIException;
$client = new Client(
bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
environment: 'test_mode',
);
try {
$result = $client->customers->deletePaymentMethod(
'payment_method_id', customerID: 'cus_TV52uJWWXt2yIoBBxpjaa'
);
var_dump($result);
} catch (APIException $e) {
echo $e->getMessage();
}using DodoPayments.Client;
using DodoPayments.Client.Models.Customers;
DodoPaymentsClient client = new();
CustomerDeletePaymentMethodParams parameters = new()
{
CustomerID = "cus_TV52uJWWXt2yIoBBxpjaa",
PaymentMethodID = "payment_method_id",
};
await client.Customers.DeletePaymentMethod(parameters);use dodopayments::Client;
#[tokio::main]
async fn main() -> dodopayments::Result<()> {
let client = Client::from_env()?;
let customer_id = "customer_id";
let payment_method_id = "payment_method_id";
let result = client
.customers()
.delete_payment_method()
.customer_id(customer_id)
.payment_method_id(payment_method_id)
.await?;
println!("{result:?}");
Ok(())
}curl --request DELETE \
--url https://test.dodopayments.com/customers/{customer_id}/payment-methods/{payment_method_id} \
--header 'Authorization: Bearer <token>'고객 계정에서 저장된 결제 수단을 제거합니다. 오래되거나 원하지 않는 결제 수단을 정리할 때 사용하세요.
삭제가 성공하면
활성 구독에서 사용 중인 결제 수단은 삭제할 수 없습니다. API는
409 Conflict와 함께 Payment method is in use by an active subscription를 반환합니다. 먼저 결제 수단 업데이트를 사용하여 구독을 다른 결제 수단으로 변경한 다음 기존 결제 수단을 삭제하세요.204 No Content를 반환합니다.
사용 사례
- 고객 요청: 고객이 더 이상 등록해 두기를 원하지 않는 결제 수단 제거
- 만료된 카드: 만료된 카드 정보가 있는 결제 수단 정리
- 보안: 보안이 침해된 결제 수단 즉시 제거
마지막 수정일 2026년 8월 6일
⌘I
JavaScript
import DodoPayments from 'dodopayments';
const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});
await client.customers.deletePaymentMethod('payment_method_id', {
customer_id: 'cus_TV52uJWWXt2yIoBBxpjaa',
});import os
from dodopayments import DodoPayments
client = DodoPayments(
bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted
)
client.customers.delete_payment_method(
payment_method_id="payment_method_id",
customer_id="cus_TV52uJWWXt2yIoBBxpjaa",
)package main
import (
"context"
"github.com/dodopayments/dodopayments-go"
"github.com/dodopayments/dodopayments-go/option"
)
func main() {
client := dodopayments.NewClient(
option.WithBearerToken("My Bearer Token"),
)
err := client.Customers.DeletePaymentMethod(
context.TODO(),
"cus_TV52uJWWXt2yIoBBxpjaa",
"payment_method_id",
)
if err != nil {
panic(err.Error())
}
}
package com.dodopayments.api.example;
import com.dodopayments.api.client.DodoPaymentsClient;
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;
import com.dodopayments.api.models.customers.CustomerDeletePaymentMethodParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();
CustomerDeletePaymentMethodParams params = CustomerDeletePaymentMethodParams.builder()
.customerId("cus_TV52uJWWXt2yIoBBxpjaa")
.paymentMethodId("payment_method_id")
.build();
client.customers().deletePaymentMethod(params);
}
}package com.dodopayments.api.example
import com.dodopayments.api.client.DodoPaymentsClient
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient
import com.dodopayments.api.models.customers.CustomerDeletePaymentMethodParams
fun main() {
val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()
val params: CustomerDeletePaymentMethodParams = CustomerDeletePaymentMethodParams.builder()
.customerId("cus_TV52uJWWXt2yIoBBxpjaa")
.paymentMethodId("payment_method_id")
.build()
client.customers().deletePaymentMethod(params)
}require "dodopayments"
dodo_payments = Dodopayments::Client.new(
bearer_token: "My Bearer Token",
environment: "test_mode" # defaults to "live_mode"
)
result = dodo_payments.customers.delete_payment_method(
"payment_method_id",
customer_id: "cus_TV52uJWWXt2yIoBBxpjaa"
)
puts(result)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Dodopayments\Client;
use Dodopayments\Core\Exceptions\APIException;
$client = new Client(
bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
environment: 'test_mode',
);
try {
$result = $client->customers->deletePaymentMethod(
'payment_method_id', customerID: 'cus_TV52uJWWXt2yIoBBxpjaa'
);
var_dump($result);
} catch (APIException $e) {
echo $e->getMessage();
}using DodoPayments.Client;
using DodoPayments.Client.Models.Customers;
DodoPaymentsClient client = new();
CustomerDeletePaymentMethodParams parameters = new()
{
CustomerID = "cus_TV52uJWWXt2yIoBBxpjaa",
PaymentMethodID = "payment_method_id",
};
await client.Customers.DeletePaymentMethod(parameters);use dodopayments::Client;
#[tokio::main]
async fn main() -> dodopayments::Result<()> {
let client = Client::from_env()?;
let customer_id = "customer_id";
let payment_method_id = "payment_method_id";
let result = client
.customers()
.delete_payment_method()
.customer_id(customer_id)
.payment_method_id(payment_method_id)
.await?;
println!("{result:?}");
Ok(())
}curl --request DELETE \
--url https://test.dodopayments.com/customers/{customer_id}/payment-methods/{payment_method_id} \
--header 'Authorization: Bearer <token>'