# Update payout subscription PUT https://api-sandbox.payabli.com/api/PayoutSubscription/{id} Content-Type: application/json Updates a payout subscription's details. See [Manage payout subscriptions](/guides/pay-out-developer-payout-subscriptions-manage) for more information. Reference: https://docs.payabli.com/developers/api-reference/payout-subscription/update-payout-subscription ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: payabliApi version: 1.0.0 paths: /PayoutSubscription/{id}: put: operationId: update-payout-subscription summary: Update a payout subscription description: >- Updates a payout subscription's details. See [Manage payout subscriptions](/guides/pay-out-developer-payout-subscriptions-manage) for more information. tags: - subpackage_payoutSubscription parameters: - name: id in: path description: The payout subscription ID. required: true schema: type: integer format: int64 - name: requestToken in: header required: true schema: type: string responses: '200': description: Success content: application/json: schema: $ref: >- #/components/schemas/type_payoutSubscription:UpdatePayoutSubscriptionResponse '400': description: Bad request/ invalid data content: application/json: schema: description: Any type '401': description: Unauthorized request. content: application/json: schema: description: Any type '500': description: Internal API Error content: application/json: schema: description: Any type '503': description: Database connection error content: application/json: schema: $ref: '#/components/schemas/type_:PayabliApiResponse' requestBody: content: application/json: schema: $ref: >- #/components/schemas/type_payoutSubscription:UpdatePayoutSubscriptionBody servers: - url: https://api-sandbox.payabli.com/api - url: https://api.payabli.com/api components: schemas: type_payoutSubscription:PayoutSetPause: type: boolean description: >- Flag indicating if the payout subscription is paused. When a payout subscription is paused, no payouts are processed until it's unpaused, and the next payment date isn't calculated automatically. title: PayoutSetPause type_payoutSubscription:PayoutPaymentDetail: type: object properties: totalAmount: type: number format: double description: >- Total payout amount. If a service fee is included, this amount should include the service fee. serviceFee: type: number format: double description: >- Service fee to be deducted from the total amount. This amount must be a number, percentages aren't accepted. currency: type: string description: >- Currency code ISO-4217. If no code is provided, the currency in the paypoint setting is used. Default is `USD`. checkNumber: type: string description: >- A check number for the payout. Required when the payment method is `check`. orderDescription: type: string description: Description of the payout order. orderId: type: string description: Order identifier associated with the payout. orderIdAlternative: type: string description: Alternative order identifier. paymentDescription: type: string description: Description of the payment. settlementDescriptor: type: string description: Settlement descriptor for the payout. groupNumber: type: string description: Group number for the payout. source: type: string description: Source identifier for the payout. payabliTransId: type: string description: Payabli transaction identifier. unbundled: type: boolean description: >- When `true`, each bill is processed as a separate payout. When `false` or not provided, multiple bills are paid with a single payout. required: - totalAmount description: Payment details for payout subscriptions. title: PayoutPaymentDetail type_:AchSecCode: type: string description: >- Standard Entry Class (SEC) code is a three letter code that describes how an ACH payment was authorized. Supported values are: - PPD (Prearranged Payment and Deposit) - Used for credits or debits where an accountholder authorizes a company to initiate either a single or recurring transaction to their personal bank account. Common examples include direct deposit of payroll, mortgage payments, or utility bills. This is the default value for subscription payments. - WEB (Internet-Initiated/Mobile Entry) - Used for debit entries when authorization is obtained from an accountholder via the internet or a wireless network. Common examples are online bill payments, ecommerce purchases, and mobile app payments where the consumer enters their banking information online. - TEL (Telephone-Initiated Entry) - Used for one-time debit entries where authorization is obtained from a consumer via telephone. Common examples are phone-based purchases or bill payments where the consumer provides their banking information over the phone. - CCD (Corporate Credit or Debit) - Used for fund transfers between business accounts. This code is specifically for business-to-business transactions. Common examples include vendor payments and other business-to-business payments. - BOC (Back Office Conversion) - Used to convert paper checks received in-person at a point-of-sale or staffed payment location into electronic ACH debits. Required for Remote Deposit Capture (RDC) transactions. Only supports consumer checks; business, government, and mailed checks aren't eligible. title: AchSecCode type_:AchHolderType: type: string enum: - personal - business default: personal description: 'The bank''s accountholder type: personal or business.' title: AchHolderType type_:Initiator: type: string description: >- **Strongly recommended** The cardholder-initiated transaction (CIT) or merchant-initiated transaction (MIT) indicator for the transaction. If you don't specify a value, Payabli defaults to `merchant`. Available values: - `payor`: For cardholder-initiated transactions - `merchant`: For merchant-initiated transactions See [Understanding CIT and MIT Indicators](/guides/pay-in-transactions-cit-mit-overview) for more information. title: Initiator type_:StoredMethodUsageType: type: string description: >- **Strongly recommended** The usage type for the stored method, used for merchant-initiated transactions (MIT). If you don't specify a value, Payabli defaults to `unscheduled`. Available values: - `unscheduled`: This type is used for transactions that are one-time or otherwise not pre-scheduled. - `subscription`: This type is used for subscription payments. For example, monthly rental fees or ongoing service subscriptions. - `recurring`: This type is used for recurring payments that occur per a set plan. For example, splitting an HOA special assessment over 6 monthly payments. See [Understanding CIT and MIT Indicators](/guides/pay-in-transactions-cit-mit-overview) for more information. title: StoredMethodUsageType type___moneyOutTypes__:AuthorizePaymentMethod: type: object properties: method: type: string description: Payment method type - "managed", "vcard", "check", or "ach" achHolder: type: string description: >- Account holder name for ACH payments. Required when method is "ach" and not using `storedMethodId`. achRouting: type: string description: >- Bank routing number for ACH payments. Required when method is "ach" and not using `storedMethodId`. achAccount: type: string description: >- Bank account number for ACH payments. Required when method is "ach" and not using `storedMethodId`. achAccountType: type: string description: >- Account type for ACH payments ("checking" or "savings"). Required when method is "ach" and not using `storedMethodId`. achCode: $ref: '#/components/schemas/type_:AchSecCode' achHolderType: $ref: '#/components/schemas/type_:AchHolderType' storedMethodId: type: string description: >- ID of the stored ACH payment method. Only applicable when method is `ach`. Use this to reference a previously saved ACH method instead of providing bank details directly. initiator: $ref: '#/components/schemas/type_:Initiator' storedMethodUsageType: $ref: '#/components/schemas/type_:StoredMethodUsageType' required: - method description: >- Payment method object for vendor payouts. - `{ method: "managed" }` - Managed payment method - `{ method: "vcard" }` - Virtual card payment method - `{ method: "check" }` - Check payment method - `{ method: "ach", achHolder: "...", achRouting: "...", achAccount: "...", achAccountType: "..." }` - ACH payment method with bank details - `{ method: "ach", storedMethodId: "..." }` - ACH payment method using stored method ID title: AuthorizePaymentMethod type_:Frequency: type: string enum: - onetime - weekly - every2weeks - every6months - monthly - every3months - annually description: Frequency for operation. title: Frequency type_payoutSubscription:PayoutScheduleDetail: type: object properties: startDate: type: string description: >- Subscription start date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY. This must be a future date. endDate: type: string description: >- Subscription end date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY or the value `untilcancelled` to indicate a scheduled payout with infinite cycle. frequency: $ref: '#/components/schemas/type_:Frequency' description: Frequency of the payout subscription. title: PayoutScheduleDetail type_payoutSubscription:UpdatePayoutSubscriptionBody: type: object properties: setPause: $ref: '#/components/schemas/type_payoutSubscription:PayoutSetPause' paymentDetails: $ref: '#/components/schemas/type_payoutSubscription:PayoutPaymentDetail' description: Object describing details of the payout. paymentMethod: $ref: '#/components/schemas/type___moneyOutTypes__:AuthorizePaymentMethod' scheduleDetails: $ref: '#/components/schemas/type_payoutSubscription:PayoutScheduleDetail' description: Object describing the schedule for the payout subscription. title: UpdatePayoutSubscriptionBody type_:IsSuccess: type: boolean description: >- Boolean indicating whether the operation was successful. A `true` value indicates success. A `false` value indicates failure. title: IsSuccess type_:ResponseText: type: string description: 'Response text for operation: ''Success'' or ''Declined''.' title: ResponseText type_:CustomerId: type: integer format: int64 description: The Payabli-generated unique ID for the customer. title: CustomerId type_payoutSubscription:UpdatePayoutSubscriptionResponse: type: object properties: isSuccess: $ref: '#/components/schemas/type_:IsSuccess' responseText: $ref: '#/components/schemas/type_:ResponseText' responseData: type: string description: >- If `isSuccess` = true, this contains the payout subscription ID. When the subscription is paused, it also includes a description (for example, "42 paused"). If `isSuccess` = false, this contains the reason for the failure. customerId: $ref: '#/components/schemas/type_:CustomerId' required: - responseText description: Success response title: UpdatePayoutSubscriptionResponse type_:Responsedata: type: object additionalProperties: description: Any type description: The object containing the response data. title: Responsedata type_:PayabliApiResponse: type: object properties: isSuccess: $ref: '#/components/schemas/type_:IsSuccess' responseData: $ref: '#/components/schemas/type_:Responsedata' responseText: $ref: '#/components/schemas/type_:ResponseText' required: - responseText title: PayabliApiResponse securitySchemes: ApiKeyAuth: type: apiKey in: header name: requestToken ``` ## SDK Code Examples ```typescript PausePayoutSubscription import { PayabliClient } from "@payabli/sdk-node"; async function main() { const client = new PayabliClient({ apiKey: "YOUR_API_KEY_HERE", }); await client.payoutSubscription.updatePayoutSubscription(42, { setPause: true, }); } main(); ``` ```python PausePayoutSubscription from payabli import payabli client = payabli( api_key="YOUR_API_KEY_HERE", ) client.payout_subscription.update_payout_subscription( id=42, set_pause=True, ) ``` ```csharp PausePayoutSubscription using PayabliPayabliApi; using System.Threading.Tasks; namespace Usage; public class Example { public async Task Do() { var client = new PayabliPayabliApiClient( apiKey: "YOUR_API_KEY_HERE" ); await client.PayoutSubscription.UpdatePayoutSubscriptionAsync( 42L, new UpdatePayoutSubscriptionBody { SetPause = true } ); } } ``` ```go PausePayoutSubscription package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/PayoutSubscription/42" payload := strings.NewReader("{\n \"setPause\": true\n}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("requestToken", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby PausePayoutSubscription require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/PayoutSubscription/42") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"setPause\": true\n}" response = http.request(request) puts response.read_body ``` ```java PausePayoutSubscription import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://api-sandbox.payabli.com/api/PayoutSubscription/42") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"setPause\": true\n}") .asString(); ``` ```php PausePayoutSubscription request('PUT', 'https://api-sandbox.payabli.com/api/PayoutSubscription/42', [ 'body' => '{ "setPause": true }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift PausePayoutSubscription import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = ["setPause": true] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/PayoutSubscription/42")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```typescript UnpausePayoutSubscription import { PayabliClient } from "@payabli/sdk-node"; async function main() { const client = new PayabliClient({ apiKey: "YOUR_API_KEY_HERE", }); await client.payoutSubscription.updatePayoutSubscription(42, { setPause: false, }); } main(); ``` ```python UnpausePayoutSubscription from payabli import payabli client = payabli( api_key="YOUR_API_KEY_HERE", ) client.payout_subscription.update_payout_subscription( id=42, set_pause=False, ) ``` ```csharp UnpausePayoutSubscription using PayabliPayabliApi; using System.Threading.Tasks; namespace Usage; public class Example { public async Task Do() { var client = new PayabliPayabliApiClient( apiKey: "YOUR_API_KEY_HERE" ); await client.PayoutSubscription.UpdatePayoutSubscriptionAsync( 42L, new UpdatePayoutSubscriptionBody { SetPause = false } ); } } ``` ```go UnpausePayoutSubscription package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/PayoutSubscription/42" payload := strings.NewReader("{\n \"setPause\": false\n}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("requestToken", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby UnpausePayoutSubscription require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/PayoutSubscription/42") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"setPause\": false\n}" response = http.request(request) puts response.read_body ``` ```java UnpausePayoutSubscription import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://api-sandbox.payabli.com/api/PayoutSubscription/42") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"setPause\": false\n}") .asString(); ``` ```php UnpausePayoutSubscription request('PUT', 'https://api-sandbox.payabli.com/api/PayoutSubscription/42', [ 'body' => '{ "setPause": false }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift UnpausePayoutSubscription import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = ["setPause": false] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/PayoutSubscription/42")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ```typescript UpdatePayoutSubscription import { PayabliClient } from "@payabli/sdk-node"; async function main() { const client = new PayabliClient({ apiKey: "YOUR_API_KEY_HERE", }); await client.payoutSubscription.updatePayoutSubscription(42, { paymentDetails: { totalAmount: 750, serviceFee: 0, }, scheduleDetails: { startDate: "01/01/2026", endDate: "12/31/2026", frequency: "monthly", }, }); } main(); ``` ```python UpdatePayoutSubscription from payabli import payabli from payabli.payout_subscription import PayoutPaymentDetail, PayoutScheduleDetail client = payabli( api_key="YOUR_API_KEY_HERE", ) client.payout_subscription.update_payout_subscription( id=42, payment_details=PayoutPaymentDetail( total_amount=750, service_fee=0, ), schedule_details=PayoutScheduleDetail( start_date="01/01/2026", end_date="12/31/2026", frequency="monthly", ), ) ``` ```csharp UpdatePayoutSubscription using PayabliPayabliApi; using System.Threading.Tasks; namespace Usage; public class Example { public async Task Do() { var client = new PayabliPayabliApiClient( apiKey: "YOUR_API_KEY_HERE" ); await client.PayoutSubscription.UpdatePayoutSubscriptionAsync( 42L, new UpdatePayoutSubscriptionBody { PaymentDetails = new PayoutPaymentDetail { TotalAmount = 750, ServiceFee = 0 }, ScheduleDetails = new PayoutScheduleDetail { StartDate = "01/01/2026", EndDate = "12/31/2026", Frequency = Frequency.Monthly } } ); } } ``` ```go UpdatePayoutSubscription package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/PayoutSubscription/42" payload := strings.NewReader("{\n \"paymentDetails\": {\n \"totalAmount\": 750,\n \"serviceFee\": 0\n },\n \"scheduleDetails\": {\n \"startDate\": \"01/01/2026\",\n \"endDate\": \"12/31/2026\",\n \"frequency\": \"monthly\"\n }\n}") req, _ := http.NewRequest("PUT", url, payload) req.Header.Add("requestToken", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby UpdatePayoutSubscription require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/PayoutSubscription/42") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Put.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"paymentDetails\": {\n \"totalAmount\": 750,\n \"serviceFee\": 0\n },\n \"scheduleDetails\": {\n \"startDate\": \"01/01/2026\",\n \"endDate\": \"12/31/2026\",\n \"frequency\": \"monthly\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java UpdatePayoutSubscription import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.put("https://api-sandbox.payabli.com/api/PayoutSubscription/42") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"paymentDetails\": {\n \"totalAmount\": 750,\n \"serviceFee\": 0\n },\n \"scheduleDetails\": {\n \"startDate\": \"01/01/2026\",\n \"endDate\": \"12/31/2026\",\n \"frequency\": \"monthly\"\n }\n}") .asString(); ``` ```php UpdatePayoutSubscription request('PUT', 'https://api-sandbox.payabli.com/api/PayoutSubscription/42', [ 'body' => '{ "paymentDetails": { "totalAmount": 750, "serviceFee": 0 }, "scheduleDetails": { "startDate": "01/01/2026", "endDate": "12/31/2026", "frequency": "monthly" } }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift UpdatePayoutSubscription import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "paymentDetails": [ "totalAmount": 750, "serviceFee": 0 ], "scheduleDetails": [ "startDate": "01/01/2026", "endDate": "12/31/2026", "frequency": "monthly" ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/PayoutSubscription/42")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "PUT" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```