Skip to main content
POST
/
core
/
external-accounts
Create external account
curl --request POST \
  --url https://api.enterprise.sandbox.uphold.com/core/external-accounts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "card",
  "label": "My Visa Card",
  "number": "4111111111111111",
  "securityCode": "123",
  "expiryDate": {
    "month": 12,
    "year": 2030
  },
  "metadata": {
    "externalId": 123
  }
}
'
{
"externalAccount": {
"id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
"ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
"type": "card",
"status": "processing",
"label": "My Visa Card",
"asset": "GBP",
"network": "visa",
"features": [],
"details": {
"last4Digits": "1519",
"expiryDate": {
"month": 12,
"year": 2030
},
"octSupport": "unknown"
},
"createdAt": "2024-06-01T00:00:00Z",
"updatedAt": "2024-07-15T00:00:00Z"
}
}
You can optionally include custom entity metadata in the metadata field to store your own business data (e.g., cardholder name, tracking information, custom labels). If not provided during creation, you can add it later using Set metadata.

Authorizations

Authorization
string
header
required

OAuth 2.0 authentication.

Body

application/json
type
enum<string>
required

The type of the external account.

Available options:
card
label
string
required

The label of the external account.

Maximum string length: 140
number
string
required

The number of the card.

securityCode
string
required

The security code of the card.

expiryDate
object
required
metadata
object

Additional data for the external account.

Response

External account created.

externalAccount
object
required
errors
object

Additional contextual errors that occurred while processing the request.