Skip to main content

Refund a Plan

POST 

/:installmentPlanNumber/refund

Refund part or all of an installment plan.

Things to know:

  • If you fully refund the plan before its first charge/capture, the plan will be completely canceled (note that AutoCapture would have been set to false in your Initiate or Create call, so the plan wasn't immediately charged)

  • If you supply a service on a monthly basis, and you or the shopper elect to stop the subscription, you can perform a partial refund with the outstanding amount as Amount in the request

Strategies

There are several refund strategies you can choose when refunding a plan (note that the default is FutureInstallmentsFirst):

  • FutureInstallmentsFirst: At first customer isn’t refunded any installment money that they have already paid. Instead their refund lessens the amount of future installments they will be debited for, beginning with the next installment that is due. However, if their refund exceeds the amount of money they have left to pay (all installments), only then is the refund taken out of the installment money they have already paid
  • FutureInstallmentsLast: Customer is refunded beginning with the installment money they have already paid. If their refund amount exceeds the amount they have already paid, their amount of future installments due gets decreased, beginning with the next installment due and then proceeding to the later ones
  • FutureInstallmentsNotAllowed: Customer is only refunded from installment money that they have already paid, not from any future installments that they have due
  • ReduceFromLastInstallment: This is the same as FutureInstallmentsFirst, except that the refund is credited starting with the last installment first (e.g., number 6 of 6, as opposed to number 2 of 6).

Request

Path Parameters

    installmentPlanNumber stringrequired

Header Parameters

    X-Splitit-IdempotencyKey string
    X-Splitit-Idempotency-Behaviour string

    Possible values: [DisableReprocessingOnError, AllowReprocessingOnError]

    AllowReprocessingOnError is the default, which means that if you have a failed response or a timeout, the original request is marked as having failed, but a new request can be sent using the same key and will be reprocessed; if you set it to DisableReprocessingOnError, a request with the same key will not be reprocessed after a failure, and if the key is used again, you will get the same error response you got the first time

Body

    Amount decimalrequired
    RefundStrategy string

    Possible values: [FutureInstallmentsFirst, FutureInstallmentsLast, FutureInstallmentsNotAllowed, ReduceFromLastInstallment]

    ReferenceId string

    optional merchant-specified descriptor

Responses

Success

Schema

    RefundId string
    InstallmentPlanNumber string
    Currency string
    NonCreditRefundAmount decimal
    CreditRefundAmount decimal

    Summary

    object

    TotalAmount decimal
    FailedAmount decimal
    SucceededAmount decimal
    PendingAmount decimal
Loading...