> For the complete documentation index, see [llms.txt](https://apidocs.juicefin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.juicefin.com/introduction.md).

# Authentication

Authentication identifies a specific requestor and its authenticate details. The authentication methods include:

```
Praxell User and Password
CSR User and Password
Cardholder and PIN or DOB or CVV (The three are mutually exclusive)
Session
```

Once authenticated, an API caller may continue to send its authentication details or use a Session ID returned in the response to a successful API call. Standard Login policies are applied, including:

```
Lockout on the third unsuccessful login attempt
A required change of password every 60 days
Strong passwords
Users are blocked on 3 failed login attempts
```

## XML Samples:

### Username based authentication

```
<?xml version="1.0" ?>
<PraxellXMLRequest>
  <AuthenticationDetails>
      <UserName></UserName>
      <UserPassword></UserPassword>
      <CreateSession></CreateSession> //--- (options: Y (default)/N)
    <ClientSourceIP></ClientSourceIP> 
</AuthenticationDetails>
  <ServiceDetails>
      <ServiceName></ServiceName>
      <UniqueRequestId>NNNNN</UniqueRequestId>
  </ServiceDetails>
  <Origin>
      <OriginType>API</OriginType>
  </Origin>
</PraxellXMLRequest>
```

### Cardholder PIN based authentication

```
<?xml version="1.0" ?>
<PraxellXMLRequest>
  <AuthenticationDetails>
      <AuthCardNumber>NNNNNNNNNNNNNNNN</AuthCardNumber>
      <AuthPIN>NNNN</AuthPIN>
    <ClientSourceIP></ClientSourceIP> 
</AuthenticationDetails>
</PraxellXMLRequest>
```

### Cardholder CVV based authentication

```
<?xml version="1.0" ?>
<PraxellXMLRequest>
  <AuthenticationDetails>
      <AuthCardNumber>NNNNNNNNNNNNNNNN</AuthCardNumber>
      <AuthCVV>NNN</AuthCVV>
    <ClientSourceIP></ClientSourceIP> 
</AuthenticationDetails>
</PraxellXMLRequest>
```

### Session ID based authentication

```
<?xml version="1.0" ?>
<PraxellXMLRequest>
  <AuthenticationDetails>
    <SessionId>48104914201219021</SessionId>
    <ClientSourceIP></ClientSourceIP> 
</AuthenticationDetails>
</PraxellXMLRequest>
```
