---
description: You decide what you want and we deal with the execution
---

# Payment Intents

Intent based architecture allows us decoupling from the usual ways of how we do transactions on Web3 and lets us create a better user interface.

{% hint style="info" %}
Intents are partial transactions that are not created yet. They represent pure user intention or user operations that can be used to build a transaction in the future.
{% endhint %}



<figure><img src="https://3358659112-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEch4oI95sxHLn0ijmxk4%2Fuploads%2F5yTDhuj11R6q7gDbHSK4%2FCROPPED_DALL%C2%B7E%202023-09-17%2008.21.17%20-%20Hunter%20S.%20Thompson%20as%20a%20Llama.png?alt=media&#x26;token=c54e51e8-c968-4153-9357-fbff305dfd40" alt="" width="188"><figcaption><p>We work hard to fulfill your intents</p></figcaption></figure>

At DebitLlama we deal with payment intents only, they represent the intention to make recurring payments to an address for a period and interval. The payment intents can't be modified and can be converted into transactions that can only succeed if all the conditions are met.

You can cancel your payment intents any time directly or by disconnecting the wallet

{% hint style="info" %}
DebitLlama subscription payments are secure by default. The full wallet balance is never exposed and all payments contain a maximum limit.
{% endhint %}

When connecting a wallet and approving a payment, you let us know you wish to start making payments and we handle the rest. It's that easy.

#### Debit Items

To create a payment intent, there must be an item that is purchased. This is represented by a debit item, which defines the parameters of the subscriptions. Debit Items are created by the merchants and link to a custom checkout page which can be used to create payment intents related to that item.

#### Payment Intent Status

Intents are initially saved with **Created** status. After the first payment is made the status is changed immediately. **Paid** status represents a payment intent that finished, **Recurring** means there are pending future payments that are currently not fulfill-able.&#x20;

There are error states which correspond to **Relayer balance too low** or **Account balance too low**. \
The relayer balance must be topped up by the merchant to pay for the transactions, else the payments will not fulfill. This doesn't have to be done in all cases, if the transaction fees can be covered by protocol fees, the relayer fee can be avoided.\
**Account balance too low** is an error when the payment intent creator, the customer can't make payments.  The error will persist until the balance is refreshed after a deposit.

### Pricing

#### Fixed

This pricing represents the mechanism of how the payments are made. When a payment intent is created with fixed pricing it will auto fulfill. The payment amount is withdrawn immediately and will repeat with the interval until the subscription ends. \
These subscriptions cost the same amount each time and the total payments can be determined at the start

#### Dynamic

This pricing allows **pay as you go** payments and lets a merchant request a payment amount.

The payment intent contains a max debit-able amount that was approved per payment for the length of the subscription, but the final price is determined by the merchant who must create a **Dynamic Payment Request** with the actual amount that will be debited. These requests must be made by the merchant on the Payment Intent's page manually or via the API. \
When the request is created, the payment intent automatically fulfills if the required account balance is sufficient
