Use this method to verify a customer’s card details.
In the request, send the customer’s card details.
In the response, our gateway indicates if the card details are valid and if you should use them in follow-on actions.
Parameters
Name
In
Type
Description
Idempotency-KeyRequired
header
string
Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier. For more information about the idempotency key, go to Idempotency.
Object that contains information about the customer’s payment card.
accountTypestring
Indicates the customer’s account type. Note: Send a value for accountType only for bank account details.checkingsavings
cardDetailsobjectrequired
Polymorphic object that contains payment card information. The value of the entryMethod parameter determines which variant you should use: raw Unencrypted payment data directly from the device. icc Payment data that the device captured from the chip. keyed Payment data that the merchant entered manually. swiped Payment data that the device captured from the magnetic strip.+132 more fields at deeper levels — see the full spec
typestringrequired
Method that the terminal used to take the payment.card
Object that contains information about the address.
address1stringrequired
Address line 1.≤ 150 chars
address2string
Address line 2.≤ 150 chars
address3string
Address line 3.≤ 150 chars
citystringrequired
City.≤ 50 chars
countrystringrequired
Two-digit country code for the country that the business operates in. The format follows the ISO-3166-1 standard.2–2 chars
postalCodestringrequired
Zip code or postal code.≤ 10 chars
statestringrequired
Name of the state or state abbreviation.≤ 50 chars
contactMethodsobject[]
Array of polymorphic objects, which contain contact information. The value of the type parameter determines which variant you should use: email Email address phone Phone number mobile Mobile number fax Fax number
emailobject
+2 more fields at deeper levels — see the full spec
phoneobject
+2 more fields at deeper levels — see the full spec
mobileobject
+2 more fields at deeper levels — see the full spec
faxobject
+2 more fields at deeper levels — see the full spec
dateOfBirthstringdate
Customer's date of birth. The format for this value is YYYY-MM-DD.
firstNamestring
Customer's first name.0–60 chars
lastNamestring
Customer's last name.0–60 chars
notificationLanguagestringiso-639-1
Language that the customer uses for notifications. This code follows the ISO 639-1 alpha-2 standard.2–2 charsenfr
referenceNumberstring
Identifier of the transaction, also known as a customer code. For requests, you must send a value for referenceNumber if the customer provides one. Required for Level 2, Level 3, and CEDP transactions.0–48 chars
shippingAddressobject
Object that contains information about the customer and their shipping address. Contains parameters required for Level 3 and CEDP transactions.
addressobject
Object that contains information about the address.+7 more fields at deeper levels — see the full spec
Object that contains the details of the payment card.
balancesobject[]
Array of cardBalance objects. Our gateway returns this array only when the customer uses an Electronic Benefit Transfer (EBT) card.
amountintegerint64required
Current balance of the account. This value is in the currency's lowest denomination, for example, cents.
benefitCategorystringrequired
Indicates if the balance relates to an EBT Cash account or EBT SNAP account. cash – EBT Cash foodStamp – EBT SNAPcashfoodStamp
currencystringrequired
Currency of the transaction. The value for the currency follows the ISO 4217 standard.AEDAFNALLAMDANGAOAARSAUD+163 more
cardNumberstringrequired
Card number. In the response, our gateway shows only the first six digits and the last four digits of the card number, for example, 500165******0000.12–19 chars
cardholderNamestring
Cardholder’s name.1–50 chars
cardholderSignaturestring
Cardholder’s signature.
emvTagsobject[]
Array of emvTag objects.
hexstringrequired
Hex code of the EMV tag.
valuestringrequired
Value of the EMV tag.
entryMethodstringrequired
Method that the device used to capture the card details.icckeyedswipedswipedFallbackcontactlessIcccontactlessMsr
expiryDatestringrequired
Expiry date of the customer's card. The format is in MMYY.[0-9]{4}
secureTokenobject
Object that contains information about the secure token.
customerNamestringrequired
Customer's name.1–50 chars
linkobject
Object that contains HATEOAS links for the resource.+3 more fields at deeper levels — see the full spec
secureTokenIdstringrequired
Unique identifier that the merchant assigned to the secure token.1–200 chars
statusstringrequired
Status of the customer's bank account. The processor performs a security check on the customer's bank account and returns the status of the account. Note: Depending on the merchant's account settings, this feature may be unavailable.notValidatedcvvValidatedvalidationFailedissueNumberValidatedcardNumberValidatedbankAccountValidated
tokenstringrequired
Token that the merchant can use in future transactions to represent the customer's payment details. The token: Begins with the six-digit identification number 296753. Contains up to 12 digits. Contains a single check digit that we calculate using the Luhn algorithm.12–19 chars
securityChecksobject
Object that contains information about card verification and security checks.
avsResultstring
Indicates if the address that the customer provided in the request matches the address linked to the card. Y – The address in the request matches the address linked to the card. N – The address in the request doesn’t match the address linked to the card. A – The street address matches, but ZIP code or postal code doesn’t match. Z The ZIP code or postal code matches, but street address doesn’t match. U – The address information is unavailable. G – The issuer or card brand doesn’t support the Address Verification Service (AVS). R – The AVS is currently unavailable. Try again later. S – There was no AVS data in the request, or it was sent in the wrong format. F For UK addresses, the address in the request matches the address linked to the card. W – For US addresses, the nine-digit ZIP code or postal code in the request matches the address linked to the card but the street address doesn’t. X – For US addresses, the nine-digit ZIP code or postal code and the street address matches the address linked to the card. Note: Our gateway doesn’t automatically decline transactions when the address doesn’t match the address linked to the card, unless the merchant selects this setting in their account.YAZNURGS+3 more
cvvResultstring
Indicates if the card verification value (CVV) that the customer provided in the request matches the CVV on the card. M – The CVV matches the card’s CVV. N – The CVV doesn’t match the card’s CVV. P – The CVV wasn’t processed. U – The CVV isn’t registered. Note: Our gateway doesn’t automatically decline transactions when the CVV doesn’t match the card’s CVV, unless the merchant selects this setting in their account.MNPU
typestringrequired
Card brand of the card, for example, Visa.
operatorstring
Operator who requested to verify the card.0–50 chars
processingTerminalIdstringrequired
Unique identifier that we assigned to the terminal.4–50 chars
transactionResultobject
Object that contains information about the transaction response details.
approvalCodestring
Authorization code that the processor assigned to the transaction.1–48 chars
authorizedAmountintegerint64
Amount that the processor authorized for the transaction. This value is in the currency’s lowest denomination, for example, cents. Notes: For partial authorizations, this amount is lower than the amount in the request. If the value for authorizedAmount is negative, this indicates that the merchant sent funds to the customer.
cardSchemeReferenceIdstring
Identifier that the card brand assigns to the payment instruction.1–64 chars
currencystring
Currency of the transaction. The value for the currency follows the ISO 4217 standard.AEDAFNALLAMDANGAOAARSAUD+163 more
ebtTypestring
Indicates the subtype of EBT in the transaction.cashPurchasecashPurchaseWithCashbackfoodStampPurchasefoodStampVoucherPurchasefoodStampReturnfoodStampVoucherReturncashBalanceInquiryfoodStampBalanceInquiry+1 more
healthcareIndicatorstring
Indicates if we processed the payment as a healthcare expense. The value is one of the following: Y We processed the payment as a healthcare expense. N We processed the payment but it didn't contain any healthcare expenses. C We processed the payment but the card isn't linked to a Flexible Spending Account (FSA) or a Health Savings Account (HSA). R We processed the payment but the card doesn't support healthcare expenses.YNCR
processorResponseCodestring
Original response code that the processor sent.
responseCodestringrequired
Response from the processor. A The processor approved the transaction. D The processor declined the transaction. E The processor received the transaction but will process the transaction later. P The processor authorized a portion of the original amount of the transaction. R The issuer declined the transaction and indicated that the customer should contact their bank. C The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.ADEPRC
responseMessagestring
Response description from the processor.1–48 chars
statusstringrequired
Status of the transaction. The value is one of the following: ready Successful transaction. We added the payment to the open batch. pending Successful transaction. We added the payment to the open batch, but we don't collect the funds until the merchant captures the transaction. declined Unsuccessful transaction. The cardholder's issuing bank declined the transaction. complete Successful transaction. The funds have moved to the merchant's bank account. referral Unsuccessful transaction. The issuing bank identified an issue with the transaction. You should treat a referral status as a declined transaction. pickup Unsuccessful transaction. The issuing bank has reported that the card is lost or stolen. reversal Transaction canceled. The transaction was canceled, and we removed the transaction from the open batch. admin Transaction under review. We have flagged an issue with the transaction. expired Transaction expired. If a transaction stays in pending status for too long, it expires. accepted Transaction in progress. The transaction is in progress with the processor but we can't confirm the result yet.readypendingdeclinedcompletereferralpickupreversaladmin+2 more
Indicates if the card details are valid: true Card details are valid. false Card details are not valid.
Validation error
400 Bad Request · application/problem+json
{"detail":"'Idempotency-Key' is already in use against a different request","status":409,"title":"Idempotency-Key in use","type":"https://docs.payroc.com/api/errors#idempotency-key-in-use"}
Response schema · 8 fields
detailstringrequired
Explanation of the problem
errorsobject[]
detailstring
Short detail of the validation errors
messagestring
Error message
parameterstring
The parameter or field causing the issues
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
Identity could not be verified
401 Unauthorized · application/problem+json
{"detail":"Your identity could not be verified","status":401,"title":"Not Authorized","type":"https://docs.payroc.com/api/errors#not-authorized"}
Response schema · 4 fields
detailstringrequired
Explanation of the problem
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
Do not have permissions to perform this action
403 Forbidden · application/problem+json
{"detail":"You do not have the required permissions to perform this action","instance":"https://api.payroc.com/v1/exampleResource/3","resource":"exampleResource","status":403,"title":"Forbidden","type":"https://docs.payroc.com/api/errors#forbidden"}
Response schema · 6 fields
detailstringrequired
Explanation of the problem
instancestring
Resource path the action was attempted on
resourcestring
Resource the action was attempted on
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
Resource not found
404 Not Found · application/problem+json
{"detail":"Resource not found","resource":"(The Type of the Resource)","status":404,"title":"Not found","type":"https://docs.payroc.com/api/errors#not-found"}
Response schema · 5 fields
detailstringrequired
Explanation of the problem
resourcestring
Resource that was not found
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
Not acceptable
406 Not Acceptable · application/problem+json
{"detail":"Resource does not support the representation requested","status":406,"title":"Not acceptable","type":"https://docs.payroc.com/api/errors#not-acceptable"}
Response schema · 4 fields
detailstringrequired
Explanation of the problem
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
Conflict
409 Conflict · application/problem+json
{"detail":"The resource you attempted to create already exists","instance":"https://api.payroc.com/v1/merchant/12345","status":409,"title":"Resource already exists","type":"https://docs.payroc.com/api/errors#resource-already-exists"}
Response schema · 13 fields
detailstringrequired
Explanation of the problem
errorsobject[]
detailstring
Short detail of the validation errors
messagestring
Error message
parameterstring
The parameter or field causing the issues
instancestring
Resource path to the existing resource
linkobject
Object that contains HATEOAS links for the resource.
hrefstringrequired
URL of the target resource.
methodstringrequired
HTTP method that you need to use with the target resource.
relstringrequired
Indicates the relationship between the current resource and the target resource.
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
Unsupported media type
415 Unsupported Media Type · application/problem+json
{"detail":"You submitted a payload in an unsupported format","status":415,"title":"Unsupported media type","type":"https://docs.payroc.com/api/errors#unsupported-media-type"}
Response schema · 4 fields
detailstringrequired
Explanation of the problem
statusintegerrequired
Http status code
titlestringrequired
Short description of the issue.
typestringrequired
URI reference identifying the problem type
An error has occured
500 Internal Server Error · application/problem+json
{"detail":"We are unable to process your request at this time","errors":[{"message":"Service offline"}],"status":500,"title":"Api error","type":"https://docs.payroc.com/api/errors#api-error"}