---
title: "Retry an incomplete payment"
method: POST
path: "/quotes/{quoteId}/retry"
tags: ["Sending Payments"]
---

# Retry an incomplete payment

`POST /quotes/{quoteId}/retry`

In the case where a customer is debited but the Lightning payment fails to complete, integrators can retry the payment using this endpoint.  

Payments retried with this endpoint will debit from the sender and deliver to the recipient the same amount as the original quote.
As UMA as a service does not persist customer PII, retries need to start with a lookup request to retrieve the original quote's recipient counter party data requirements then pass that sender information in the request body.
Before calling this endpoint, you should reach out to the UMA as a service team to investigate the underlying issue.  As part of resolution, they'll update the transaction to the appropriate state.  The quote / transaction to retry must be in a `FAILED` or `REFUNDED` state.

## Path parameters

- `quoteId` string, required

## Request body

- object
  - `lookupId` string, required — Unique identifier for the prior receiver uma address lookup request.
  - `senderUserInfo` object — Key-value pairs of information about the sender which was requested by the counterparty (recipient) institution. Any fields specified in `requiredPayerDataFields` from the response of the `/receiver/{receiverUmaAddress}` (lookupUma) endpoint MUST be provided here if they were requested. If the counterparty (recipient) institution did not request any information, this field can be omitted.

## Response `201`

Quote created successfully. The response includes payment instructions
that the client can use to execute the payment through their banking provider.

- Quote
  - `quoteId` string, required — Unique identifier for this quote
  - `sendingCurrency` Currency, required
    - `code` string — Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. "SAT" for satoshis, "USDC" for USDCoin, etc.)
    - `name` string — Full name of the currency
    - `symbol` string — Symbol of the currency
    - `decimals` integer — Number of decimal places for the currency
  - `receivingCurrency` Currency, required
    - `code` string — Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. "SAT" for satoshis, "USDC" for USDCoin, etc.)
    - `name` string — Full name of the currency
    - `symbol` string — Symbol of the currency
    - `decimals` integer — Number of decimal places for the currency
  - `totalSendingAmount` integer, required — The total amount that will be sent in the smallest unit of the sending currency (eg. cents).
  - `totalReceivingAmount` integer, required — The total amount that will be received in the smallest unit of the receiving currency (eg. cents).
  - `exchangeRate` number, required — Number of sending currency units per receiving currency unit.
  - `expiresAt` string, date-time, required — When this quote expires (typically 1-5 minutes after creation)
  - `feesIncluded` integer, required — The fees associated with the quote in the smallest unit of the sending currency (eg. cents).
  - `counterpartyInformation` object — Information about the recipient, as required by the platform in their configuration.
  - `paymentInstructions` PaymentInstructions, required
    - `reference` string, required — Unique reference code that must be included with the payment to properly credit it
    - `instructionsNotes` string — Additional human-readable instructions for making the payment
    - `bankAccountInfo` union, required
      - PaymentClabeAccountInfo
        - `accountType` 'CLABE' | 'US_ACCOUNT' | 'PIX' | 'IBAN' | 'FBO' | 'UPI', required — Type of bank account information
        - `clabeNumber` string, required — 18-digit CLABE number (Mexican banking standard)
        - `bankName` string, required — Name of the bank
        - `accountHolderName` string — Name of the account holder
      - PaymentUsAccountInfo
        - `accountType` 'CLABE' | 'US_ACCOUNT' | 'PIX' | 'IBAN' | 'FBO' | 'UPI', required — Type of bank account information
        - `accountNumber` string, required — US bank account number
        - `routingNumber` string, required — ACH routing number (9 digits)
        - `accountCategory` 'CHECKING' | 'SAVINGS', required — Type of account (checking or savings)
        - `bankName` string — Name of the bank
        - `accountHolderName` string — Name of the account holder
      - PaymentPixAccountInfo
        - `accountType` 'CLABE' | 'US_ACCOUNT' | 'PIX' | 'IBAN' | 'FBO' | 'UPI', required — Type of bank account information
        - `pixKey` string, required — PIX key for Brazilian instant payments
        - `pixKeyType` 'CPF' | 'CNPJ' | 'EMAIL' | 'PHONE' | 'RANDOM', required — Type of PIX key being used
        - `bankName` string — Name of the bank
        - `accountHolderName` string — Name of the account holder
      - PaymentIbanAccountInfo
        - `accountType` 'CLABE' | 'US_ACCOUNT' | 'PIX' | 'IBAN' | 'FBO' | 'UPI', required — Type of bank account information
        - `iban` string, required — International Bank Account Number
        - `swiftBic` string — SWIFT/BIC code (8 or 11 characters)
        - `bankName` string, required — Name of the bank
        - `accountHolderName` string — Name of the account holder
      - PaymentFboAccountInfo
        - `accountType` 'CLABE' | 'US_ACCOUNT' | 'PIX' | 'IBAN' | 'FBO' | 'UPI', required — Type of bank account information
        - `paymentUrl` string, uri, required — The url to make request to in order to confirm payment
        - `paymentMethod` 'POST' | 'GET', required — The HTTP method to use for confirming the payment
      - PaymentUpiAccountInfo
        - `accountType` 'CLABE' | 'US_ACCOUNT' | 'PIX' | 'IBAN' | 'FBO' | 'UPI', required — Type of bank account information
        - `vpa` string, required — Virtual Payment Address for UPI payments
        - `accountHolderName` string — Name of the account holder
  - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'EXPIRED' — Current status of the quote
  - `transactionId` string, required — The ID of the transaction created from this quote.
  - `originalQuoteId` string — ID of the quote that is being retried
  - `rateDetails` OutgoingRateDetails — Details about the rate and fees for an outgoing transaction or quote.
    - `counterpartyMultiplier` number, double, required — The underlying multiplier from mSATs to the receiving currency as returned by the counterparty institution.
    - `counterpartyFixedFee` integer, required — The fixed fee charged by the counterparty institution to execute the quote in the smallest unit of the receiving currency (eg. cents).
    - `umaaasMultiplier` number, double, required — The underlying multiplier from the sending currency to mSATS, including variable fees.
    - `umaaasFixedFee` integer, required — The fixed fee charged by the UMAaaS product to execute the quote in the smallest unit of the sending currency (eg. cents).
    - `umaaasVariableFeeRate` number, double, required — The variable fee rate charged by the UMAaaS product to execute the quote as a percentage of the sending currency amount.
    - `umaaasVariableFeeAmount` number, required — The variable fee amount charged by the UMAaaS product to execute the quote in the smallest unit of the sending currency (eg. cents). This is the sending amount times umaaasVariableFeeRate.

## Other responses

- `400` — Bad request - Missing or invalid parameters
- `401` — Unauthorized
- `422` — Unprocessable Entity - Additional counterparty information required, or the payment cannot be completed for another reason.

---

[API](https://skmtc.net/lightsparkdev/apis/uma-as-a-service-umaaas-api.md) · [All operations](https://skmtc.net/lightsparkdev/apis/uma-as-a-service-umaaas-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightsparkdev/uma-as-a-service-umaaas-api/revisions/2e2b5ba6d69b/schema)
