Skip to content

Verifies a card

Request

POST {{baseURL}}/pay-api/v1/transactions/card-verification

This endpoint verifies a card's details with the issuing bank without charging it.

This checks the card against AVS (address verification service) and the security code. No funds are authorized, captured, or held against the card. This is useful for validating a card, such as before saving it as a customer's payment method, without processing a payment.

See Also:
To authorize a transaction, see POST /pay-api/v1/transactions/auth.
To create a transaction, see POST /pay-api/v1/transactions/sale.
To retrieve a transaction by ID, see GET /pay-api/v1/transactions/{transactionId}.

Security
Bearer
Bodyapplication/json
accountNumberstring or null

Specifies the card number to verify.

We recommend using paymentMethodId instead of accountNumber.

This field may contain a token issued against a card number. This is de-tokenized by TransIT to process the verification.

Example: 4111111111111111

Example:"4111111111111111"
paymentMethodIdstring or null, (uuid)

Specifies the customer payment method identifier.

We recommend using paymentMethodId instead of accountNumber.

Example: b4c48037-4c5d-4e6f-7a8b-9c0d1e2f3a69

Example:"b4c48037-4c5d-4e6f-7a8b-9c0d1e2f3a69"
expirationMonthinteger, (int32)required

Specifies the expiration month of the card.

Example: 7

Example:7
expirationYearinteger, (int32)required

Specifies the expiration year of the card.

Example: 2032

Example:2032
cardDataSourceinteger, (int32)

Specifies the card data source.

Valid values are:

ValueNameDescription
1InternetVirtual Terminal, ISV API
2SwipeTrack1, Track2
3NFCEMV Tags, Track2
4EMVEMV Tags
5EMVContactlessEMV Tags
6FallbackSwipeTrack 2
7ManualCard present keyed transaction

Example: 2

Example:2
paymentProcessorIdstring or null, (uuid)

Specifies the payment processor identifier.

A list of available payment processers can be found with GET {{baseURL}}/pay-api/v1/configurations/payments. See response availablePaymentProcessors.id.
If omitted, the merchant's default payment processor will be used.

Example: 37bd9ccb-2c9d-45cf-a65f-c9a224bdeaeb

Example:"37bd9ccb-2c9d-45cf-a65f-c9a224bdeaeb"
customerIdstring or null, (uuid)

Specifies the customer identifier.

This is used when saving the payment method.
If this value is provided, the payment method is saved to the specified customer.
If this value is not provided, a new customer record is created.

Example: fd9198a4-eb6f-4620-9603-4f4638289de5

Example:"fd9198a4-eb6f-4620-9603-4f4638289de5"
deviceIdstring or null, (uuid)

Specifies the device when using the Flute mobile app.

If this value is included, the user is linked to that device. This stores their name as the verification creator createdBy.

Example: a30f9b66-b2f0-4b18-a03a-b861b00afa8b

Example:"a30f9b66-b2f0-4b18-a03a-b861b00afa8b"
appVersionstring or null

Specifies the version of the mobile app.

This value is stored on the verification record. The appVersion value takes priority over the sdkVersion if both are present.

Example: 10.413.01

Example:"10.413.01"
sdkVersionstring or null

Specifies the version of the Flute SDK.

This value is stored on the verification record. The appVersion value takes priority over the sdkVersion if both are present.

Example: 8.61.01

Example:"8.61.01"
billingAddressobject

Specifies an object defining the address.

securityCodestring or null

Specifies the three or four digit security code on the credit card.

Example: 123

Example:"123"
track1string or null

Specifies the card data from track 1 of the magnetic stripe.

Example: %B4111111111111111^Smith/John^12121010000000000000?

Example:"%B4111111111111111^Smith/John^12121010000000000000?"
track2string or null

Specifies the information stored on the magnetic stripe of a credit or debit card, including the card number, expiration date, and cardholder's name.

Example: 4111111111111111=200257999

Example:"4111111111111111=200257999"
referenceIdstring or null

Specifies an external identifier for client-side tracking.

Also used in duplicate control validation. A unique value allows similar verification requests to process as distinct, bypassing duplicate blocking when needed.

Example: REF-EXT-12345

Example:"REF-EXT-12345"

Verifies a Visa card entered online.

cardDataSource is 1 (Internet).

The billing address and security code are sent for address and CVV checks.

POST /pay-api/v1/transactions/card-verification HTTP/1.1
Host: sandbox.api.flute.com
Authorization: Bearer <YOUR_JWT_HERE>
Accept: application/json
Content-Type: application/json

{
  "paymentProcessorId": "64aa4643-2c62-45fa-9554-3a69833114e9",
  "accountNumber": "4111111111111111",
  "securityCode": "123",
  "expirationMonth": 12,
  "expirationYear": 2030,
  "cardDataSource": 1,
  "billingAddress": {
    "line1": "7429 Desert Mirage Lane",
    "line2": "Suite 7",
    "city": "Phoenix",
    "stateName": "Arizona",
    "stateId": 4,
    "postalCode": "85099",
    "countryId": 1
  }
}

Responses

OK

Bodyapplication/json
transactionIdstring, (uuid)

Indicates the verification record's identifier.

Example: c7c15dd0-03e7-4e55-917c-54bedafba5e7

Example:"c7c15dd0-03e7-4e55-917c-54bedafba5e7"
transactionDateTimestring, (date-time)

Indicates the date and time (in an ISO 8601 date-time UTC format) of the verification.

Example: 2026-02-19T20:24:52.934Z

Example:"2026-02-19T20:24:52.934Z"
typeIdinteger, (int32)

Indicates the type identifier of the verification.

Valid values are:

ValueNameDescription
8CardVerificationIdentifies the record as a card verification.

Example: 8

Example:8
typestring or null

Indicates the type name of the verification.

Valid values are:

ValueDescription
CardVerificationIdentifies the record as a card verification.

Example: CardVerification

Example:"CardVerification"
statusIdinteger, (int32)

Indicates the status identifier of the verification.

Valid values are:

ValueNameDescription
1VerifiedThe card and billing details matched the issuing bank's records.
2DeclinedThe card or billing details did not match, and verification was declined.
3FailedThe verification could not be completed due to a processing error.

Example: 1

Example:1
statusstring or null

Indicates the status name of the verification.

Valid values are:

ValueDescription
VerifiedThe card and billing details matched the issuing bank's records.
DeclinedThe card or billing details did not match, and verification was declined.
FailedThe verification could not be completed due to a processing error.

Example: Verified

Example:"Verified"
detailsobject

Indicates additional processor-level response details for the transaction.

avsResponseobject

Indicates the Address Verification Service (AVS) response.

Response

The issuer confirms the card is valid.

status is Verified.

No funds are held or charged.

{ "transactionDateTime": "2026-10-20T14:02:16.2840571Z", "statusId": 5, "status": "Verified", "details": { "hostResponseCode": "85", "hostResponseMessage": "NO REASON TO DECLINE", "hostResponseDefinition": "No reason to decline", "code": "Approve", "message": "Success", "processorResponseCode": "85", "authCode": null, "maskedPan": "411111******1111" } }