Update a Card
Update card details including cardholder name, expiration date, billing address, and postal code. All update parameters are optional.
API Credentials
Request Parametersโ
Required - 2 fieldsPath Parameters
`id`STRING(required)
Customer ID (must be a valid customer ID starting with cust_).
`card_id`STRING(required)
Card ID (must be a valid card ID starting with card_).
Additional - 3 fieldsCard Information Updates
Additional - 2 fieldsBilling Address Updates
Responsesโ
200
Card updated successfullyCard object returned with updated information.
Updatable fields:
name- Cardholder nameexpiration_month- Card expiration monthexpiration_year- Card expiration yearcity- Billing citypostal_code- Billing postal code
- Card number (create new card instead)
- Card brand
- Issuing bank
- Fingerprint
400
Bad requestInvalid parameters provided.
Common causes:
- Invalid expiration month (not between 1-12)
- Past expiration date
- Invalid year format
401
UnauthorizedAuthentication failed. Invalid or missing API key.
Common causes:
- Missing Authorization header
- Invalid secret key
- Using public key instead of secret key
- Incorrect HTTP Basic Auth format
404
Not foundCustomer or card not found.
Common causes:
- Customer ID does not exist
- Card ID does not exist
- Card does not belong to the specified customer
Code samplesโ
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/customers/cust_test_5xuy4w91xqz7d1w9u0t/cards/card_test_5xuy4w91xqz7d1w9u0t \
-X PATCH \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d "name=JOHN DOE" \
-d "expiration_month=12" \
-d "expiration_year=2026"
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
card = Omise::Card.update(
'card_test_5xuy4w91xqz7d1w9u0t',
{
customer_id: 'cust_test_5xuy4w91xqz7d1w9u0t',
name: 'JOHN DOE',
expiration_month: 12,
expiration_year: 2026
}
)
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
customer = omise.Customer.retrieve('cust_test_5xuy4w91xqz7d1w9u0t')
card = customer.update_card('card_test_5xuy4w91xqz7d1w9u0t',
name='JOHN DOE',
expiration_month=12,
expiration_year=2026
)
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const card = await omise.customers.updateCard(
'cust_test_5xuy4w91xqz7d1w9u0t',
'card_test_5xuy4w91xqz7d1w9u0t',
{
name: 'JOHN DOE',
expiration_month: 12,
expiration_year: 2026
}
);
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$customer = OmiseCustomer::retrieve('cust_test_5xuy4w91xqz7d1w9u0t');
$card = $customer->updateCard('card_test_5xuy4w91xqz7d1w9u0t', [
'name' => 'JOHN DOE',
'expiration_month' => 12,
'expiration_year' => 2026
]);
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
Card card = client.customer("cust_test_5xuy4w91xqz7d1w9u0t")
.card("card_test_5xuy4w91xqz7d1w9u0t")
.update()
.name("JOHN DOE")
.expirationMonth(12)
.expirationYear(2026)
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var card = await client.Customers.UpdateCard(
"cust_test_5xuy4w91xqz7d1w9u0t",
"card_test_5xuy4w91xqz7d1w9u0t",
new UpdateCardRequest
{
Name = "JOHN DOE",
ExpirationMonth = 12,
ExpirationYear = 2026
}
);
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
card, _ := client.Cards().UpdateCard(
"cust_test_5xuy4w91xqz7d1w9u0t",
"card_test_5xuy4w91xqz7d1w9u0t",
&operations.UpdateCard{
Name: "JOHN DOE",
ExpirationMonth: 12,
ExpirationYear: 2026,
},
)
Error and result codesโ
Common Error Codesโ
| Code | Description | Resolution |
|---|---|---|
bad_request | Invalid parameters | Check expiration date and month values |
authentication_failure | Invalid API key | Verify your secret key is correct |
not_found | Customer or card not found | Verify IDs exist and card belongs to customer |
invalid_parameters | Invalid expiration date | Check date is in the future |
Updatable Card Fieldsโ
| Field | Description |
|---|---|
name | Updated cardholder name |
expiration_month | Updated expiration month (1-12) |
expiration_year | Updated expiration year (YYYY) |
city | Updated billing city |
postal_code | Updated billing postal code |
Try it outโ
Required - 2 fields
Additional - 5 fields