# Reissue payout POST https://api-sandbox.payabli.com/api/MoneyOut/reissue Content-Type: application/json Reissues a payout transaction with a new payment method. This creates a new transaction linked to the original and marks the original transaction as reissued. The original transaction must be in **Processing** or **Processed** status. The payment method in the request body is used directly. The endpoint doesn't fall back to vendor-managed payment methods. The new transaction goes through the standard authorize-and-capture flow automatically. Both the original and new transactions are linked through their event histories for audit purposes. Reference: https://docs.payabli.com/developers/api-reference/moneyout/reissue-a-payout-transaction ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: payabliApi version: 1.0.0 paths: /MoneyOut/reissue: post: operationId: reissue-out summary: Reissue a payout transaction description: >- Reissues a payout transaction with a new payment method. This creates a new transaction linked to the original and marks the original transaction as reissued. The original transaction must be in **Processing** or **Processed** status. The payment method in the request body is used directly. The endpoint doesn't fall back to vendor-managed payment methods. The new transaction goes through the standard authorize-and-capture flow automatically. Both the original and new transactions are linked through their event histories for audit purposes. tags: - subpackage_moneyOut parameters: - name: transId in: query description: The transaction ID of the payout to reissue. required: true schema: type: string - name: requestToken in: header required: true schema: type: string - name: idempotencyKey in: header required: false schema: $ref: '#/components/schemas/type_:IdempotencyKey' responses: '200': description: Success content: application/json: schema: $ref: >- #/components/schemas/type___moneyOutTypes__:ReissuePayoutResponse '400': description: Bad request/ invalid data content: application/json: schema: description: Any type '401': description: Unauthorized request. content: application/json: schema: description: Any type '403': description: Consent error content: application/json: schema: $ref: '#/components/schemas/type_:PayabliApiResponsePaylinks' '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___moneyOutTypes__:ReissuePayoutBody' servers: - url: https://api-sandbox.payabli.com/api - url: https://api.payabli.com/api components: schemas: type_:IdempotencyKey: type: string description: >- _Optional but recommended_ A unique ID that you can include to prevent duplicating objects or transactions in the case that a request is sent more than once. This key isn't generated in Payabli, you must generate it yourself. This key persists for 2 minutes. After 2 minutes, you can reuse the key if needed. title: IdempotencyKey type_:AchHolderType: type: string enum: - personal - business default: personal description: 'The bank''s accountholder type: personal or business.' title: AchHolderType type___moneyOutTypes__:ReissuePaymentMethod: type: object properties: method: type: string description: Payment method type. Must be `"ach"`, `"check"`, or `"vcard"`. achHolder: type: string description: Account holder name. Required when `method` is `"ach"`. achRouting: type: string description: Bank routing number (9 digits). Required when `method` is `"ach"`. achAccount: type: string description: >- Bank account number (8-17 digits). Required when `method` is `"ach"`. achAccountType: type: string description: >- Bank account type (`"checking"` or `"savings"`). Required when `method` is `"ach"`. achHolderType: $ref: '#/components/schemas/type_:AchHolderType' required: - method description: >- Payment method for reissuing a payout transaction. The reissue endpoint uses the payment method details directly. It doesn't fall back to the vendor's managed payment method. - `{ method: "vcard" }` - Reissue as a virtual card - `{ method: "check" }` - Reissue as a paper check - `{ method: "ach", achHolder: "...", achRouting: "...", achAccount: "...", achAccountType: "...", achHolderType: "..." }` - Reissue as ACH with bank details title: ReissuePaymentMethod type___moneyOutTypes__:ReissuePayoutBody: type: object properties: paymentMethod: $ref: '#/components/schemas/type___moneyOutTypes__:ReissuePaymentMethod' required: - paymentMethod description: Request body for reissuing a payout transaction. title: ReissuePayoutBody 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_:Responsecode: type: integer description: >- Code for the response. Learn more in [API Response Codes](/developers/api-reference/api-responses). title: Responsecode type_:ResponseText: type: string description: 'Response text for operation: ''Success'' or ''Declined''.' title: ResponseText type___moneyOutTypes__:ReissuePayoutResponseData: type: object properties: transactionId: type: string description: The transaction ID of the newly created payout. status: type: string description: The status of the new transaction. originalTransactionId: type: string description: The transaction ID of the original payout that was reissued. required: - transactionId - status title: ReissuePayoutResponseData type___moneyOutTypes__:ReissuePayoutResponse: type: object properties: isSuccess: $ref: '#/components/schemas/type_:IsSuccess' responseCode: $ref: '#/components/schemas/type_:Responsecode' responseText: $ref: '#/components/schemas/type_:ResponseText' responseData: $ref: >- #/components/schemas/type___moneyOutTypes__:ReissuePayoutResponseData required: - isSuccess - responseCode - responseText - responseData title: ReissuePayoutResponse type_:PageIdentifier: type: string description: Auxiliary validation used internally by payment pages and components. title: PageIdentifier type_:Responsedata: type: object additionalProperties: description: Any type description: The object containing the response data. title: Responsedata type_:PayabliApiResponsePaylinks: type: object properties: isSuccess: $ref: '#/components/schemas/type_:IsSuccess' pageIdentifier: oneOf: - $ref: '#/components/schemas/type_:PageIdentifier' - type: 'null' responseCode: $ref: '#/components/schemas/type_:Responsecode' responseData: $ref: '#/components/schemas/type_:Responsedata' description: The paylink ID or error details. responseText: $ref: '#/components/schemas/type_:ResponseText' required: - isSuccess - pageIdentifier - responseCode - responseData - responseText title: PayabliApiResponsePaylinks 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 ReissueAsACH import { PayabliClient } from "@payabli/sdk-node"; async function main() { const client = new PayabliClient({ apiKey: "YOUR_API_KEY_HERE", }); await client.moneyOut.reissueOut({ transId: "129-219", body: { paymentMethod: { method: "ach", achHolder: "Acme Corp", achRouting: "021000021", achAccount: "9876543210", achAccountType: "savings", achHolderType: "business", }, }, }); } main(); ``` ```python ReissueAsACH from payabli import payabli from payabli.money_out_types import ReissuePaymentMethod client = payabli( api_key="YOUR_API_KEY_HERE", ) client.money_out.reissue_out( trans_id="129-219", payment_method=ReissuePaymentMethod( method="ach", ach_holder="Acme Corp", ach_routing="021000021", ach_account="9876543210", ach_account_type="savings", ach_holder_type="business", ), ) ``` ```csharp ReissueAsACH 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.MoneyOut.ReissueOutAsync( new ReissueOutRequest { TransId = "129-219", Body = new ReissuePayoutBody { PaymentMethod = new ReissuePaymentMethod { Method = "ach", AchHolder = "Acme Corp", AchRouting = "021000021", AchAccount = "9876543210", AchAccountType = "savings", AchHolderType = AchHolderType.Business } } } ); } } ``` ```go ReissueAsACH package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219" payload := strings.NewReader("{\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"achHolder\": \"Acme Corp\",\n \"achRouting\": \"021000021\",\n \"achAccount\": \"9876543210\",\n \"achAccountType\": \"savings\",\n \"achHolderType\": \"business\"\n }\n}") req, _ := http.NewRequest("POST", 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 ReissueAsACH require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"achHolder\": \"Acme Corp\",\n \"achRouting\": \"021000021\",\n \"achAccount\": \"9876543210\",\n \"achAccountType\": \"savings\",\n \"achHolderType\": \"business\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java ReissueAsACH import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"achHolder\": \"Acme Corp\",\n \"achRouting\": \"021000021\",\n \"achAccount\": \"9876543210\",\n \"achAccountType\": \"savings\",\n \"achHolderType\": \"business\"\n }\n}") .asString(); ``` ```php ReissueAsACH request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219', [ 'body' => '{ "paymentMethod": { "method": "ach", "achHolder": "Acme Corp", "achRouting": "021000021", "achAccount": "9876543210", "achAccountType": "savings", "achHolderType": "business" } }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift ReissueAsACH import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = ["paymentMethod": [ "method": "ach", "achHolder": "Acme Corp", "achRouting": "021000021", "achAccount": "9876543210", "achAccountType": "savings", "achHolderType": "business" ]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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 ReissueAsCheck import { PayabliClient } from "@payabli/sdk-node"; async function main() { const client = new PayabliClient({ apiKey: "YOUR_API_KEY_HERE", }); await client.moneyOut.reissueOut({ transId: "129-219", body: { paymentMethod: { method: "check", }, }, }); } main(); ``` ```python ReissueAsCheck from payabli import payabli from payabli.money_out_types import ReissuePaymentMethod client = payabli( api_key="YOUR_API_KEY_HERE", ) client.money_out.reissue_out( trans_id="129-219", payment_method=ReissuePaymentMethod( method="check", ), ) ``` ```csharp ReissueAsCheck 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.MoneyOut.ReissueOutAsync( new ReissueOutRequest { TransId = "129-219", Body = new ReissuePayoutBody { PaymentMethod = new ReissuePaymentMethod { Method = "check" } } } ); } } ``` ```go ReissueAsCheck package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219" payload := strings.NewReader("{\n \"paymentMethod\": {\n \"method\": \"check\"\n }\n}") req, _ := http.NewRequest("POST", 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 ReissueAsCheck require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"paymentMethod\": {\n \"method\": \"check\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java ReissueAsCheck import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"paymentMethod\": {\n \"method\": \"check\"\n }\n}") .asString(); ``` ```php ReissueAsCheck request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219', [ 'body' => '{ "paymentMethod": { "method": "check" } }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift ReissueAsCheck import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = ["paymentMethod": ["method": "check"]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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 ReissueAsVCard import { PayabliClient } from "@payabli/sdk-node"; async function main() { const client = new PayabliClient({ apiKey: "YOUR_API_KEY_HERE", }); await client.moneyOut.reissueOut({ transId: "129-219", body: { paymentMethod: { method: "vcard", }, }, }); } main(); ``` ```python ReissueAsVCard from payabli import payabli from payabli.money_out_types import ReissuePaymentMethod client = payabli( api_key="YOUR_API_KEY_HERE", ) client.money_out.reissue_out( trans_id="129-219", payment_method=ReissuePaymentMethod( method="vcard", ), ) ``` ```csharp ReissueAsVCard 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.MoneyOut.ReissueOutAsync( new ReissueOutRequest { TransId = "129-219", Body = new ReissuePayoutBody { PaymentMethod = new ReissuePaymentMethod { Method = "vcard" } } } ); } } ``` ```go ReissueAsVCard package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219" payload := strings.NewReader("{\n \"paymentMethod\": {\n \"method\": \"vcard\"\n }\n}") req, _ := http.NewRequest("POST", 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 ReissueAsVCard require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"paymentMethod\": {\n \"method\": \"vcard\"\n }\n}" response = http.request(request) puts response.read_body ``` ```java ReissueAsVCard import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"paymentMethod\": {\n \"method\": \"vcard\"\n }\n}") .asString(); ``` ```php ReissueAsVCard request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219', [ 'body' => '{ "paymentMethod": { "method": "vcard" } }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift ReissueAsVCard import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = ["paymentMethod": ["method": "vcard"]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/reissue?transId=129-219")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" 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() ```