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_less 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_less 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

  • General
    • Communication
    • Environments
    • Authentication
    • Idempotency
    • Transaction Types
    • Webhooks
    • Notifications
    • Error Handling
    • Security & Privacy
    • Return URL
  • Online Payments
    • Quick Start expand_more
      • Initial Setup
      • Create Payment
    • Basic Operations expand_more
      • Create A Payment
      • Refund A Payment
      • Authorise & Capture Payments
      • Query The Payment Status
    • Payment Features
      • 3D-Secure 2 expand_more
        • 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
    • Payment Methods expand_more
      • American Express
      • Apple Pay
      • Google Pay
      • Bancontact expand_more
        • Bancontact Walled Initiated Payments (WIP)
        • Bancontact Deferred Sales
      • Bancontact Mobile
      • Banktransfer
      • IDEAL
      • Klarna
      • Landingpage
      • Maestro
      • Mastercard
      • Payconiq
      • Paypal
      • Visa
    • Payouts expand_more
      • Split Payout
      • Test Payout
    • Developer Resources expand_more
      • Currencies
      • Languages
      • Payment Testing
      • Test Cards
  • In-person Payments
    • SoftPOS expand_more
      • General expand_more
        • Getting Started
        • Device Requirements
        • SoftPOS TerminalIds
        • SoftPOS Errors
        • Currencies
        • Languages
        • Network And Connectivity
        • Release Notes
      • Basic Operations expand_more
        • Install A Terminal
        • Make A Payment
        • Handling Receipts
      • API Reference expand_more
        • SoftPOS - API Reference

What's on this page

  • Customers
    • Use Case Loyalty
    • In-store functionality
    • Online functionality
  • How it works (when and how to use the API calls)
    • 1. Pre-registration before linking
    • 2. Retrieve link information to inform the customer
    • 3. Remove the link
    • 4. Remove the customer
    • 5. Multiple cards, mobile phones, and or wearable devices
  • API Changes
  • Schemas
    • Customer Object
      • Link Reference Object
    • Paged Customers Object
      • Page Object
    • Card Object
  • Customers by id
    • Action: Add Customer
      • Request
      • Response Success
      • Response Error: Invalid data
      • Response Error: External Id Not Unique
      • Response Error: Others
    • Action: Get Customer
      • Request
      • Response Success
      • Response Error: Customer not found
      • Response Error: Others
    • Action: Update Customer
      • Request
      • Response Success
      • Response Error: Customer not found
      • Response Error: Others
    • Action: Remove Customer
      • Request
      • Response Success
      • Response Error: Others
    • Action: Get All Cards
      • Request
      • Response Success: Cards Found
      • Response Success: No Cards Found
      • Response Error: Customer not found
      • Response Error: Others
    • Action: Remove All Cards
      • Request
      • Response Success
      • Response Error: Customer not found
      • Response Error: Others
  • Customers by external id
    • Action: Get Customer
      • Request
      • Response Success
      • Response Error: Customer not found
      • Response Error: Others
    • Action: Update Customer
      • Request
      • Response Success
      • Response Error: Customer not found
      • Response Error: Others
    • Action: Remove Customer
      • Request
      • Response Success
      • Response Error: Others
    • Action: Get All Cards
      • Request
      • Response Success: Cards Found
      • Response Success: No Cards Found
      • Response Error: Customer not found
      • Response Error: Others
    • Action: Remove All Cards
      • Request
      • Response Success
      • Response Error: Customer not found
      • Response Error: Others
  • Customers by reference
    • Action: Get Customer
      • Request
      • Response Success
  • Cards
    • Action: Get Card
      • Request
      • Response Success
      • Response Error: Card not found
      • Response Error: Others
    • Action: Remove Card
      • Request
      • Response Success
      • Response Error: Others
Online Payments / Payment Features / Customers & Loyalty

Customers

Use Case Loyalty

Based on the generic functionality other use cases could be applicable.

Loyalty programs that reward and redeem points are a common part of payments between merchants and customers. The identification of a customer is often handled by providing an additional loyalty token like a plastic card during the checkout. This loyalty token (customer reference) could be added to a virtual wallet also. The loyalty account associated with the token is referenced with a number identifying the customer.

Until now, customers required a payment card and a loyalty card. CCV provides a solution where a loyalty card (physical or virtual) is no longer required and becomes fully integrated within the payment for rewarding and redeeming.

CCV provides a solution in which registered customers can be linked to the payment card they use in the shop. Once the link is set up between the loyalty card and payment card, the merchant receives the customer reference within the payment flow for loyalty processing. A merchant can query the customer data using the payment card in the CCV terminal.

All sensitive card data remains within the CCV ecosystem and is never exposed to the merchant. The only data the terminal exposes is the customer reference if a payment card link is found.

To interact with the customer reference data, CCV provides this API which can be used to initially register a customer reference, retrieve the links available, remove any links or remove all data of a customer. The merchant is responsible to comply with privacy and other regulations and manage the OPT-IN/OPT-OUT.

In-store functionality

Usage steps:

  1. A CCV terminal must be set up in your store and connected to an electronic cash register that supports OPI and the specific customer reference functionality.
  2. Add a customer through the API and include the customer reference (e.g. loyalty account number) and provide a timestamp until which the linking of new payment cards will be enabled. This way the ECR does not need to have specific enrollment functionality.
  3. When the customer comes to the store: capture the customer reference, include the customer reference within the payment transaction, and link the payment card to this customer (but only if the linking of new payment cards is (still) enabled for this customer).
  4. For all subsequent transactions, get the card link using the customer reference via the terminal.

Online functionality

Usage steps:

  1. Add a customer through the API and include the customer reference (e.g.loyalty account number), one or more identifiers used to recognize the customer (e.g. barcode numbers) and timestamp until which new payment card will be linked to the customer.
  2. Optionally update the timestamp until which new payment cards are linked to the customer
  3. Get all linked cards for a customer for displaying and information purposes to the customer
  4. Remove one or all linked cards for a customer
  5. Remove a customer including all linked cards.

How it works (when and how to use the API calls)

The following “how it works” shows how the use case reflects on the various API calls.

1. Pre-registration before linking

The pre-registration is initiated with the API call Add Customer. After the API call, any subsequent payment card transaction which has a provided link reference included will be linked to the customer until the provided timestamp is expired.

During the full customer journey Get Customer can be used to retrieve in every step the latest information and status.

If the customer or merchant wants to change the payment card linking status, it can update the customer with Update Customer to set a new timestamp after which no new payment cards will be linked. The timestamp is a long integer with the number of seconds since the Unix Epoch time. Use the minimum value to disable the linking of any new payment cards and the maximum value to enable the linking of new payment cards until further notice.

2. Retrieve link information to inform the customer

After the payment card is linked with the loyalty card the merchant can retrieve the latest information via Get All Payment Cards. A masked PAN is included that could be presented to the customer. Within the payment card data, a CCV internal id is included which can be used to remove a payment card link.

3. Remove the link

If the customer or merchant would like to remove a single payment card link the Remove Payment Card has to be used with the appropriate card id selected.

4. Remove the customer

Full removal of the customer can be initiated with the Remove Customer which removes the customer including all payment card links.

5. Multiple cards, mobile phones, and or wearable devices

Multiple payment cards can be linked to a single customer. When a payment card that is already linked to a customer (A) is linked to the customer (B), the link to the customer (A) is removed and the payment card is linked to the new customer (B).

If a customer has multiple cards or devices with the same bank account number, all the cards and devices have to be individually linked. When you get a replacement card, also this replacement card needs to be linked.

API Changes

The API contains endpoints to manage customers and their linked cards.

Communication with the API is described in the general API documentation

Schemas

Customer Object

A customer as referenced by the merchant is an entity that can be linked to payment cards. Use cases like loyalty allow multiple people to be referenced as the same customer by linking their payment card to the same customer.

The registration expiration is an optional parameter for how long a registration request may be honored. Card link requests after this time will be ignored.

Name Type Size Format Description
id string UUID Type 4 The unique UUID assigned by the PSP to the customer
externalId string max 64 The unique ID assigned by the merchant to the customer
customerReference string max 64 The reference returned when querying the link of payment card
registrationExpiration integer Unix Epoch Time in milliseconds The timestamp after which the registration can no longer be valid
created integer Unix Epoch Time in milliseconds The server datetime the customer was created
lastUpdated integer Unix Epoch Time in milliseconds The server datetime the customer was updated
registered integer Unix Epoch Time in milliseconds The server datetime the customers first card was registered
linkReferences array 25 Link Reference The list of link references to identify the customer when creating card links

Link Reference Object

A link reference identifies a customer during the card linking process. The difference with the customer reference is its use:

  • a link reference is used to create the link between a customer and a payment card
  • a customer reference is queried for a given payment card

A customer reference can be used as a link reference, but it is not required. If desired, define the customer reference explicitly as a link reference.

!IMPORTANT A link reference must be unique for all customers from a merchant.

Type Size Format Description
string max 64 A reference to link a customer to a payment card

Paged Customers Object

A paged list of customers.

Name Type Description
data array of Customer A list of customers. The maximum number of customers in this list is defined by the page size.
page page Information about the total amount of customers and the current returned list.

Page Object

A page contains information about the current paged list and the total amount of entities over all pages.

Name Type Description
size integer The maximum size of the current page.
number integer The number of the current page. (The first page has number 0)
totalElements integer The total amount of elements over all pages.
totalPages integer The total number of available pages.

Card Object

A card represents a physical payment card linked to a customer. The PAN is not stored but can be identified with a merchant specific token. The same PAN for the same customer will never have the same token for different merchants.

Name Type Size Format Description
id string 36 UUID Type 4 The unique UUID assigned by the PSP to the card
maskedPan string 13-19 [\d]{4}[X]{5,11}[\d]{4} The masked number of the card PAN
created integer Unix Epoch Time in milliseconds The server datetime the card was created
lastUpdated integer Unix Epoch Time in milliseconds The server datetime the card was updated

Customers by id

Manage customers with identifiers assigned by CCV.

Action: Add Customer

Add a new customer to the merchant account.

Request

  • Resource: /api/v1/customer
  • Method: POST
  • Authentication: Required
  • Content-Type: application/json
  • Parameters:
Name Type Size Format Inclusion Description
externalId string max 64 Optional The unique ID assigned by the merchant to the customer
customerReference string max 64 Required The reference to link with payment cards
registrationExpiration integer Unix Epoch Time in milliseconds Required The timestamp after which the registration can no longer be valid
linkReferences array 25 Link Reference Optional The list of link references to identify the customer when creating card links

Example

POST /api/v1/customer HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type:application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 1612194997000,
    "linkReferences" : ["123456789", "49-LF-LF", "31612345678"]
}

Response Success

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: A single Customer Object
Example
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked

{
    "id" : "632785d0-e01b-466d-8048-f5539665444d",
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 1612194997000,
    "linkReferences" : ["123456789", "49-LF-LF", "31612345678"],
    "created": 1612195375000,
    "lastUpdated" : 1612195375000,
    "registered" : null
}

Response Error: Invalid data

  • Status Code: 400 Bad Request
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "customerReference is invalid",
  "reference" : "718ee617",
  "field" : "customerReference",
  "fields": [
      {
        "field": "customerReference",
        "message": "size must be between 1 and 64"
      }
    ]
}

Response Error: External Id Not Unique

  • Status Code: 400 Bad Request
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "externalId is not unique",
  "reference" : "718ee617",
  "field" : "externalId",
  "fields": [
      {
        "field": "externalId",
        "message": "the value must be unique"
      }
    ]
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Get Customer

Retrieve a customer from the merchant account.

Request

  • Resource: /api/v1/customer/{id}
  • Method: GET
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the customer

Example

GET /api/v1/customer/632785d0-e01b-466d-8048-f5539665444d HTTP/1.1
Host: api.psp.ccv.eu
User-Agent: curl/7.74.0
Accept: application/json

Response Success

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: A single Customer Object

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "id"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Update Customer

Use an update to enable/disable card linking, remove link references, etc.

!IMPORTANT An update must contain the new state of the customer. Partial updates (‘patching’) is not supported. Undefined fields are interpreted as null and overwrite any value set for those fields.

Request

  • Resource: /api/v1/customer/{id}
  • Method: PUT
  • Authentication: Required
  • Content-Type: application/json
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the customer
  • Request Body
Name Type Size Format Inclusion Description
externalId string max 64 Optional The unique ID assigned by the merchant to the customer
customerReference string max 64 Required The reference to link with payment cards
registrationExpiration integer Unix Epoch Time in milliseconds Required The timestamp after which the registration can no longer be valid
linkReferences array 25 Link Reference Optional The list of link references to identify the customer when creating card links

Example - Disable card linking

PUT /api/v1/customer/632785d0-e01b-466d-8048-f5539665444d HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type: application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 0,
    "linkReferences" : ["123456789", "49-LF-LF", "31612345678"]
}

Example - Add a link reference

Given that the link references of the customer are 123456789, 49-LF-LF, 31612345678, when you want to add reference ABCDE then send a list of the current and new references, 123456789, 49-LF-LF, 31612345678, ABCDE

PUT /api/v1/customer/632785d0-e01b-466d-8048-f5539665444d HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type: application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 1612194997000,
    "linkReferences" : ["123456789", "49-LF-LF", "31612345678", "ABCDE"]
}

Example - Remove a link reference

Given that the link references of the customer are 123456789, 49-LF-LF, 31612345678, when you want to remove reference 31612345678 then send a list containing the remaining references, 123456789, 49-LF-LF.

PUT /api/v1/customer/632785d0-e01b-466d-8048-f5539665444d HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type: application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 1612194997000,
    "linkReferences" : ["123456789", "49-LF-LF"]
}

Response Success

  • Status Code: 204 No Content

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "id"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Remove Customer

Remove a customer and their linked cards from the merchant account.

Important: All customer and card data is removed and unrecoverable.

Request

  • Resource: /api/v1/customer/{id}
  • Method: DELETE
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the customer

Example

DELETE /api/v1/customer/632785d0-e01b-466d-8048-f5539665444d HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0

Response Success

  • Status Code: 204 No Content

Response Error: Others

See Error Handling for other possible error responses.

Action: Get All Cards

Get all cards from a customer.

Request

  • Resource: /api/v1/customer/{id}/card
  • Method: GET
  • Authentication: Required
  • Content-Type: application/json
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the customer

Example

GET /api/v1/customer/9bfb4cc4-6555-11eb-ae93-0242ac130002/card HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json

Response Success: Cards Found

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: An unsorted JSON array of objects with type Card Object

Example

[
    {
        "id" : "9bfb4cc4-6555-11eb-ae93-0242ac130002",
        "maskedPan" : "4111XXXXXXXX1111",
        "created" : 1612270671000,
        "lastUpdated" : 1612270671000
    },
    {
        "id" : "63ec8459-5e4c-4299-af83-57702241b67f",
        "maskedPan" : "5222XXXXXXXX2222",
        "created" : 1614327207000,
        "lastUpdated" : 1614327207000
    }
]

Response Success: No Cards Found

  • Status Code: 204 No Content

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "id"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Remove All Cards

Remove all cards from a customer.

Important: All card data is removed and unrecoverable.

Request

  • Resource: /api/v1/customer/{id}/card
  • Method: DELETE
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the customer

Example

DELETE /api/v1/customer/632785d0-e01b-466d-8048-f5539665444d/card HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0

Response Success

  • Status Code: 204 No Content

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "id"
}

Response Error: Others

See Error Handling for possible error responses.

Customers by external id

Manage customers with identifiers provided by the merchant. In order to differentiate between the operations of the Customers endpoint, all paths will start with /customer/externalId.

Action: Get Customer

Retrieve a customer from the merchant account.

Request

  • Resource: /api/v1/customer/externalId/{externalId}
  • Method: GET
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
externalId string max 64 Required The unique ID assigned by the merchant to the customer

Example

GET /api/v1/customer/externalId/a2d33fe6 HTTP/1.1
Host: api.psp.ccv.eu
User-Agent: curl/7.74.0
Accept: application/json

Response Success

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: An array of objects of type Customer Object

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "externalId"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Update Customer

Use an update to enable/disable card linking, remove link references, etc.

!IMPORTANT An update must contain the new state of the customer. Partial updates (‘patching’) is not supported. Undefined fields are interpreted as null and overwrite any value set for those fields.

Request

  • Resource: /api/v1/customer/externalId/{externalId}
  • Method: PUT
  • Authentication: Required
  • Content-Type: application/json
  • Path Parameters:
Name Type Size Format Inclusion Description
externalId string max 64 Required The unique ID assigned by the merchant to the customer
  • Request Body
Name Type Size Format Inclusion Description
externalId string max 64 Optional The unique ID assigned by the merchant to the customer
customerReference string max 64 Required The reference to link with payment cards
registrationExpiration integer Unix Epoch Time in milliseconds Optional The timestamp after which the registration can no longer be valid
linkReferences array 25 Link Reference Optional The list of link references to identify the customer when creating card links

Example - Disable card linking

PUT /api/v1/customer/externalId/a2d33fe6 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type: application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 0,
    "linkReferences" : ["123456789", "49-LF-LF", "31612345678"]
}

Example - Add a link reference

Given that the link references of the customer are 123456789, 49-LF-LF, 31612345678, when you want to add reference ABCDE then send a list of the current and new references, 123456789, 49-LF-LF, 31612345678, ABCDE

PUT /api/v1/customer/externalId/a2d33fe6 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type: application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 1612194997000,
    "linkReferences" : ["123456789", "49-LF-LF", "31612345678", "ABCDE"]
}

Example - Remove a link reference

Given that the link references of the customer are 123456789, 49-LF-LF, 31612345678, when you want to remove reference 31612345678 then send a list containing the remaining references, 123456789, 49-LF-LF.

PUT /api/v1/customer/externalId/a2d33fe6 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type: application/json

{
    "externalId" : "a2d33fe6",
    "customerReference" : "123456789",
    "registrationExpiration": 1612194997000,
    "linkReferences" : ["123456789", "49-LF-LF"]
}

Response Success

  • Status Code: 204 No Content

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "externalId"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Remove Customer

Remove a customer and their linked cards from the merchant account.

Important: All customer and card data is removed and unrecoverable.

Request

  • Resource: /api/v1/customer/externalId/{externalId}
  • Method: DELETE
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
externalId string max 64 Required The unique ID assigned by the merchant to the customer

Example

DELETE /api/v1/customer/externalId/a2d33fe6 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0

Response Success

  • Status Code: 204 No Content

Response Error: Others

See Error Handling for other possible error responses.

Action: Get All Cards

Get all cards from a customer.

Request

  • Resource: /api/v1/customer/externalId/{externalId}/card
  • Method: GET
  • Authentication: Required
  • Content-Type: application/json
  • Path Parameters:
Name Type Size Format Inclusion Description
externalId string max 64 Required The unique ID assigned by the merchant to the customer

Example

GET /api/v1/customer/externalId/a2d33fe6/card HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json

Response Success: Cards Found

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: An unsorted JSON array of objects with type Card Object

Example

[
    {
        "id" : "9bfb4cc4-6555-11eb-ae93-0242ac130002",
        "maskedPan" : "4111XXXXXXXX1111",
        "created" : 1612270671000,
        "lastUpdated" : 1612270671000
    },
    {
        "id" : "63ec8459-5e4c-4299-af83-57702241b67f",
        "maskedPan" : "5222XXXXXXXX2222",
        "created" : 1614327207000,
        "lastUpdated" : 1614327207000
    }
]

Response Success: No Cards Found

  • Status Code: 204 No Content

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "externalId"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Remove All Cards

Remove all cards from a customer.

Important: All card data is removed and unrecoverable.

Request

  • Resource: /api/v1/customer/externalId/{externalId}/card
  • Method: DELETE
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
externalId string max 64 Required The unique ID assigned by the merchant to the customer

Example

DELETE /api/v1/customer/externalId/a2d33fe6/card HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0

Response Success

  • Status Code: 204 No Content

Response Error: Customer not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Customer not found",
  "reference" : "718ee617",
  "field" : "externalId"
}

Response Error: Others

See Error Handling for possible error responses.

Customers by reference

Manage customers with identifiers provided by the merchant.

Action: Get Customer

Retrieve a customer from the merchant account.

Request

  • Resource: /api/v1/customer?customerReference={customerReference}&page={page}&size={size}
  • Method: GET
  • Authentication: Required
  • Content-Type: application/json
  • Parameters:
Name Type Size Inclusion Description
customerReference string max 64 Required The reference to link with payment cards
page integer Optional The page of customers that is requested. First page is 0. (default = 0)
size integer max 50 Optional The number of customers that is requested per page. (default = 10)

Example

GET /api/v1/customer?customerReference=123456789&page=0&size=10 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json
content-type:application/json

Response Success

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: A Paged Customer Object List
Example
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked

{
   "data": [
      {
          "id" : "632785d0-e01b-466d-8048-f5539665444d",
          "externalId" : "a2d33fe6",
          "customerReference" : "123456789",
          "registrationExpiration": 1612194997000,
          "linkReferences" : ["123456789", "49-LF-LF", "31612345678"],
          "created": 1612195375000,
          "lastUpdated" : 1612195375000,
          "registered" : null
      },
      {
          "id" : "812fd81d-8682-4da7-b981-cd0859bcb04a",
          "externalId" : "b1cc9f8a",
          "customerReference" : "123456789",
          "registrationExpiration": 1612194997000,
          "linkReferences" : ["LR-001"],
          "created": 1612195395000,
          "lastUpdated" : 1612195395000,
          "registered" : null
      }
   ],
   "page" : {
      "size": 10,
      "totalElements": 2,
      "totalPages": 1,
      "number": 0
   }
}

Cards

Action: Get Card

Request

  • Resource: /api/v1/card/{id}
  • Method: GET
  • Authentication: Required
  • Content-Type: application/json
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the card

Example

GET /api/v1/card/9bfb4cc4-6555-11eb-ae93-0242ac130002 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0
accept: application/json

Response Success

  • Status Code: 200 OK
  • Content-Type: application/json
  • Body: An object of type Card Object

Example

{
    "id" : "9bfb4cc4-6555-11eb-ae93-0242ac130002",
    "maskedPan" : "4111XXXXXXXX1111",
    "created" : 1612270671000,
    "lastUpdated" : 1612270671000
}

Response Error: Card not found

  • Status Code: 404 Not Found
  • Content-Type: application/json
  • Body: A Error
{
  "type" : "input_error",
  "message" : "Card not found",
  "reference" : "718ee617",
  "field" : "id"
}

Response Error: Others

See Error Handling for other possible error responses.

Action: Remove Card

Remove a single payment card from a customer.

Request

  • Resource: /api/v1/card/{id}
  • Method: DELETE
  • Authentication: Required
  • Path Parameters:
Name Type Size Format Inclusion Description
id string UUID Type 4 Required The unique UUID assigned by the PSP to the card

Example

DELETE /api/v1/card/5b878db4-6556-11eb-ae93-0242ac130002 HTTP/1.1
Host: api.psp.ccv.eu
user-agent: curl/7.74.0

Response Success

  • Status Code: 204 No Content

Response Error: Others

See Error Handling for possible error responses.

Go to

Home
Documentation




Cookies Privacy Statement