# Verification & Validation

<figure><img src="https://1759075701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIS9AkCawNWrhCXwEyUbh%2Fuploads%2FOgmHAPtT5nzsLmavRnqf%2Fmedium.png?alt=media&#x26;token=0f8a4ca4-c1dc-4c0b-a09b-0b71576f08e4" alt=""><figcaption></figcaption></figure>

## <mark style="color:blue;">ValidCard</mark>

### Endpoint Overview

**Endpoint URL:**\
`https://secure.ftipgw.com/ArgoFire/validate.asmx?op=ValidCard`

**Method:**\
Supports **SOAP POST** and **HTTP POST** (form-encoded)

**Description:**\
Performs real-time validation of a credit card number, expiration date, and card security code (CVV). This endpoint is typically used during account setup, billing profile creation, or tokenization flows to verify that the card is structurally valid and passes preliminary risk checks.

***

### Request Parameters

| Parameter    | Type   | Required | Description                       |
| ------------ | ------ | -------- | --------------------------------- |
| UserName     | string | Yes      | Admin username                    |
| Password     | string | Yes      | Admin password                    |
| Vendor       | string | Yes      | Merchant numeric key              |
| CcAccountNum | string | Yes      | Credit card number                |
| CcExpDate    | string | Yes      | Expiration date (MMYY)            |
| CVNum        | string | No       | Card verification value (CVV/CVC) |
| ExtData      | string | No       | Optional XML-formatted metadata   |

***

### Notes

* **Validation scope:**\
  This endpoint performs **basic format checks** and **gateway-level rules validation**, but does **not submit an authorization to the issuer**. It is used for validation only, not for processing charges.
* **Use cases:**
  * Confirming a card is correctly formatted and not obviously invalid
  * Pre-screening before saving card data or generating a token
  * Validating user input in hosted payment forms
  * Verifying CVV for consumer-facing applications
* **Does not authorize funds:**\
  No hold or charge is placed on the card — this is a **non-financial validation** operation.
* **CVNum is optional but recommended:**\
  Including the card security code improves the validation reliability and mimics real transaction conditions more closely.
* **Not a substitute for full auth:**\
  A successful `ValidCard` response **does not guarantee** that a future transaction will be approved. It should be used only as a basic card validation step.
* **ExtData usage:**\
  Can be used to pass optional context such as environment tags, session IDs, or integration-specific flags.

#### SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://localhost/SmartPayments/ValidCard"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ValidCard xmlns="http://localhost/SmartPayments/">
      <CardNumber>string</CardNumber>
      <ExpDate>string</ExpDate>
    </ValidCard>
  </soap:Body>
</soap:Envelope>
```

```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ValidCardResponse xmlns="http://localhost/SmartPayments/">
      <ValidCardResult>int</ValidCardResult>
    </ValidCardResponse>
  </soap:Body>
</soap:Envelope>
```

#### SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ValidCard xmlns="http://localhost/SmartPayments/">
      <CardNumber>string</CardNumber>
      <ExpDate>string</ExpDate>
    </ValidCard>
  </soap12:Body>
</soap12:Envelope>
```

```
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ValidCardResponse xmlns="http://localhost/SmartPayments/">
      <ValidCardResult>int</ValidCardResult>
    </ValidCardResponse>
  </soap12:Body>
</soap12:Envelope>
```

#### HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx/ValidCard HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

CardNumber=string&ExpDate=string
```

```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://localhost/SmartPayments/">int</int>
```

## <mark style="color:blue;">ValidCardLength</mark>

**Endpoint URL:**\
`https://secure.ftipgw.com/ArgoFire/validate.asmx?op=ValidCardLength`

**Method:**\
Supports **SOAP POST** and **HTTP POST** (form-encoded)

**Description:**\
Checks whether the length and prefix (BIN/IIN) of a provided credit card number match known patterns for valid card types (Visa, MasterCard, etc.). This is a non-financial, pre-authorization check used for input validation and front-end form filtering.

***

### Request Parameters

| Parameter    | Type   | Required | Description                     |
| ------------ | ------ | -------- | ------------------------------- |
| UserName     | string | Yes      | Admin username                  |
| Password     | string | Yes      | Admin password                  |
| Vendor       | string | Yes      | Merchant numeric key            |
| CcAccountNum | string | Yes      | Credit card number to validate  |
| ExtData      | string | No       | Optional XML-formatted metadata |

***

### Notes

* **Validation behavior:**\
  This endpoint does **not perform authorization** or real-time card verification. It simply checks:
  * Whether the card number has the correct length for its prefix
  * Whether the card prefix (IIN/BIN) matches known issuers
  * Whether the card number passes the Luhn (mod-10) checksum
* **Use cases:**
  * Real-time validation on hosted payment pages
  * Screening card data before attempting authorization
  * Sanitizing input in account setup flows
  * Filtering out mistyped or obviously invalid card numbers
* **No expiration date or CVV required:**\
  Only the card number is needed. This makes it ideal for client-side or early-stage backend validations.
* **Response results:**\
  The response typically includes:
  * Validation pass/fail status
  * Detected card type (if identifiable)
  * Optional message or error description
* **Low risk, high utility:**\
  Because it performs no network contact with issuers or processors, this check is fast, low-risk, and useful in real-time UX flows.
* **ExtData support:**\
  Can be used to pass tracking context or integration-specific flags, if needed.

#### SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://localhost/SmartPayments/ValidCardLength"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ValidCardLength xmlns="http://localhost/SmartPayments/">
      <CardNumber>string</CardNumber>
    </ValidCardLength>
  </soap:Body>
</soap:Envelope>
```

```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ValidCardLengthResponse xmlns="http://localhost/SmartPayments/">
      <ValidCardLengthResult>boolean</ValidCardLengthResult>
    </ValidCardLengthResponse>
  </soap:Body>
</soap:Envelope>
```

#### SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ValidCardLength xmlns="http://localhost/SmartPayments/">
      <CardNumber>string</CardNumber>
    </ValidCardLength>
  </soap12:Body>
</soap12:Envelope>
```

```
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ValidCardLengthResponse xmlns="http://localhost/SmartPayments/">
      <ValidCardLengthResult>boolean</ValidCardLengthResult>
    </ValidCardLengthResponse>
  </soap12:Body>
</soap12:Envelope>
```

#### HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx/ValidCardLength HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

CardNumber=string
```

```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<boolean xmlns="http://localhost/SmartPayments/">boolean</boolean>
```

## <mark style="color:blue;">ValidExpDate</mark>

**Endpoint URL:**\
`https://secure.ftipgw.com/ArgoFire/validate.asmx?op=ValidExpDate`

**Method:**\
Supports **SOAP POST** and **HTTP POST** (form-encoded)

**Description:**\
Validates that a provided credit card expiration date is correctly formatted and not expired. This is a lightweight, non-financial check used for form validation and pre-processing flows.

***

### Request Parameters

| Parameter | Type   | Required | Description                     |
| --------- | ------ | -------- | ------------------------------- |
| UserName  | string | Yes      | Admin username                  |
| Password  | string | Yes      | Admin password                  |
| Vendor    | string | Yes      | Merchant numeric key            |
| CcExpDate | string | Yes      | Expiration date in MMYY format  |
| ExtData   | string | No       | Optional XML-formatted metadata |

***

### Notes

* **Validation scope:**\
  This check ensures that:
  * The date is in valid MMYY format
  * The date is **not in the past** relative to the current system time
  * The month value is between `01` and `12`
* **Use cases:**
  * Validating expiration dates during form entry
  * Filtering out invalid or expired cards before tokenization
  * Providing immediate UX feedback during card input
* **No card number required:**\
  This check only applies to the expiration date field — it does not require or validate any card number.
* **No authorization performed:**\
  This is a **non-transactional utility** endpoint — it does not contact any issuers or affect cardholder accounts.
* **ExtData support:**\
  Can be used to pass integration-specific context such as environment flags or UI tracking data.
* **Best used with other validators:**\
  For comprehensive validation, pair this with `ValidCard` or `ValidCardLength` to ensure complete format correctness.

#### SOAP 1.1

The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://localhost/SmartPayments/ValidExpDate"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ValidExpDate xmlns="http://localhost/SmartPayments/">
      <ExpDate>string</ExpDate>
    </ValidExpDate>
  </soap:Body>
</soap:Envelope>
```

```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ValidExpDateResponse xmlns="http://localhost/SmartPayments/">
      <ValidExpDateResult>boolean</ValidExpDateResult>
    </ValidExpDateResponse>
  </soap:Body>
</soap:Envelope>
```

#### SOAP 1.2

The following is a sample SOAP 1.2 request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ValidExpDate xmlns="http://localhost/SmartPayments/">
      <ExpDate>string</ExpDate>
    </ValidExpDate>
  </soap12:Body>
</soap12:Envelope>
```

```
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <ValidExpDateResponse xmlns="http://localhost/SmartPayments/">
      <ValidExpDateResult>boolean</ValidExpDateResult>
    </ValidExpDateResponse>
  </soap12:Body>
</soap12:Envelope>
```

#### HTTP POST

The following is a sample HTTP POST request and response. The placeholders shown need to be replaced with actual values.

```
POST /ArgoFire/validate.asmx/ValidExpDate HTTP/1.1
Host: secure.ftipgw.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

ExpDate=string
```

```
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<boolean xmlns="http://localhost/SmartPayments/">boolean</boolean>
```

## <mark style="color:blue;">ValidMod10</mark>

**Endpoint URL:**\
`https://secure.ftipgw.com/ArgoFire/validate.asmx?op=ValidMod10`

**Method:**\
Supports **SOAP POST** and **HTTP POST** (form-encoded)

**Description:**\
Performs a Luhn (Mod 10) checksum validation on a credit card number. This is a basic mathematical test used to verify that the card number is structurally valid and not obviously mistyped.

***

### Request Parameters

| Parameter    | Type   | Required | Description                     |
| ------------ | ------ | -------- | ------------------------------- |
| UserName     | string | Yes      | Admin username                  |
| Password     | string | Yes      | Admin password                  |
| Vendor       | string | Yes      | Merchant numeric key            |
| CcAccountNum | string | Yes      | Credit card number to validate  |
| ExtData      | string | No       | Optional XML-formatted metadata |

***

### Notes

* **Luhn algorithm:**\
  This check uses the **Mod 10 algorithm**, which is standard across the payments industry to validate card number integrity. If the number fails this check, it's likely mistyped or invalid.
* **No issuer contact made:**\
  This is a **local algorithmic check** and does not involve any authorization or communication with card networks.
* **Use cases:**
  * Instant form validation in front-end applications
  * Filtering out fake or mistyped numbers before processing
  * Reducing unnecessary authorization attempts and failures
* **Does not confirm legitimacy:**\
  Passing the Luhn check only confirms that the number could be valid — it does **not** guarantee that the card is real, active, or authorized.
* **No expiration or CVV required:**\
  Only the card number is needed. This makes it especially useful early in the validation process.
* **ExtData support:**\
  Use to pass additional request metadata, logging preferences, or integration context, if applicable.
