Reveal VCN card data (Coming soon)
🚧 Coming soon — this endpoint is not yet available in Sandbox or Production. The documentation is published so you can prepare your integration; we'll announce in the changelog when it goes live.
Returns the card data (PAN, CVV and expiration) of an already-issued VCN, identified by the vcnId returned by Create VCN.
Use it to re-display the card data without re-issuing. The CVV is fetched on demand from the network on each call — it is never persisted.
Authentication: in addition to the API key/secret, this endpoint requires mTLS at the transport layer.
Security: the response returns PAN and CVV in clear text — keep them in memory only, do not log and do not cache them (the response comes with Cache-Control: no-store). The vcnId must belong to the authenticated client; otherwise, 404.
curl -X GET "https://api-sandbox.contasimples.com/credit-cards/v1/vcns/21624502/card" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://api-sandbox.contasimples.com/credit-cards/v1/vcns/21624502/card"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://api-sandbox.contasimples.com/credit-cards/v1/vcns/21624502/card", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api-sandbox.contasimples.com/credit-cards/v1/vcns/21624502/card", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api-sandbox.contasimples.com/credit-cards/v1/vcns/21624502/card')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"pan": "4656350026056026",
"cvv": "411",
"expirationDate": "06/31",
"holderName": "EXAMPLE COMPANY LTD"
}
{
"error": "Unauthorized",
"message": "Invalid or expired access token.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 401
}
{
"error": "Forbidden",
"message": "You do not have permission to perform this operation.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 403
}
{
"error": "Not Found",
"message": "The requested resource was not found.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 404
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred while processing the request.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 500
}
/credit-cards/v1/vcns/{vcnId}/cardTarget server for requests. Edit to use your own host.
Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN
Bearer TOKENIdentifier of the VCN returned at issuance (the vcnId field).
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN
Path Parameters
Responses
Card number (PAN). Must not be logged.
Security code (CVV). Never persisted.
Card expiration in MM/YY format (e.g. 06/31 = June 2031).
Cardholder name.