Secure Card Capture
Secure Card Capture key pairs are used to encrypt cardholder data client-side (via Verifone.JS or Verifone Checkout) before it is transmitted to the API. The public_key_alias returned here is required on all encrypted card requests.
Generate Key Pair
Creates a new public/private key pair and returns the public key and its alias.
Generate a new public/private key pair
Key Result
This is the public key required to encrypt the card data at client side before sending to Greenbox
Public Key Alias
The time that this key was created.
Bad Request
Unauthorised
Forbidden
Not Found
Internal Server Error
POST /oidc/api/v2/key HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Basic username:password
Accept: */*
{
"public_key": "text",
"public_key_alias": "text",
"created_at": "2026-01-01T00:00:00.000Z"
}List Active Key Pairs
Returns all currently active public keys. Share these with client-side integrations to encrypt card data.
This will return the active public keys that can be shared with a merchant to encrypt card data prior to send.
Key Result
Bad Request
Unauthorised
Forbidden
Not Found
Internal Server Error
GET /oidc/api/v2/key HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Basic username:password
Accept: */*
{
"public_keys": [
{
"public_key": "text",
"public_key_alias": "text",
"created_at": "2026-01-01T00:00:00.000Z"
}
]
}Deactivate Key Pair
Sets a key pair's status to inactive. Requests using this key alias will be rejected after deactivation.
Deactivating a key pair will cause all in-flight encrypted card payloads using that alias to fail. Coordinate rollover carefully.
This sets the status of the key pair to inactive.
Success. Key pair deactivated.
No content
Bad Request
Unauthorised
Forbidden
Not Found
Internal Server Error
PATCH /oidc/api/v2/key/{keyAlias}/deactivate HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Basic username:password
Accept: */*
No content
Encryption Payload Format
The JSON to encrypt must include the card data fields and a captureTime in UTC RFC 3339 format. Example:
Encrypt the entire JSON as a single line (no whitespace) using the public key. Pass the Base64-encoded result as encrypted_card, along with public_key_alias, in your payment or token request.
Was this helpful?
