# `Worldpay.CNP.Parser`
[🔗](https://github.com/iamkanishka/worldpay/blob/v1.0.0/lib/worldpay/wpg/cnp.ex#L439)

Parses cnpAPI XML responses.

# `approved?`

```elixir
@spec approved?(%{required(String.t()) =&gt; term()}) :: boolean()
```

True if the response indicates approval (response code `"000"`).

# `fraud_results`

```elixir
@spec fraud_results(%{required(String.t()) =&gt; term()}) ::
  %{required(String.t()) =&gt; term()} | nil
```

Extract FraudSight `advancedFraudResults` from the response.

# `parse`

```elixir
@spec parse(String.t()) ::
  {:ok, %{required(String.t()) =&gt; term()}}
  | {:error, {:xml_parse_error, Exception.t()}}
```

Parse a cnpAPI XML response string.

# `response_code`

```elixir
@spec response_code(%{required(String.t()) =&gt; term()}) :: String.t() | nil
```

Extract response code from parsed cnp response.

# `txn_id`

```elixir
@spec txn_id(%{required(String.t()) =&gt; term()}) :: String.t() | nil
```

Extract the `cnpTxnId` from any transaction response.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
