You can use Adyen payment terminals to read your own custom cards, such as employee benefit cards, and send the data to your POS system. You can then process the card transactions through the issuer of your custom cards.
How it works
To enable using custom cards on our payment terminals, contact our Support Team
- You make a card acquisition request.
- On the terminal, the shopper swipes the card.
The only entry method for custom cards is Swipe.
- You receive the card data in the card acquisition response.
- You pass the data from the card acquisition response to the card issuer.
- You send an
EnableServiceRequest
to stop the card acquisition request on the terminal.
Make a card acquisition request
-
Make a POST request to a Terminal API endpoint, specifying:
-
MessageHeader
: the standardSaleToPOIRequest.MessageHeader
object. Specify:Parameter Required Description ProtocolVersion
3.0 MessageClass
Service MessageCategory
CardAcquisition MessageType
Request ServiceID
Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal ( POIID
) being used.SaleID
Your unique ID for the POS system component to send this request from. POIID
The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
-
CardAcquisitionRequest
: the request body with:Parameter Required Description SaleData.SaleTransactionID
An object with: TransactionID
: your reference to identify a payment. We recommend using a unique value per payment.TimeStamp
: date and time of the request in UTC format.
SaleData.TokenRequestedType
Customer. Returns the card alias in the TokenValue
field of the response. Note that the card alias is always returned in theAdditionalResponse
.CardAcquisitionTransaction
A required object that can be empty or contain: TotalAmount
(optional): the transaction amount. When you do not know the amount yet, you can omit this parameter or specify an initial amount and provide the final amount later, in the payment request.PaymentType
(optional): if you intend to continue with a payment, either omit this parameter or specify Normal. If you intend to continue with an unreferenced refund, see Card check before refund.
-
-
When the card acquisition succeeds, you receive a
CardAcquisitionResponse
with message=CARD_ACQ_COMPLETED insideResponse.AdditionalResponse
. From thePaymentInstrumentData.CardData.SensitiveCardData
object, save:PAN
: the value that uniquely identifies the shopper's card, for example 88154351166602100.TrackData.TrackNumber
: the number on the track on the Magstripe that holds the encoded data. Value can be 1, 2, or 3.TrackData.TrackValue
: the raw value of the Magstripe track information, with the Sentinel values.
Complete the card acquisition
The card acquisition loading screen will continue to show until it times out. To free up the terminal to process other transactions, you need to make an EnableServiceRequest
. This stops the loading screen and the terminal discards the card data.
-
Make a POST request to a Terminal API endpoint, specifying:
-
MessageHeader
: the standardSaleToPOIRequest.MessageHeader
object. Specify:Parameter Required Description ProtocolVersion
3.0 MessageClass
Service MessageCategory
EnableService MessageType
Request ServiceID
Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal ( POIID
) being used.SaleID
Your unique ID for the POS system component to send this request from. POIID
The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
-
EnableServiceRequest: the request body with:
Parameter Required Description TransactionAction
AbortTransaction. DisplayOutput
Optional object to show your own message and an 'Approved' icon (green check mark) or a 'Declined' icon (red cross).
The next example is the basic request, without
DisplayOutput
object, to end the card acquisition flow with a cancellation. The terminal will show Canceled, a red cross , and Transaction canceled. You can also choose a custom message on the payment terminal display. -