> For the complete documentation index, see [llms.txt](https://docs.payshield.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payshield.ai/payshield-fraudcheck/field-definitions.md).

# Field Definitions

## address

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 255        |

The customers address. e.g. 123 Customer Street.

## amount

| data type | min length | max length |
| --------- | ---------- | ---------- |
| decimal   | 0          | 9          |

The amount processed in the system for this transaction against this sid.

## amounttotal

| data type | min length | max length |
| --------- | ---------- | ---------- |
| decimal   | 0          | -          |

The amounttotal field is the calculated total of the transaction based on all information sent in, the total value of the cart items, shipping, tax minus any coupon amount.

The amounttotal is always used displaying any all minor units. \
e.g.\
USD$17  is used as 17.00 \
JPY¥17 is used as 17&#x20;

Calculating the amounttotal follows this pseudocode:&#x20;

```
amounttotal = 0;

for each item in the cart {
    amounttotal = amounttotal + ( item.quantity * item.amount_unit);
}

amounttotal = amounttotal + (amount_shipping + amount_tax - amount_coupon);
```

## card\_ccv

| data type | min length | max length |
| --------- | ---------- | ---------- |
| integer   | 3          | 6          |

The  security code on the customers cards. Also known as, CCV, CVV, CVC and CSC. This is not the Card PIN.&#x20;

## card\_exp\_month

| data type | min length | max length |
| --------- | ---------- | ---------- |
| integer   | 2          | 2          |

The expiry month for the customers card. Should be 0 filled. \
e.g. 1 (January) should be sent as 01. 2 should be sent as 02.

## card\_exp\_year

| data type | min length | max length |
| --------- | ---------- | ---------- |
| integer   | 2          | 2          |

The expiry year for the customers card. Should be 0 filled.  And is only 2 digits long.\
e.g. 2001 should be 01. 2022 should be 22..

## card\_no

| data type | min length | max length |
| --------- | ---------- | ---------- |
| integer   | 13         | 20         |

Also known as the PAN. This is the full credit card number. It should **not** have any punctuation or separators when sent. The system will not filter for any punctuation or separators and will just fail the transaction.

## card\_type

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 255        |

This is the payment method. It should be indicative of the payment type.&#x20;

e.g.&#x20;

* visa
* &#x20;mastercard
* bank

They paymethod should be provided to you at onboarding time. The payment methods available for your sid can also be retrieved using the [rawfee ](https://docs.payshield.ai/payshield-fraudcheck/pages/wmh1GXQn8uR3ulN7v7eM#soap-rawfeeapi.php)API.&#x20;

## country

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 3          | 3          |

The country code that belongs to the customers credit card. This should be the [Alpha 3 ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code.&#x20;

## currency

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 3          | 3          |

The 3 Alpha character [ISO 4217 code ](https://en.wikipedia.org/wiki/ISO_4217)for the currency.

## email

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 150        |

The customers email address.

## firstname

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 100        |

The customers first name.

## hash

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 32         | 32         |

The hash is a secure signature that is generated when you communicate with TxProcess.\
\
Every time you communicate with TxProcess and will create a Payment Record / Transaction in the system you will be required to create a hash to verify the contents of the transaction it self, and to complete your authentication with the system.

### Generating the Hash

The hash is the md5 of

* sid
* [timestamp](#timestamp)
* [amounttotal](#amounttotal)
* [currency](#currency)
* [rcode](#rcode)

i.e. `md5('22'.'1234568995265421'.'17.00'.'USD'.'222b6c')`

## lastname

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 100        |

The customers lastname.

## mobile

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 25         |

The customers mobile number.

## phone

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 25         |

The customers land line phone number. Not their mobile phone number. For mobile phone number see [mobile](#mobile).

## postcode

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 16         |

The postcode / zip code of the customer.

## rcode

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 40         |

The rcode will be provided to you at onboarding. The rcode should never be sent in as plain text with the payment data. It is the equivalent to your password and should never be accessible / viewable online.

## routing\_no

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 14         |

The routing or transit number, used for bank transfers.

## ship\_address

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 255        |

The shipping address. e.g. 123 Customer Street.

## ship\_country

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 3          | 3          |

The shipping country code. This should be the [Alpha 3 ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code.&#x20;

## ship\_postcode

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 16         |

The shipping postcode / zip code of the customer.

## ship\_state

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 32         |

The shipping state for the transaction.

## ship\_suburb\_city

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 60         |

The shipping suburb or city of the transaction.

## sid

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 11         |

The sid (Site ID) will be provided to you at onboarding.

## state

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 32         |

The customers billing state.

## status

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 10         |

The result of the transaction

## suburb\_city

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 60         |

The billing suburb or city of the customer.

## threeDSecure

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | -          |

Expects be a JSON object with a collection of ThreeDSecure(3DS) fields and their values. This is for the Authorization transaction, after a 3DS Authentication transaction has already occurred. To complete a 3DS Authentication, please contact support and they will help guide you for your specific integration. The particular fields and their naming can be different depending on how the Authentication is done, and the payment processor being used.

## tid

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 255        |

The txid (transaction id) that the system generated for this transaction.

## timestamp

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 10         | 10         |

The timestamp is to be a Unix timestamp&#x20;

## tx\_action

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 0          | 15         |

the transaction type. e.g. `PAYMENT` or `SETTLEMENT`

## txid

| data type | min length | max length |
| --------- | ---------- | ---------- |
| string    | 16         | 16         |

The transaction id for this transaction. If this is the first in a series of transactions, this could be the same as the [parent\_txid ](#parent_txid). If it is not the first, there will be a parent\_txid that will be used to group all of the series together.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.payshield.ai/payshield-fraudcheck/field-definitions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
