CVVの更新
認証済みユーザーが所有する保存済みカードに、新しいカード確認値を送信します。
ヘッダー#
2パスパラメーター#
2リクエスト本文#
1レスポンス#
7CVVを更新する前に#
- 顧客を認証し、そのユーザーアクセストークンをAuthorizationヘッダーで送信します。
- パスのユーザーIDには認証済み顧客のUUIDを指定し、次の操作で返されたカードIDを使用します: 保存済みカードを一覧表示する.
- 保存済みカードのカード確認値(CVV)を顧客から取得します。カードはその顧客が所有し、有効な有効期限が設定されている必要があります。
更新リクエストを送信する#
テストには以下のサンドボックスのベースURLを使用し、本番環境には次を使用します: https://api.deuna.io 。必須のcard_cvv文字列に3桁または4桁のCVVを指定したJSONオブジェクトを送信します。クエリパラメーターはありません。この操作は既存のカードを更新します。カードの作成や顧客への請求は行いません。
curl --request POST \
--url 'https://api.sandbox.deuna.io/users/USER_ID/cards/CARD_ID/refresh-cvv' \
--header 'Authorization: Bearer USER_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"card_cvv":"123"}'const response = await fetch("https://api.sandbox.deuna.io/users/USER_ID/cards/CARD_ID/refresh-cvv", {
method: "POST",
headers: {
"Authorization": "Bearer USER_ACCESS_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"card_cvv": "123"
})
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();import requests
response = requests.request(
"POST",
"https://api.sandbox.deuna.io/users/USER_ID/cards/CARD_ID/refresh-cvv",
headers={
"Authorization": "Bearer USER_ACCESS_TOKEN",
"Content-Type": "application/json"
},
json={
"card_cvv": "123"
},
)
response.raise_for_status()
data = response.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.deuna.io/users/USER_ID/cards/CARD_ID/refresh-cvv",
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer USER_ACCESS_TOKEN",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"card_cvv" => "123"
])
]);
$response = curl_exec($curl);
curl_close($curl);import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sandbox.deuna.io/users/USER_ID/cards/CARD_ID/refresh-cvv"))
.header("Authorization", "Bearer USER_ACCESS_TOKEN")
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("{\"card_cvv\":\"123\"}"))
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString()
);
System.out.println(response.body());
}
}package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
request, err := http.NewRequest("POST", "https://api.sandbox.deuna.io/users/USER_ID/cards/CARD_ID/refresh-cvv", strings.NewReader("{\"card_cvv\":\"123\"}"))
if err != nil { panic(err) }
request.Header.Set("Authorization", "Bearer USER_ACCESS_TOKEN")
request.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(request)
if err != nil { panic(err) }
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}結果を確認する#
リクエストが成功すると、空の本文とともにHTTP 204 No Contentが返されます。JSONとして解析しないでください。レスポンスはCVVの更新完了を確認するものであり、決済の完了を確認したり、カードのレスポンスでCVVを公開したりするものではありません。この操作の確認に決済Webhookは不要です。
次の手順に進みます: 決済リクエスト 。顧客の支払い準備ができたら実行してください。
エラーと再試行に対処する#
HTTP 400は無効な識別子、不正なJSON、またはCVVの欠落や無効な値を示します。HTTP 401は無効なユーザー認証を示します。HTTP 404は認証済みユーザーの保存済みカードが見つからないことを意味します。HTTP 422は期限切れのカード、無効な有効期限データ、またはCVVを更新できないカードを示します。再試行する前に入力を修正するか、別のカードを選択してください。
タイムアウトやサーバーエラーで結果が不明な場合は、CVVを自動的に再送信しないでください。この操作には冪等性キーの契約は定義されていません。有効なフロー内で顧客が再試行できるようにし、必要に応じてCVVを再度取得してください。次を参照してください: レスポンスコードとトラブルシューティング.
このページは役に立ちましたか?