# Pay In schemas > Visualize Pay In transaction workflows with interactive schemas. Follow step-by-step flows for embedded components, API token storage, and payment processing from authorization to settlement These transaction schemas cover the most common pay in, also known as money in, transaction tasks in Payabli. ### Make a transaction with the `embeddedMethodUI` component Making a transaction with the [`embeddedMethodUI` component](/guides/pay-in-components-embeddedmethod-ui) happens over several steps. Use the component to store payment methods and make a payment transaction. *This flowchart explains the basic steps for the task. Hover over a step for more information.*
Run `payabliExec(method, parameters)` Here, the action is set to `method`. Send the `paymentDetail` and `customerData` object in `parameters`.
Payment method saved The payment method is saved and includes the data sent as parameters. An ID for the payment method is returned, which is then used to make transactions.
Callback function Use a callback function to send a transaction that uses the new payment method.
Response
### Save a payment method with the API You can save a payment method using the API with the [token storage endpoint](/developers/api-reference/tokenstorage/save-a-payment-method-tokenize). If you want to store the token permanently, make sure that the `temporary` query parameter is set to `false`. *This flowchart explains the basic steps for the task. Hover over a step for more information.*
POST to `addMethod` endpoint Make a POST request to the addMethod endpoint. Set `temporary` to `true` to create a single use token that's good for 12 hours. Set `temporary` to `false` to save a permanent token.
Response
Make a POST request to the `addMethod` endpoint. Set `temporary` to `true` to create a single use token that's good for 12 hours. Set `temporary` to `false` to save a permanent token. ### Make a transaction with a stored payment method If you already have a stored payment method for the user, you can just make a POST request to the [getpaid endpoint](/developers/api-reference/moneyin/make-a-transaction) using the `storedMethodId`. *This flowchart explains the basic steps for the task. Hover over a step for more information.*
POST to transaction endpoint
using `storedMethodId` Make a POST request to a transaction endpoint (like /MoneyIn/getpaid). Use the saved method's `storedMethodId` in the `paymentMethod` object.
Response
Make a POST request to a transaction endpoint (like /MoneyIn/getpaid). Use the saved method's `storedMethodId` in the `paymentMethod` object. ### Void, refund, and reverse transactions Learn more about the difference between voids, refunds, and reversals in [Void, Refund, or Reverse a Transaction](/guides/pay-in-developer-transactions-cancel). #### Void a transaction To void an unsettled transaction, send a GET request to the [/MoneyIn/void/\{transID} endpoint](/developers/api-reference/moneyin/void-a-transaction) using the transaction's `referenceID` as the `transId` parameter. *This flowchart explains the basic steps for the task. Hover over a step for more information.*
GET to void endpoint
using `transId` Make a GET request to the void endpoint (/MoneyIn/void), using the `referenceId` returned with the transaction as the `transId` parameter.
Response
Make a GET request to the void endpoint (/MoneyIn/void), using the `referenceId` returned with the transaction as the `transId` parameter. #### Refund a transaction To refund a settled transaction, send a GET request to the [/MoneyIn/refund endpoint](/developers/api-reference/moneyin/refund-a-settled-transaction) with `transId` and `amount` parameters. *This flowchart explains the basic steps for the task. Hover over a step for more information.*
GET to return endpoint
using `transId` and `amount` Make a GET request to the refund endpoint (/MoneyIn/refund), using the `referenceId` returned with the transaction as the `transId` parameter. You must specify the amount to refund.
Response
Make a GET request to the refund endpoint (/MoneyIn/refund), using the `referenceId` returned with the transaction as the `transId` parameter. You must specify the amount to refund. #### Reverse a transaction To reverse a transaction, send a GET request to the [/MoneyIn/reverse endpoint](/developers/api-reference/moneyin/reverse-a-transaction) with `transId` and `amount` parameters. *This flowchart explains the basic steps for the task. Hover over a step for more information.*
GET to reverse endpoint
using `transId` and `amount` Make a GET request to the reverse endpoint (/MoneyIn/reverse), using the `referenceId` returned with the transaction as the `transId` parameter. You must specify the amount to refund.
Response
Make a GET request to the reverse endpoint (/MoneyIn/reverse), using the `referenceId` returned with the transaction as the `transId` parameter. You must specify the amount to refund. ## Related resources See these related resources to help you get the most out of Payabli. * **[Pay In statuses](/guides/pay-in-status-reference)** - Learn about Pay In (money in) statuses * **[EmbeddedMethod UI](/guides/pay-in-components-embeddedmethod-ui)** - Learn how to use the EmbeddedMethod UI embedded component to add the ability to securely store a payment profile or execute a sale