# `Worldpay.Schema.PaymentInstrument`
[🔗](https://github.com/iamkanishka/worldpay/blob/v1.0.0/lib/worldpay/schema.ex#L193)

Payment instrument variants.

| `:type` | Description |
|---|---|
| `"card/plain"` | Raw card details |
| `"card/checkout"` | Checkout SDK session href |
| `"card/token"` | Stored Worldpay token href |
| `"card/networkToken"` | Network token href + optional cryptogram |
| `"card/networkToken+applepay"` | Decrypted Apple Pay network token |
| `"card/networkToken+googlepay"` | Decrypted Google Pay network token |

# `t`

```elixir
@type t() :: %Worldpay.Schema.PaymentInstrument{
  billing_address: Worldpay.Schema.Address.t() | nil,
  card_holder_name: String.t() | nil,
  card_number: String.t() | nil,
  cryptogram: String.t() | nil,
  cvc: String.t() | nil,
  eci: String.t() | nil,
  expiry_month: non_neg_integer() | nil,
  expiry_year: non_neg_integer() | nil,
  href: String.t() | nil,
  session_href: String.t() | nil,
  token: String.t() | nil,
  type: String.t()
}
```

# `to_map`

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

Serialize to a string-keyed map for the Worldpay API.

---

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