> For the complete documentation index, see [llms.txt](https://docs.flowretail.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowretail.com/docs/developers/api-documentation/order/list-available-payment-methods-for-order.md).

# List available payment methods for order

List available payment methods for order.

Required permissions: SALES\_ORDER,RETURN\_ORDER

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Order","description":"Order"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"AvailableOrderPaymentMethodListResponse":{"description":"Example response","content":{"application/json":{"schema":{"type":"object","required":["items","messages"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AvailableOrderPaymentMethodResponseSchema"}},"messages":{"type":"array","items":{"$ref":"#/components/schemas/OrderItemMessageSchema"}}}}}}}},"schemas":{"AvailableOrderPaymentMethodResponseSchema":{"title":"AvailableOrderPaymentMethodResponseSchema","type":"object","description":"A payment method that may be offered for the requested order lines.\n\n`presentation` carries everything needed to render the row and enable or disable it, with the\nresolved visibility and amount bounds. The flat `visibility`, `position`, `amountInput` and\n`minimumPaymentAmount` fields are DEPRECATED August 2026 in favour of their counterparts inside\n`presentation`, and are removed no earlier than November 2026. They are still populated, with\ntheir stored and unresolved values, until then.","required":["allowCashback","allowPrepayment","name","description","parameters","paymentCode","storePaymentMethodUid","requirements","settlementCode","visibility","position","minimumPaymentAmount","amountInput","useRounding","receiptText","presentation","agreements"],"properties":{"allowCashback":{"type":"boolean"},"allowPrepayment":{"type":"boolean"},"name":{"type":"string"},"description":{"type":"string"},"receiptText":{"type":"string","maxLength":500,"description":"from TenantPaymentMethod; text printed on the receipt when this payment method is used"},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/AvailablePaymentMethodParametersResponseSchema"}},"agreements":{"type":"array","description":"The agreements this payment method offers, in `position` order. Only agreements that are active and within their validity period are listed, so an empty array means there is nothing to choose. Pass the chosen `tenantPaymentMethodAgreementUid` when creating the settlement.","items":{"$ref":"#/components/schemas/AvailableOrderPaymentMethodAgreementResponseSchema"}},"paymentCode":{"$ref":"#/components/schemas/PaymentMethodCodeENUM"},"storePaymentMethodUid":{"$ref":"#/components/schemas/UID"},"requirements":{"$ref":"#/components/schemas/PaymentMethodRequirementResponseSchema"},"settlementCode":{"type":"string"},"presentation":{"$ref":"#/components/schemas/PaymentMethodPresentationResponseSchema"},"visibility":{"$ref":"#/components/schemas/PaymentMethodVisibilityENUM","deprecated":true,"description":"DEPRECATED August 2026. Use presentation.visibility instead, which is the resolved value. Removed no earlier than November 2026."},"position":{"type":"integer","deprecated":true,"description":"DEPRECATED August 2026. Use presentation.position instead. Removed no earlier than November 2026."},"minimumPaymentAmount":{"type":"integer","deprecated":true,"description":"DEPRECATED August 2026. Use presentation.minimumPaymentAmount instead, which is the resolved\nvalue. This field keeps the stored value, so it differs from the resolved one when amountInput\nis FORCE_REMAINING. Removed no earlier than November 2026."},"amountInput":{"$ref":"#/components/schemas/TenantPaymentMethodAmountInputENUM","deprecated":true,"description":"DEPRECATED August 2026. Use presentation.amountInput instead. Removed no earlier than November 2026."},"useRounding":{"type":"boolean"}}},"AvailablePaymentMethodParametersResponseSchema":{"title":"AvailablePaymentMethodParametersResponseSchema","description":"AvailablePaymentMethodParametersResponseSchema","type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"required":{"type":"boolean"},"key":{"type":"string"},"keyType":{"$ref":"#/components/schemas/TenantPaymentMethodParameterTypeENUM"},"regex":{"type":"string","description":"regular expression"}},"required":["name","description","required","key","keyType","regex"]},"TenantPaymentMethodParameterTypeENUM":{"title":"TenantPaymentMethodParameterTypeENUM","type":"string","enum":["TEXT","INTEGER","NUMERIC","DATE","MOBILE","MODULUS10","MODULUS11"]},"AvailableOrderPaymentMethodAgreementResponseSchema":{"title":"AvailableOrderPaymentMethodAgreementResponseSchema","description":"An agreement offered on a payment method at payment time. Choosing one adds a line to the order for its product, carrying a cost derived from the percentage.","type":"object","required":["tenantPaymentMethodAgreementUid","name","productUid","percentage","position"],"properties":{"tenantPaymentMethodAgreementUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string","description":"Name of the agreement."},"productUid":{"$ref":"#/components/schemas/UID"},"percentage":{"type":"integer","description":"Percentage used to calculate the cost adjustment, given in hundredths of a percent: 250 means 2,50 %. A positive percentage gives a negative cost, and a negative percentage gives a positive cost. It is applied to the settlement amount."},"position":{"type":"integer","description":"Sort order when the agreements are listed."}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"PaymentMethodCodeENUM":{"description":"`PAYEX_CARD` is discontinued: it stays for historical orders, settlements and filters, but it cannot be added to a tenant or store, and a new settlement with it is refused.","enum":["CASH","INVOICE","VIPPS","ADYEN_CARD","PAYEX_CARD","SANTANDER","EXTERNAL","TRANSFER_MONEY","FLOWGIFTCARD","STORE_CREDIT","STRIPE_CARD","TWO_INVOICE","NETS_CARD","VERIFONE_CARD","FOREIGN_CASH","SWISH","DINTERO_PAYMENT_LINK","DINTERO_CARD","BRITANNIA","PREPAYMENT","SOFTPAY_CARD","PAYMENT_GATEWAY","LOYALTY_POINTS","PAYEX_GIFTCARD"],"title":"PaymentMethodCodeENUM","type":"string"},"PaymentMethodRequirementResponseSchema":{"title":"PaymentMethodRequirementResponseSchema","type":"object","description":"PaymentMethodRequirementResponseSchema","required":["requireCustomer","requireCustomerMobile","requireCustomerEmail","requireCustomerType","requireCustomerContact","requireExclusiveUse","requireRefundToSameMethod"],"properties":{"requireCustomer":{"type":"boolean"},"requireCustomerMobile":{"type":"boolean"},"requireCustomerEmail":{"type":"boolean"},"requireCustomerType":{"$ref":"#/components/schemas/PaymentMethodCustomerTypeENUM"},"requireCustomerContact":{"type":"boolean"},"requireExclusiveUse":{"type":"boolean"},"requireRefundToSameMethod":{"type":"boolean"}}},"PaymentMethodCustomerTypeENUM":{"title":"PaymentMethodCustomerTypeENUM","type":"string","enum":["ANY","PERSON","COMPANY"]},"PaymentMethodPresentationResponseSchema":{"title":"PaymentMethodPresentationResponseSchema","type":"object","description":"Everything the client needs to render the payment method row and enable or disable it. Always\npopulated, on sales as well as refunds.\n\n`selectable: true` means core knows of nothing that blocks this method — not that every\nprecondition is satisfied. Order-derived blocks live here; input-derived preconditions\n(missing customer, e-mail, mobile) live in `requirements` and remain the client's to enforce.\n\n`visibility` and `minimumPaymentAmount` are the **resolved** values: visibility after\nHIDDEN_WHEN_NOT_REQUIRED has been flipped to LISTED for a required method, and the minimum\nafter FORCE_REMAINING has locked it to the outstanding amount. The deprecated flat fields on\nthe parent schema keep their stored, unresolved values.","required":["selectable","severity","reasonCode","message","visibility","position","amountInput","minimumPaymentAmount","maximumPaymentAmount"],"properties":{"selectable":{"type":"boolean","description":"When false the client must present the method as unavailable and show `message`."},"severity":{"$ref":"#/components/schemas/PaymentMethodPresentationSeverityENUM"},"reasonCode":{"$ref":"#/components/schemas/PaymentMethodPresentationReasonENUM"},"message":{"type":"string","description":"Translated explanation for the operator. Empty when there is nothing to say."},"visibility":{"$ref":"#/components/schemas/PaymentMethodVisibilityENUM"},"position":{"type":"integer","description":"Sort order for the payment method row."},"amountInput":{"$ref":"#/components/schemas/TenantPaymentMethodAmountInputENUM"},"minimumPaymentAmount":{"type":"integer","description":"Lowest amount this method may settle, in minor units."},"maximumPaymentAmount":{"type":"integer","nullable":true,"description":"Highest amount this method may settle, in minor units, always positive. `null` means there is\nno upper bound — the method allows cashback, or the payment service provider decides\n(unreferenced refund). `0` means nothing can be settled, for example on an order that is\nalready paid in full. `null` and `0` are different answers and must not be collapsed."}}},"PaymentMethodPresentationSeverityENUM":{"title":"PaymentMethodPresentationSeverityENUM","type":"string","enum":["NONE","INFO","BLOCKED"],"description":"How the client should style `presentation.message`.\n\n| Enum | Description |\n|-----|-----|\n| NONE | Nothing to say. `message` is empty |\n| INFO | Informational note. The method is still selectable |\n| BLOCKED | The method cannot be used. `selectable` is false |"},"PaymentMethodPresentationReasonENUM":{"title":"PaymentMethodPresentationReasonENUM","type":"string","enum":["ELIGIBLE","REFUND_NO_CARD_NEEDED","REFUND_CARD_REQUIRED","REFUND_NO_ORIGINAL_PAYMENT","REFUND_MULTIPLE_CAPTURES","REFUND_REQUIRE_SAME_METHOD","REFUND_METHOD_NOT_AVAILABLE","REFUND_NOT_SUPPORTED"],"description":"Why the payment method is presented the way it is. Extensible — new reasons may be added, so\nclients must treat an unknown value as informational when `selectable` is true and as blocking\notherwise, and fall back to showing `message`.\n\n| Enum | Severity | Description |\n|-----|-----|-----|\n| ELIGIBLE | NONE | Nothing to say |\n| REFUND_NO_CARD_NEEDED | INFO | The refund goes back to the original payment on its own. The customer does not have to do anything |\n| REFUND_CARD_REQUIRED | INFO | The refund cannot be tied to the original payment, so the customer must present the card on the terminal |\n| REFUND_NO_ORIGINAL_PAYMENT | BLOCKED | The original sale was not paid with this method |\n| REFUND_MULTIPLE_CAPTURES | BLOCKED | The sale has several payments with this method, so no single original transaction can be targeted |\n| REFUND_REQUIRE_SAME_METHOD | BLOCKED | At least one line must be refunded with a different, specific method |\n| REFUND_METHOD_NOT_AVAILABLE | BLOCKED | The required method is not set up in this store |\n| REFUND_NOT_SUPPORTED | BLOCKED | The method cannot be used for a refund at all, whatever the sale was paid with |\n\nThe two names say what the operator has to do, not which provider mechanism is used. A refund\nthat goes back on its own is what the card networks call a referenced refund; one that needs the\ncard read on the terminal is what they call unreferenced — the opposite sense of the word from\nthe one a reader expects, which is why the names avoid it.\n\n`REFUND_CARD_REQUIRED` is also the answer when the original receipt was settled with more than\none payment method, and there it is deliberately pessimistic: whether the refund can go back on\nits own depends on the amount, and the amount is not known when the list is built. A refund\nwithin the card's share of that receipt does go straight back to it, so the customer is asked for\nthe card without strictly needing to. Nothing is blocked either way — `selectable` stays true and\nthe refund succeeds."},"PaymentMethodVisibilityENUM":{"title":"PaymentMethodVisibilityENUM","type":"string","enum":["FEATURED","LISTED","HIDDEN","HIDDEN_WHEN_NOT_REQUIRED"]},"TenantPaymentMethodAmountInputENUM":{"title":"TenantPaymentMethodAmountInputENUM","type":"string","enum":["NONE","AUTOFILL_REMAINING","FORCE_REMAINING"]},"OrderItemMessageSchema":{"title":"OrderItemMessageSchema","type":"object","required":["orderItemUid","message"],"properties":{"orderItemUid":{"$ref":"#/components/schemas/OptionalUID"},"message":{"type":"string"}}},"OptionalUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*"}},"requestBodies":{"OrderPaymentMethodsAvailable":{"content":{"application/json":{"schema":{"type":"object","properties":{"orderItemUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}}}}}}}}},"paths":{"/tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/payment-methods":{"post":{"summary":"List available payment methods for order","tags":["Order"],"responses":{"200":{"$ref":"#/components/responses/AvailableOrderPaymentMethodListResponse"}},"operationId":"post-stores-orders-payment-methods","description":"List available payment methods for order.\n\nRequired permissions: SALES_ORDER,RETURN_ORDER","requestBody":{"$ref":"#/components/requestBodies/OrderPaymentMethodsAvailable"}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.flowretail.com/docs/developers/api-documentation/order/list-available-payment-methods-for-order.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
