# `PhoenixKitBilling.PaymentOption`
[🔗](https://github.com/BeamLabEU/phoenix_kit_billing/blob/0.5.1/lib/phoenix_kit_billing/schemas/payment_option.ex#L1)

Payment option schema for checkout.

Represents available payment methods during checkout, including:
- Offline methods: Cash on Delivery (COD), Bank Transfer
- Online methods: Stripe, PayPal, Razorpay, EveryPay

## Type

- `offline` - Payment handled outside the system (COD, bank transfer)
- `online` - Payment processed through a provider (Stripe, PayPal)

## Billing Profile Requirement

Some payment methods (like COD or Bank Transfer) require billing information
for invoicing purposes. Online card payments typically don't need this as
the payment provider handles customer details.

# `changeset`

Changeset for creating and updating payment options.

# `codes`

Returns list of valid code values.

# `icon_name`

Returns the icon name for a payment option.

# `offline?`

Returns true if this payment option is an offline payment.

# `online?`

Returns true if this payment option is an online payment.

# `requires_billing?`

Returns true if this payment option requires a billing profile.

# `types`

Returns list of valid type values.

---

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