Developer
  • Getting started keyboard_arrow_down

    Discover

    • arrow_forward
      EV Charging

      Discover our unattended POS solution for the ev market

    Our solutions

    • arrow_forward
      CCV Terminal

      Integrate with a CCV Terminal

    • arrow_forward
      SoftPOS

      Turn your own device into a payment terminal

    • arrow_forward
      CCV Online Payments

      Accepting online payments in your platform without technical knowledge

    • arrow_forward

    • arrow_forward

    Connect to the CCV Platform

    Integrate our products into your software. Let's make payment happen together!

    Look at all the possibilities
  • Documentation
  • API Reference
menu
    • expand_less Payment API
      • expand_more General
        • Communication
        • Environments
        • Authentication
        • Idempotency
        • Transaction Types
        • Webhooks
        • Notifications
        • Error Handling
        • Security & Privacy
        • Return URL
      • expand_more Online Payments
        • expand_more Quick Start
          • Initial Setup
          • Create Payment
        • expand_more Basic Operations
          • Create A Payment
          • Refund A Payment
          • Authorise & Capture Payments
          • Query The Payment Status
        • expand_more Payment Features
          • expand_more 3D-Secure 2
            • SCA And 3D-Secure 2
            • Compliance Guide
            • Out Of Scope Transactions
            • Exemptions
          • Payment Links
          • Merchant Initiated Payments
          • Embedded Card Payments
          • Mandates
          • Customers & Loyalty
          • Partial Payment
        • expand_more Payment Methods
          • American Express
          • Apple Pay
          • Google Pay
          • expand_more Bancontact
            • Bancontact Walled Initiated Payments (WIP)
            • Bancontact Deferred Sales
          • Bancontact Mobile
          • Banktransfer
          • IDEAL
          • Klarna
          • Landingpage
          • Maestro
          • Mastercard
          • Payconiq
          • Paypal
          • Visa
        • expand_more Payouts
          • Split Payout
          • Test Payout
        • expand_more Developer Resources
          • Currencies
          • Languages
          • Payment Testing
          • Test Cards
      • expand_more In-person Payments
        • expand_more SoftPOS
          • expand_more General
            • Getting Started
            • Device Requirements
            • SoftPOS TerminalIds
            • SoftPOS Errors
            • Currencies
            • Languages
            • Network And Connectivity
            • Release Notes
          • expand_more Basic Operations
            • Install A Terminal
            • Make A Payment
            • Handling Receipts
          • expand_more API Reference
            • SoftPOS - API Reference
    • expand_more Board Your Merchants At CCV
      • expand_more General
        • Getting Started
        • Authentication
      • expand_more Boarding API
        • StartOrder
        • AddSalesPackage
        • AddProductPSPStandalone
        • AddProductPSPSubmerchant
        • AddTerminalPackage
        • SetShoppingCartPricingDetails
        • SubmitOrder
        • Boarding
      • API Reference
    • expand_more Android Rest Beta API
      • expand_more General
        • Getting Started
        • Brands
        • Supported Languages
      • expand_more Basic Operations
        • Make A Payment
        • Cancel A Payment
        • Handling Receipts
        • Show Display Messages
        • Recover A Payment
      • expand_more Payment Features
        • Authorise & Capture
        • Capture
      • expand_more Terminal Features
        • Transaction Overview
        • Brands
        • Period Closing
        • Terminal - Status
      • expand_more Tokenization
        • Tokenization - Get A Card Token
        • Read A Mifare Card
        • Custom Text On Terminal
      • expand_more API Reference
        • API Reference
    • expand_more Android SDK
      • expand_more General
        • Getting Started
        • Demo Application - Android SDK
        • Result States
        • Language Codes
        • Error Handling
        • Logging
        • EP2
        • Download SDK
        • Release Notes
      • expand_more Basic Operations
        • Make A Payment
        • Stop Ongoing Payment
        • Recover A Payment - Android SDK
      • expand_more Payment Features
        • Account Selection - Android SDK
        • Additional Receipt Text - Android SDK
        • Allow Or Deny Card Brands - Android SDK
        • Authorisation By Voice - Android SDK
        • Authorise - Android SDK
        • Capture - Android SDK
        • Card Detection - Android SDK
        • Card Detection Deprecated - Android SDK
        • Card Token - Android SDK
        • Card Validation - Android SDK
        • Customer Display - Android SDK
        • E-Receipt - Android SDK
        • Manual Card Information Entry - Android SDK
        • Payment Reversal - Android SDK
        • Refund - Android SDK
        • Request Transaction Information - Android SDK
        • Reservation - Android SDK
        • German Eichrecht - Android SDK
      • expand_more SDK Guides
        • Activate Terminal - Android SDK
        • Card Circuits - Android SDK
        • Card Reader Status - Android SDK
        • Card Reader Status - Android SDK
        • Check Password - Android SDK
        • Factory Reset - Android SDK
        • Get Config - Android SDK
        • Get Status - Android SDK
        • Mobile Phone Prepaid - Android SDK
        • Online Agent - Android SDK
        • Partial Period Closing - Android SDK
        • Period Closing - Android SDK
        • Possible Transaction Types - Android SDK
        • Retrieve Last Ticket - Android SDK
        • Retrieve Open Pre Authorisations - Android SDK
        • Startup - Android SDK
        • Taxfree - Android SDK
        • Terminal Administration - Android SDK
        • Terminal Discovery - Android SDK
        • Ticket Reprint Period Closing - Android SDK
        • Transaction Overview - Android SDK
        • Check Password - Android SDK
      • expand_more Hardware Access
        • Getting Started
        • NFC - Android SDK
        • Printing - Android SDK
        • QR And Barcode Scanner - Android SDK
      • expand_more API Reference
        • API Documentation
    • Android App Requirements
    • expand_more Certification
      • Introduction
      • expand_more Attended Certification Tests
        • expand_more Aborting
          • F1A - Regular Abort By Merchant
          • F1B - Failing Abort By Merchant
          • F1D - Hammering Abort By Merchant
        • expand_more Allowed Amounts
          • S1A - Transaction With Amount Of EUR 0,00
          • S1B - Transaction With Negative Amount
          • S1C - Transaction With Highest Possible Amount
          • S1D - Over-Amount Transaction
        • expand_more Connection Lost
          • Q1B - Manual Transaction Recovery
          • Q1C - Ethernet Connection With ITS Fails
          • Q1F - Device Unavailable
          • Q1G - Terminal Not Responding
          • T1A - Automatic Transaction Recovery
        • expand_more E Journal
          • M1A - Store E-Journal
          • M2A - ECR/POS Print Journal Receipts
          • M3A - ECR/POS Storing Journal Receipts
        • expand_more Reprint Ticket
          • L1A - Reprint Ticket
          • L1B - Reprint Ticket Declined Transaction
          • L2A - Reprint Ticket No Printer Available
          • L2B - Reprint Ticket Declined Transaction No Printer Available
        • expand_more Tickets
          • U1A - Request For Identification
          • U1B - Request For Signature
          • U1C - Request For Signature And Identification
          • U1D - Failing Transaction No Receipt
          • U1E - Split Payment
        • expand_more Time Out
          • R1A - Time Out On Presenting A Card
          • R1B - Time Out During Pin Entry
        • expand_more Transactions
          • C1A - Happy Flow
          • C1B - Happy Flow Contactless
          • C1D - Happy Flow Magnetic Stripe
          • C1E - Declined Transaction By Host
          • C1E - Transaction Aborted By Cardholder
          • C1F - Absence Of Thousand Separator
          • C1G - Cashier Display Messages
        • expand_more Validation
          • H1A - Too Many Fingers
          • H1B - Not Removing Card
          • H2A - Power Loss Or Closing Of ECR/POS During Transaction
      • expand_more Unattended Certification Tests
        • expand_more User Guidance
          • C1 - Successful Payment
          • C2 - Next Cardholder
          • C3 - Abort On PIN Entry
          • C4 - Time Out During PIN Entry
          • C5 - No Amount Entered
          • C6 - Language Selection
          • C7 - Amount To Authorise
          • C8 - Available Funds
        • expand_more Device Selection
          • D1 - Device Selection
          • D2 - Invalid Device
          • D3 - Charger Selection Abort
          • D4 - No Charger Selected
          • D5 - Authorisation With No Free Devices
        • expand_more Product Delivery
          • E1 - Product Selection
          • E2 - Enabled Products
          • E3 - Invalid Product Entered
          • E4 - Product Selection Aborted
          • E5 - No Product Selected
          • E6 - Max Delivery Time
          • E7 - Abort Session
          • E7 - Abort By POS
          • E9 - Not Started Charging In Time
          • E10 - Take More Fuel Than AVF
          • E10 - Multiple Sessions Mixed
          • E12 - Postpone Card Financial Advice On New Cardholder Card
          • E13 - Abort Session On Card Reinsert
        • expand_more Receipts
          • F1 - Cardholder Retrieve Receipt Info
          • F2 - Cardholder Receipt Retrieval
          • F3 - Reprint Ticket
          • F4 - F8 - Ticket Printing And Content
          • F9 - TrackingToken Deleted
          • F10 - Printer Paper Low
          • F11 - CardPayment Erased From Storage
          • F12 - E-Receipt Received By Cardholder
          • F13 - E-Receipt Failure
        • expand_more Transaction Limit Handeling Maestro
          • G1 - Maestro CardPayment 1 Euro
          • G2 - Maestro CardPayment 30 Euro
          • G3 - Maestro CardPayment 60 Euro
          • G4 - Maestro CardPayment 500 Euro
        • expand_more Transaction Limit Handeling Mastercard
          • H1 - Mastercard CardPayment 1 Euro
          • H2 - Mastercard CardPayment 30 Euro
          • H3 - Mastercard CardPayment 60 Euro
          • H4 - Mastercard CardPayment 500 Euro
        • expand_more Mifare Handling
          • I1 - Happy Flow Mifare
          • I2 - Unknown Mifare Card
          • I3 - No Mifare Card Presented
          • I4 - Mastercard Presented
        • expand_more Card Circuits
          • L1 - Available Card Circuits
        • expand_more Reconciliation
          • M1 - Reconciliation As Function
          • M2 - Reconciliation By New Shiftnumber
          • M3 - POS Auto Triggers Reconciliation With Closure
        • expand_more Journal
          • N1 - Journal Accessible By Authorized Employees
          • N2 - Journal Cannot Be Altered
        • expand_more Exception Flows
          • O1 - Unknown Card Session
          • O2 - Maximum Time Out
          • O3 - Device Unavailable
          • O4 - Time Out Card-Type Fallback
          • O5 - Time Out On Presenting Card
          • O6 - App Stability
          • O7 - Automatic Startup
          • O8 - Sleep Mode Not Supported
          • O8 - Sleep Mode Supported
        • expand_more Recovery
          • X1 - Recovery After Communication Failure
          • X2 - Recovery After CCV Component Update
          • X3 - Recovery After 24 Hour Reboot
          • X4 - Recovery After CCV-Fusion Client Restart
          • Y1 - Recovery After Power Failure With No Battery Backup
          • Y2 - Recovery After Power Failure With Battery Backup
      • expand_more SoftPOS Certification Tests
        • expand_more Success Scenarios
          • Installation Success - SoftPOS Certification Test
          • Payment Success - SoftPOS Certification Test
        • expand_more Failed Scenarios
          • Installation Failed - CCV SoftPOS App Not Installed - SoftPOS Certification Test
          • Payment Failed - Declined - SoftPOS Certification Test
          • Payment Failed - CCV SoftPOS App Is Closed During Payment - SoftPOS Certification Test
          • Payment Failed -CCV SoftPOS App Is Killed During Payment - SoftPOS Certification Test
          • Payment Failed - SoftPOS App Not Installed Anymore - SoftPOS Certification Test
        • expand_more Other Scenarios
          • Other Scenario - Data Cleared Of The CCV SoftPOS App - SoftPOS Certification Test
    • expand_more Development Kits
      • SoftPOS Dev Kit
      • IM30 Dev Kit
    • Glossary

Payment API

  • Payment
  • Transaction Query
  • Balance
  • Cancel
  • Refund
  • Payout
  • Capture
  • Mandate
  • Method
  • Release
  • Reversal
  • SoftPOS
  • Status
  • Token
  • Transaction Confirm
  • Transaction Export
  • Transaction Update
  • Vault
  • Void

What's on this page

  • Token
    • Typical token creation flow
      • Status Verification
    • Token types
      • Card Token
      • Web Token
    • Token object
    • Token request
    • Token Response
    • Read token request
    • Read token response
    • PCI token request
    • PCI token response
    • Token data request
    • Token data response
API Reference / Token

Token

A token resource represents a tokenized PAN or IBAN.

Note: if you call the token resource in operating mode TEST, you will not get a real token. The simulated token contains the reversed pan with a prefix and should not be used to store in a production system.

Typical token creation flow

The general flow is:

  1. You create a new token
  2. Redirect the customer to us
  3. We ask for the PAN or IBAN in order to calculate the token
  4. When the calculation is done, we redirect the customer back to your shop
  5. You read a token to get the token.

Status Verification

We do not expose the token to the customer. It is up to you to verify the status of the token request and act accordingly. Webhooks are provided to give you feedback, but this principle remains.

Token types

Two types of token are supported, being card tokens and web tokens.

Card Token

A card token is a token calculated from the complete PAN of a credit or debit card. This token will always consist of the prefix 99 followed by 16 characters given a token of 18 characters long.

Example 991234567890123456

Web Token

A web token is calculated on (part of) the IBAN of a debit card. Reason for this addition to the Token Service Provider is that there are countries where the banks do no print the PAN on their debit cards. Examples are the Netherlands and Germany.

Netherlands

For the Netherlands the IBAN is as follows

Example NL91ABNA0417164300

  • 2 char country code (NL)
  • 2 char check digits (91)
  • 4 char bank code (ABNA)
  • 10 char account number (0417164300)

The NL Web Token is calculated using the 10 char account number and is prefixed with 96.

Note: The banks BUNQ and KNAB are not supported in the TSP. Example 961234567890123456

Germany

For Germany the IBAN is as follows

Example DE89370400440532013000

  • 2 char country code (DE)
  • 2 char check digits (89)
  • 8 char bank code (37040044)
  • 10 char account number (0532013000)

The bank code needs to be converted to the institute number using the table from the Bundesbank Germany. The NL Web Token is calculated using the institute number and the account number and is always prefixed with 95.

Others

For other countries there is no support for token calculation based on IBAN.

Token object

Name Description
type Fixed value: token
token The token, a max 18 long string identifying the given PAN/IBAN
tokenMaskedInput If a token was created, the input (PAN or IBAN) will be returned, masked.
status Possible values: Transaction Status
description A description to show the customer
language The language of the customer. Possible values: Languages
metadata An arbitrary, max 255 character long string that can be used to track payments
payUrl To complete the tokenization request the customer should be redirected to this URL.
returnUrl After tokenization is completed (successfully or otherwise) the customer is redirected to this URL
reference A unique reference for the tokenization request
created The local server datetime the tokenization request was created, epoch timestamp
lastUpdate The local server datetime the tokenization request was updated, epoch timestamp
statusFinalDate The local server datetime the tokenization request reached a final status, epoch timestamp
failureCode An error code indication what caused the failure. Possible values: Failure Codes
cardDataUrl To complete a card tokenization request the customer can also submit card data directly to this URL using an HTTP post.

Example

{
  "type" : "token",
  "token" : "998171576462127534",
  "tokenMaskedInput" : "DE60xxxxxxxxxxxxxx6789",
  "status" : "success",
  "description" : "A token description",
  "language" : "eng",
  "metadata" : "CFED8B1C8B9F292500E2E837767900BF2448EE28",
  "reference" : "AC130090D6C19A09CD4B8B3EECCE199AD895B6E0",
  "created" : 1420106400000,
  "lastUpdate" : 1420106700000,
  "statusFinalDate" : 1420106700000,
  "returnUrl" : "http://shop?order=CFED8B1C8B9F292500E2E837767900BF2448EE28"
}

Token request

The token request is used to create a new token.

  • Resource: /api/v1/token
  • Method: POST
  • Content-Type: application/json
  • Authentication: basic auth
  • Parameters
Name Required Method Description
returnUrl Yes All The URL to redirect the customer to after completion of the tokenization request (both success and failure scenarios)
metadata No All An arbitrary, max 255 long string that can be used to track tokenization requests
description No All A description to show the customer
language Yes All The language of the customer. Possible values: Languages
webhookUrl No All The webhook URL invoked for transaction changes. This overrides the merchant webhook if one is present. We do not validate this url
tokenType No All The type of token that is requested. Possible values: card or web. Default is card

Example

{
  "returnUrl" : "http://shop?order=436D2D8278789F4B2D618E301C875708B58F7A82",
  "metadata" : "436D2D8278789F4B2D618E301C875708B58F7A82",
  "description" : "API token description",
  "language" : "eng",
  "tokenType" : "card"
}

Token Response

  • Status Code: 200
  • Content Type: application/json
  • Content: Token

Read token request

The token read request is used to read information of a given token.

  • Resource: /api/v1/token?reference={reference}
  • Method: GET
  • Authentication: basic auth
  • Parameters: reference: The unique reference of the token request

Read token response

  • Status Code: 200
  • Content Type: application/json
  • Content: Token

PCI token request

If you have a PCI compliant environment you can also choose to transmit the sensitive PAN or IBAN information directly to obtain a token. Either the PAN or the IBAN should be filled in and a token will be calculated accordingly.

  • Resource: /api/v1/token/pci
  • Method: POST
  • Content-Type: application/json
  • Authentication: basic auth
  • Parameters
Name Required Description
pan No The PAN, without spaces or any other separation characters, with a maximum of 19 characters
iban No The IBAN, must be valid, without spaces or any other separation characters
metadata No An arbitrary, max 255 long string that can be used to track token requests

Example

curl https://api.psp.ccv.eu/api/v1/token/pci -u apikey:
{
  "pan" : "6799998900000010062",
  "metadata" : "436D2D8278789F4B2D618E301C875708B58F7A82"
}

PCI token response

  • Status Code: 200
  • Content Type: application/json
  • Content: Token
{
  "metadata": "436D2D8278789F4B2D618E301C875708B58F7A82",
  "reference": "T1506161514118975.1",
  "token": "995336783076747372",
  "tokenMaskedInput" : "6799xxxxxxxxxxx0062"
}

Token data request

Normally the payUrl is used to obtain the token data from the customer or token data is directly supplied via token data in the request. Alternatively, the customer can submit the card data from a mobile app or browser to the cardDataUrl without requiring authentication. However, PCI compliance may be required:

  • If the card data is provided directly by the customer to the PSP, No PCI compliance is required. E.g.: Mobile app or browser uses the cardDataUrl to submit the card data directly to the PSP.

  • If the card data passes through the integrator’s backend system, PCI compliance is always required. E.g.: Mobile app or browser submits card data to integrator’s backend system which in turn uses the cardDataUrl to submit the data to the PSP.

  • Resource: cardDataUrl e.g. https://onlinepayments.ccv.eu/token/carddata/embedded?reference=YOUR_REFERENCE_HERE

  • Method: POST

  • Content-Type: application/json

  • Authentication: None

  • Parameters

Name Required Description
pan Yes The primary account number. All spaces and dashes are removed

Example

{
  "pan": "67032222222222227"
}

Token data response

  • Status Code: 200

Go to

Home
Documentation




Cookies Privacy Statement