# Authorize payout POST https://api-sandbox.payabli.com/api/MoneyOut/authorize Content-Type: application/json Authorizes transaction for payout. Authorized transactions aren't flagged for settlement until captured. Use `referenceId` returned in the response to capture the transaction. Reference: https://docs.payabli.com/developers/api-reference/moneyout/authorize-a-transaction-for-payout ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: Authorize a payout version: endpoint_moneyOut.AuthorizeOut paths: /MoneyOut/authorize: post: operationId: authorize-out summary: Authorize a payout description: >- Authorizes transaction for payout. Authorized transactions aren't flagged for settlement until captured. Use `referenceId` returned in the response to capture the transaction. tags: - - subpackage_moneyOut parameters: - name: allowDuplicatedBills in: query description: >- When `true`, the authorization bypasses the requirement for unique bills, identified by vendor invoice number. This allows you to make more than one payout authorization for a bill, like a split payment. required: false schema: type: boolean default: false - name: doNotCreateBills in: query description: >- When `true`, Payabli won't automatically create a bill for this payout transaction. required: false schema: type: boolean default: false - name: forceVendorCreation in: query description: >- When `true`, the request creates a new vendor record, regardless of whether the vendor already exists. required: false schema: type: boolean default: false - 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__:AuthCapturePayoutResponse '400': description: Bad request/ invalid data content: {} '401': description: Unauthorized request. content: {} '500': description: Internal API Error content: {} '503': description: Database connection error content: {} requestBody: content: application/json: schema: $ref: '#/components/schemas/type___moneyOutTypes__:AuthorizePayoutBody' components: schemas: type_:IdempotencyKey: type: string type_:Entrypointfield: type: string type_:Source: type: string type_:OrderId: type: string type_:Orderdescription: type: string type_:AchSecCode: type: string type_:AchHolderType: type: string enum: - value: personal - value: business default: personal type_:Initiator: type: string type_:StoredMethodUsageType: type: string 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 type_:VendorCheckNumber: type: string type___moneyOutTypes__:RequestOutAuthorizePaymentDetails: type: object properties: checkNumber: $ref: '#/components/schemas/type_:VendorCheckNumber' currency: type: string description: >- Currency code ISO-4217. If no code is provided, then the currency in the paypoint setting is used. Default is **USD**. 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. If you are using a percentage-based fee schedule, you must calculate the value manually. totalAmount: type: number format: double description: >- Total amount to be charged. If a service fee is included, then this amount should include the service fee. unbundled: type: boolean description: >- Indicates whether the payout should be bundled into a single transaction or processed separately. If set to `true`, each bill will be processed as a separate payout. If `false` or not provided, then multiple bills will be paid with a single payout. type_:VendorNumber: type: string type_:VendorName1: type: string type_:VendorName2: type: string type_:VendorEin: type: string type_:VendorPhone: type: string type_:Email: type: string format: email type_:AddressNullable: type: string type_:Mcc: type: string type_:AdditionalDataString: type: string type_:Contacts: type: object properties: contactEmail: $ref: '#/components/schemas/type_:Email' description: Contact email address. contactName: type: string description: Contact name. contactPhone: type: string description: Contact phone number. contactTitle: type: string description: Contact title. additionalData: $ref: '#/components/schemas/type_:AdditionalDataString' type_:ContactsField: type: array items: $ref: '#/components/schemas/type_:Contacts' type_:BankName: type: string type_:RoutingAccount: type: string type_:AccountNumber: type: string type_:TypeAccount: type: string enum: - value: Checking - value: Savings type_:BankAccountHolderName: type: string type___moneyOutTypes__:RequestOutAuthorizeVendorBillingData: type: object properties: bankName: $ref: '#/components/schemas/type_:BankName' routingAccount: $ref: '#/components/schemas/type_:RoutingAccount' accountNumber: $ref: '#/components/schemas/type_:AccountNumber' typeAccount: $ref: '#/components/schemas/type_:TypeAccount' bankAccountHolderName: $ref: '#/components/schemas/type_:BankAccountHolderName' type_:Vendorstatus: type: integer type_:Remitaddress1: type: string type_:Remitaddress2: type: string type_:Remitcity: type: string type_:Remitstate: type: string type_:Remitzip: type: string type_:Remitcountry: type: string type_:AdditionalData: type: object additionalProperties: type: object additionalProperties: description: Any type type_:AddressAddtlNullable: type: string type_:LocationCode: type: string type_:PayeeName: type: string type_:VendorPaymentMethod: type: object properties: method: type: string description: Payment method type - "managed", "vcard", "check", or "ach" storedMethodId: type: string description: >- ID of the stored ACH payment method. Only applicable when method is "ach". Required when using a previously saved ACH method when the vendor has more than one saved method. See the [Payouts with saved ACH payment methods](/developers/developer-guides/pay-out-manage-payouts) section for more details. required: - method type_:Vendorid: type: integer type___moneyOutTypes__:RequestOutAuthorizeVendorData: type: object properties: vendorNumber: $ref: '#/components/schemas/type_:VendorNumber' name1: $ref: '#/components/schemas/type_:VendorName1' name2: $ref: '#/components/schemas/type_:VendorName2' ein: $ref: '#/components/schemas/type_:VendorEin' phone: $ref: '#/components/schemas/type_:VendorPhone' email: $ref: '#/components/schemas/type_:Email' address1: $ref: '#/components/schemas/type_:AddressNullable' city: type: string state: type: string zip: type: string country: type: string mcc: $ref: '#/components/schemas/type_:Mcc' contacts: $ref: '#/components/schemas/type_:ContactsField' billingData: $ref: >- #/components/schemas/type___moneyOutTypes__:RequestOutAuthorizeVendorBillingData vendorStatus: $ref: '#/components/schemas/type_:Vendorstatus' remitAddress1: $ref: '#/components/schemas/type_:Remitaddress1' remitAddress2: $ref: '#/components/schemas/type_:Remitaddress2' remitCity: $ref: '#/components/schemas/type_:Remitcity' remitState: $ref: '#/components/schemas/type_:Remitstate' remitZip: $ref: '#/components/schemas/type_:Remitzip' remitCountry: $ref: '#/components/schemas/type_:Remitcountry' customerVendorAccount: type: string customField1: type: string customField2: type: string additionalData: $ref: '#/components/schemas/type_:AdditionalData' address2: $ref: '#/components/schemas/type_:AddressAddtlNullable' internalReferenceId: type: integer format: int64 locationCode: $ref: '#/components/schemas/type_:LocationCode' payeeName1: $ref: '#/components/schemas/type_:PayeeName' payeeName2: $ref: '#/components/schemas/type_:PayeeName' paymentMethod: $ref: '#/components/schemas/type_:VendorPaymentMethod' vendorId: $ref: '#/components/schemas/type_:Vendorid' type_:InvoiceNumber: type: string type_:NetAmountstring: type: string type_:Datenullable: type: string format: date type_:Comments: type: string type___moneyOutTypes__:LotNumber: type: string type_:BillId: type: integer format: int64 type_:Discount: type: number format: double type_:Terms: type: string type_:AccountingField: type: string type_:FileContentFtype: type: string enum: - value: pdf - value: doc - value: docx - value: jpg - value: jpeg - value: png - value: gif - value: txt type_:FileContent: type: object properties: fContent: type: string description: >- Content of file, Base64-encoded. Ignored if furl is specified. Max upload size is 30 MB. filename: type: string description: The name of the attached file. ftype: $ref: '#/components/schemas/type_:FileContentFtype' description: The MIME type of the file (if content is provided) furl: type: string description: Optional URL provided to show or download the file remotely type_:Attachments: type: array items: $ref: '#/components/schemas/type_:FileContent' type___moneyOutTypes__:RequestOutAuthorizeInvoiceData: type: object properties: invoiceNumber: $ref: '#/components/schemas/type_:InvoiceNumber' netAmount: $ref: '#/components/schemas/type_:NetAmountstring' invoiceDate: $ref: '#/components/schemas/type_:Datenullable' description: 'Invoice date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY.' dueDate: $ref: '#/components/schemas/type_:Datenullable' description: >- Invoice due date in any of the accepted formats: YYYY-MM-DD, MM/DD/YYYY. comments: $ref: '#/components/schemas/type_:Comments' lotNumber: $ref: '#/components/schemas/type___moneyOutTypes__:LotNumber' billId: $ref: '#/components/schemas/type_:BillId' discount: $ref: '#/components/schemas/type_:Discount' terms: $ref: '#/components/schemas/type_:Terms' accountingField1: $ref: '#/components/schemas/type_:AccountingField' accountingField2: $ref: '#/components/schemas/type_:AccountingField' additionalData: $ref: '#/components/schemas/type_:AdditionalDataString' attachments: $ref: '#/components/schemas/type_:Attachments' type_:Accountid: type: string type_:Subdomain: type: string type_:Subscriptionid: type: integer format: int64 type___moneyOutTypes__:AuthorizePayoutBody: type: object properties: entryPoint: $ref: '#/components/schemas/type_:Entrypointfield' source: $ref: '#/components/schemas/type_:Source' orderId: $ref: '#/components/schemas/type_:OrderId' orderDescription: $ref: '#/components/schemas/type_:Orderdescription' paymentMethod: $ref: '#/components/schemas/type___moneyOutTypes__:AuthorizePaymentMethod' paymentDetails: $ref: >- #/components/schemas/type___moneyOutTypes__:RequestOutAuthorizePaymentDetails description: Object containing payment details. vendorData: $ref: >- #/components/schemas/type___moneyOutTypes__:RequestOutAuthorizeVendorData description: Object containing vendor data. invoiceData: type: array items: $ref: >- #/components/schemas/type___moneyOutTypes__:RequestOutAuthorizeInvoiceData description: Array of bills associated to the transaction accountId: $ref: '#/components/schemas/type_:Accountid' subdomain: $ref: '#/components/schemas/type_:Subdomain' subscriptionId: $ref: '#/components/schemas/type_:Subscriptionid' required: - entryPoint - paymentMethod - paymentDetails - vendorData - invoiceData type_:Responsecode: type: integer type_:PageIdentifier: type: string type_:RoomIdNotInUse: type: integer format: int64 type_:IsSuccess: type: boolean type_:ResponseText: type: string type_:Authcode: type: string type_:Referenceidtrans: type: string type_:ResultCode: type: integer type_:Resulttext: type: string type_:AvsResponseText: type: string type_:CvvResponseText: type: string type_:Customeridtrans: type: integer format: int64 type_:MethodReferenceId: type: string type___moneyOutTypes__:AuthCapturePayoutResponseData: type: object properties: authCode: oneOf: - $ref: '#/components/schemas/type_:Authcode' - type: 'null' referenceId: $ref: '#/components/schemas/type_:Referenceidtrans' resultCode: $ref: '#/components/schemas/type_:ResultCode' resultText: $ref: '#/components/schemas/type_:Resulttext' avsResponseText: oneOf: - $ref: '#/components/schemas/type_:AvsResponseText' - type: 'null' cvvResponseText: oneOf: - $ref: '#/components/schemas/type_:CvvResponseText' - type: 'null' customerId: $ref: '#/components/schemas/type_:Customeridtrans' methodReferenceId: oneOf: - $ref: '#/components/schemas/type_:MethodReferenceId' - type: 'null' required: - authCode - referenceId - resultCode - resultText - avsResponseText - cvvResponseText - customerId - methodReferenceId type___moneyOutTypes__:AuthCapturePayoutResponse: type: object properties: responseCode: $ref: '#/components/schemas/type_:Responsecode' pageIdentifier: oneOf: - $ref: '#/components/schemas/type_:PageIdentifier' - type: 'null' roomId: $ref: '#/components/schemas/type_:RoomIdNotInUse' isSuccess: $ref: '#/components/schemas/type_:IsSuccess' responseText: $ref: '#/components/schemas/type_:ResponseText' responseData: $ref: >- #/components/schemas/type___moneyOutTypes__:AuthCapturePayoutResponseData required: - responseCode - pageIdentifier - roomId - isSuccess - responseText - responseData ``` ## SDK Code Examples ```python AuthorizePayout from payabli import payabli from payabli.money_out_types import ( AuthorizePaymentMethod, RequestOutAuthorizeInvoiceData, RequestOutAuthorizePaymentDetails, RequestOutAuthorizeVendorData, ) client = payabli( api_key="YOUR_API_KEY", ) client.money_out.authorize_out( entry_point="48acde49", invoice_data=[ RequestOutAuthorizeInvoiceData( bill_id=54323, ) ], order_description="Window Painting", payment_details=RequestOutAuthorizePaymentDetails( total_amount=47.0, unbundled=False, ), payment_method=AuthorizePaymentMethod( method="managed", ), vendor_data=RequestOutAuthorizeVendorData( vendor_number="7895433", ), ) ``` ```typescript AuthorizePayout import { PayabliClient } from "@payabli/sdk-node"; const client = new PayabliClient({ apiKey: "YOUR_API_KEY" }); await client.moneyOut.authorizeOut({ body: { entryPoint: "48acde49", invoiceData: [{ billId: 54323 }], orderDescription: "Window Painting", paymentDetails: { totalAmount: 47, unbundled: false }, paymentMethod: { method: "managed" }, vendorData: { vendorNumber: "7895433" } } }); ``` ```go AuthorizePayout import ( context "context" option "github.com/payabli/sdk-go/option" sdkgo "github.com/payabli/sdk-go" sdkgoclient "github.com/payabli/sdk-go/client" ) client := sdkgoclient.NewClient( option.WithApiKey( "", ), ) response, err := client.MoneyOut.AuthorizeOut( context.TODO(), &sdkgo.MoneyOutTypesRequestOutAuthorize{ Body: &sdkgo.AuthorizePayoutBody{ EntryPoint: "48acde49", InvoiceData: []*sdkgo.RequestOutAuthorizeInvoiceData{ &sdkgo.RequestOutAuthorizeInvoiceData{ BillId: sdkgo.Int64( 54323, ), }, }, OrderDescription: sdkgo.String( "Window Painting", ), PaymentDetails: &sdkgo.RequestOutAuthorizePaymentDetails{ TotalAmount: sdkgo.Float64( 47, ), Unbundled: sdkgo.Bool( false, ), }, PaymentMethod: &sdkgo.AuthorizePaymentMethod{ Method: "managed", }, VendorData: &sdkgo.RequestOutAuthorizeVendorData{ VendorNumber: sdkgo.String( "7895433", ), }, }, }, ) ``` ```csharp AuthorizePayout using PayabliApi; var client = new PayabliApiClient("API_KEY"); await client.MoneyOut.AuthorizeOutAsync( new MoneyOutTypesRequestOutAuthorize { Body = new AuthorizePayoutBody { EntryPoint = "48acde49", InvoiceData = new List() { new RequestOutAuthorizeInvoiceData { BillId = 54323 }, }, OrderDescription = "Window Painting", PaymentDetails = new RequestOutAuthorizePaymentDetails { TotalAmount = 47, Unbundled = false, }, PaymentMethod = new AuthorizePaymentMethod { Method = "managed" }, VendorData = new RequestOutAuthorizeVendorData { VendorNumber = "7895433" }, }, } ); ``` ```ruby AuthorizePayout require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/authorize") 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 \"entryPoint\": \"48acde49\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 47,\n \"unbundled\": false\n },\n \"vendorData\": {\n \"vendorNumber\": \"7895433\"\n },\n \"invoiceData\": [\n {\n \"billId\": 54323\n }\n ],\n \"orderDescription\": \"Window Painting\"\n}" response = http.request(request) puts response.read_body ``` ```java AuthorizePayout HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/authorize") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"entryPoint\": \"48acde49\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 47,\n \"unbundled\": false\n },\n \"vendorData\": {\n \"vendorNumber\": \"7895433\"\n },\n \"invoiceData\": [\n {\n \"billId\": 54323\n }\n ],\n \"orderDescription\": \"Window Painting\"\n}") .asString(); ``` ```php AuthorizePayout request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/authorize', [ 'body' => '{ "entryPoint": "48acde49", "paymentMethod": { "method": "managed" }, "paymentDetails": { "totalAmount": 47, "unbundled": false }, "vendorData": { "vendorNumber": "7895433" }, "invoiceData": [ { "billId": 54323 } ], "orderDescription": "Window Painting" }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift AuthorizePayout import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "entryPoint": "48acde49", "paymentMethod": ["method": "managed"], "paymentDetails": [ "totalAmount": 47, "unbundled": false ], "vendorData": ["vendorNumber": "7895433"], "invoiceData": [["billId": 54323]], "orderDescription": "Window Painting" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/authorize")! 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() ``` ```python WithImage from payabli import FileContent, payabli from payabli.money_out_types import ( AuthorizePaymentMethod, RequestOutAuthorizeInvoiceData, RequestOutAuthorizePaymentDetails, RequestOutAuthorizeVendorData, ) client = payabli( api_key="YOUR_API_KEY", ) client.money_out.authorize_out( entry_point="48acde49", invoice_data=[ RequestOutAuthorizeInvoiceData( bill_id=123, attachments=[ FileContent( filename="bill.pdf", ftype="pdf", furl="https://example.com/bill.pdf", ) ], ) ], order_description="Window Painting", payment_details=RequestOutAuthorizePaymentDetails( total_amount=47.0, ), payment_method=AuthorizePaymentMethod( method="managed", ), vendor_data=RequestOutAuthorizeVendorData( vendor_number="7895433", ), ) ``` ```typescript WithImage import { PayabliClient } from "@payabli/sdk-node"; const client = new PayabliClient({ apiKey: "YOUR_API_KEY" }); await client.moneyOut.authorizeOut({ body: { entryPoint: "48acde49", invoiceData: [{ billId: 123, attachments: [{ filename: "bill.pdf", ftype: "pdf", furl: "https://example.com/bill.pdf" }] }], orderDescription: "Window Painting", paymentDetails: { totalAmount: 47 }, paymentMethod: { method: "managed" }, vendorData: { vendorNumber: "7895433" } } }); ``` ```go WithImage import ( context "context" option "github.com/payabli/sdk-go/option" sdkgo "github.com/payabli/sdk-go" sdkgoclient "github.com/payabli/sdk-go/client" ) client := sdkgoclient.NewClient( option.WithApiKey( "", ), ) response, err := client.MoneyOut.AuthorizeOut( context.TODO(), &sdkgo.MoneyOutTypesRequestOutAuthorize{ Body: &sdkgo.AuthorizePayoutBody{ EntryPoint: "48acde49", InvoiceData: []*sdkgo.RequestOutAuthorizeInvoiceData{ &sdkgo.RequestOutAuthorizeInvoiceData{ BillId: sdkgo.Int64( 54323, ), }, }, OrderDescription: sdkgo.String( "Window Painting", ), PaymentDetails: &sdkgo.RequestOutAuthorizePaymentDetails{ TotalAmount: sdkgo.Float64( 47, ), Unbundled: sdkgo.Bool( false, ), }, PaymentMethod: &sdkgo.AuthorizePaymentMethod{ Method: "managed", }, VendorData: &sdkgo.RequestOutAuthorizeVendorData{ VendorNumber: sdkgo.String( "7895433", ), }, }, }, ) ``` ```csharp WithImage using PayabliApi; var client = new PayabliApiClient("API_KEY"); await client.MoneyOut.AuthorizeOutAsync( new MoneyOutTypesRequestOutAuthorize { Body = new AuthorizePayoutBody { EntryPoint = "48acde49", InvoiceData = new List() { new RequestOutAuthorizeInvoiceData { BillId = 123, Attachments = new List() { new FileContent { Filename = "bill.pdf", Ftype = FileContentFtype.Pdf, Furl = "https://example.com/bill.pdf", }, }, }, }, OrderDescription = "Window Painting", PaymentDetails = new RequestOutAuthorizePaymentDetails { TotalAmount = 47 }, PaymentMethod = new AuthorizePaymentMethod { Method = "managed" }, VendorData = new RequestOutAuthorizeVendorData { VendorNumber = "7895433" }, }, } ); ``` ```ruby WithImage require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/authorize") 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 \"entryPoint\": \"48acde49\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 47\n },\n \"vendorData\": {\n \"vendorNumber\": \"7895433\"\n },\n \"invoiceData\": [\n {\n \"billId\": 123,\n \"attachments\": [\n {\n \"filename\": \"bill.pdf\",\n \"ftype\": \"pdf\",\n \"furl\": \"https://example.com/bill.pdf\"\n }\n ]\n }\n ],\n \"orderDescription\": \"Window Painting\"\n}" response = http.request(request) puts response.read_body ``` ```java WithImage HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/authorize") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"entryPoint\": \"48acde49\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 47\n },\n \"vendorData\": {\n \"vendorNumber\": \"7895433\"\n },\n \"invoiceData\": [\n {\n \"billId\": 123,\n \"attachments\": [\n {\n \"filename\": \"bill.pdf\",\n \"ftype\": \"pdf\",\n \"furl\": \"https://example.com/bill.pdf\"\n }\n ]\n }\n ],\n \"orderDescription\": \"Window Painting\"\n}") .asString(); ``` ```php WithImage request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/authorize', [ 'body' => '{ "entryPoint": "48acde49", "paymentMethod": { "method": "managed" }, "paymentDetails": { "totalAmount": 47 }, "vendorData": { "vendorNumber": "7895433" }, "invoiceData": [ { "billId": 123, "attachments": [ { "filename": "bill.pdf", "ftype": "pdf", "furl": "https://example.com/bill.pdf" } ] } ], "orderDescription": "Window Painting" }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift WithImage import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "entryPoint": "48acde49", "paymentMethod": ["method": "managed"], "paymentDetails": ["totalAmount": 47], "vendorData": ["vendorNumber": "7895433"], "invoiceData": [ [ "billId": 123, "attachments": [ [ "filename": "bill.pdf", "ftype": "pdf", "furl": "https://example.com/bill.pdf" ] ] ] ], "orderDescription": "Window Painting" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/authorize")! 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() ``` ```python StoredACH from payabli import payabli from payabli.money_out_types import ( AuthorizePaymentMethod, RequestOutAuthorizeInvoiceData, RequestOutAuthorizePaymentDetails, RequestOutAuthorizeVendorData, ) client = payabli( api_key="YOUR_API_KEY", ) client.money_out.authorize_out( entry_point="48acde49", source="api", invoice_data=[ RequestOutAuthorizeInvoiceData( bill_id=54323, ) ], order_description="Window Painting", payment_method=AuthorizePaymentMethod( method="ach", stored_method_id="4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX", ), payment_details=RequestOutAuthorizePaymentDetails( total_amount=47.0, ), vendor_data=RequestOutAuthorizeVendorData( vendor_number="7895433", ), ) ``` ```typescript StoredACH import { PayabliClient } from "@payabli/sdk-node"; const client = new PayabliClient({ apiKey: "YOUR_API_KEY" }); await client.moneyOut.authorizeOut({ body: { entryPoint: "48acde49", source: "api", invoiceData: [{ billId: 54323 }], orderDescription: "Window Painting", paymentMethod: { method: "ach", storedMethodId: "4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX" }, paymentDetails: { totalAmount: 47 }, vendorData: { vendorNumber: "7895433" } } }); ``` ```go StoredACH import ( context "context" option "github.com/payabli/sdk-go/option" sdkgo "github.com/payabli/sdk-go" sdkgoclient "github.com/payabli/sdk-go/client" ) client := sdkgoclient.NewClient( option.WithApiKey( "", ), ) response, err := client.MoneyOut.AuthorizeOut( context.TODO(), &sdkgo.MoneyOutTypesRequestOutAuthorize{ Body: &sdkgo.AuthorizePayoutBody{ EntryPoint: "48acde49", InvoiceData: []*sdkgo.RequestOutAuthorizeInvoiceData{ &sdkgo.RequestOutAuthorizeInvoiceData{ BillId: sdkgo.Int64( 54323, ), }, }, OrderDescription: sdkgo.String( "Window Painting", ), PaymentDetails: &sdkgo.RequestOutAuthorizePaymentDetails{ TotalAmount: sdkgo.Float64( 47, ), Unbundled: sdkgo.Bool( false, ), }, PaymentMethod: &sdkgo.AuthorizePaymentMethod{ Method: "managed", }, VendorData: &sdkgo.RequestOutAuthorizeVendorData{ VendorNumber: sdkgo.String( "7895433", ), }, }, }, ) ``` ```csharp StoredACH using PayabliApi; var client = new PayabliApiClient("API_KEY"); await client.MoneyOut.AuthorizeOutAsync( new MoneyOutTypesRequestOutAuthorize { Body = new AuthorizePayoutBody { EntryPoint = "48acde49", Source = "api", InvoiceData = new List() { new RequestOutAuthorizeInvoiceData { BillId = 54323 }, }, OrderDescription = "Window Painting", PaymentMethod = new AuthorizePaymentMethod { Method = "ach", StoredMethodId = "4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX", }, PaymentDetails = new RequestOutAuthorizePaymentDetails { TotalAmount = 47 }, VendorData = new RequestOutAuthorizeVendorData { VendorNumber = "7895433" }, }, } ); ``` ```ruby StoredACH require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/authorize") 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 \"entryPoint\": \"48acde49\",\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"storedMethodId\": \"4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 47\n },\n \"vendorData\": {\n \"vendorNumber\": \"7895433\"\n },\n \"invoiceData\": [\n {\n \"billId\": 54323\n }\n ],\n \"source\": \"api\",\n \"orderDescription\": \"Window Painting\"\n}" response = http.request(request) puts response.read_body ``` ```java StoredACH HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/authorize") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"entryPoint\": \"48acde49\",\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"storedMethodId\": \"4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 47\n },\n \"vendorData\": {\n \"vendorNumber\": \"7895433\"\n },\n \"invoiceData\": [\n {\n \"billId\": 54323\n }\n ],\n \"source\": \"api\",\n \"orderDescription\": \"Window Painting\"\n}") .asString(); ``` ```php StoredACH request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/authorize', [ 'body' => '{ "entryPoint": "48acde49", "paymentMethod": { "method": "ach", "storedMethodId": "4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX" }, "paymentDetails": { "totalAmount": 47 }, "vendorData": { "vendorNumber": "7895433" }, "invoiceData": [ { "billId": 54323 } ], "source": "api", "orderDescription": "Window Painting" }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift StoredACH import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "entryPoint": "48acde49", "paymentMethod": [ "method": "ach", "storedMethodId": "4c6a4b78-72de-4bdd-9455-b9d30f991001-XXXX" ], "paymentDetails": ["totalAmount": 47], "vendorData": ["vendorNumber": "7895433"], "invoiceData": [["billId": 54323]], "source": "api", "orderDescription": "Window Painting" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/authorize")! 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() ``` ```python AddVendor import datetime from payabli import Contacts, payabli from payabli.money_out_types import ( AuthorizePaymentMethod, RequestOutAuthorizeInvoiceData, RequestOutAuthorizePaymentDetails, RequestOutAuthorizeVendorData, ) client = payabli( api_key="YOUR_API_KEY", ) client.money_out.authorize_out( entry_point="47ced57b", payment_method=AuthorizePaymentMethod( method="ach", ach_holder="John Doe", ach_routing="011401533", ach_account="123456789", ach_account_type="checking", ach_holder_type="business", ), payment_details=RequestOutAuthorizePaymentDetails( total_amount=978.32, ), vendor_data=RequestOutAuthorizeVendorData( vendor_number="Vendor3800638299609471", name_1="Heritage Pro Company", name_2="", ein="473771889", phone="7868342364", email="contact570@heritagepro.com", address_1="478 Mittie Roads", city="Jakubowskifield", state="WI", zip="45993", country="US", mcc="0763", location_code="tpa", contacts=[ Contacts( contact_name="Dax", contact_email="Mandy65@heritagepro.com", contact_phone="996-325-5420 x31028", ) ], vendor_status=1, remit_address_1="727 Terrell Streets", remit_address_2="Apt. 773", remit_city="South Nicholeside", remit_state="ID", remit_zip="72951-9790", remit_country="US", ), invoice_data=[ RequestOutAuthorizeInvoiceData( invoice_number="VI3BvwTG", net_amount="1", invoice_date=datetime.date.fromisoformat( "2026-09-03", ), due_date=datetime.date.fromisoformat( "2026-11-04", ), comments="Building Repairs - Community event setup (System updates)", ) ], ) ``` ```typescript AddVendor import { PayabliClient } from "@payabli/sdk-node"; const client = new PayabliClient({ apiKey: "YOUR_API_KEY" }); await client.moneyOut.authorizeOut({ body: { entryPoint: "47ced57b", paymentMethod: { method: "ach", achHolder: "John Doe", achRouting: "011401533", achAccount: "123456789", achAccountType: "checking", achHolderType: "business" }, paymentDetails: { totalAmount: 978.32 }, vendorData: { vendorNumber: "Vendor3800638299609471", name1: "Heritage Pro Company", name2: "", ein: "473771889", phone: "7868342364", email: "contact570@heritagepro.com", address1: "478 Mittie Roads", city: "Jakubowskifield", state: "WI", zip: "45993", country: "US", mcc: "0763", locationCode: "tpa", contacts: [{ contactName: "Dax", contactEmail: "Mandy65@heritagepro.com", contactPhone: "996-325-5420 x31028" }], vendorStatus: 1, remitAddress1: "727 Terrell Streets", remitAddress2: "Apt. 773", remitCity: "South Nicholeside", remitState: "ID", remitZip: "72951-9790", remitCountry: "US" }, invoiceData: [{ invoiceNumber: "VI3BvwTG", netAmount: "1", invoiceDate: "2026-09-03", dueDate: "2026-11-04", comments: "Building Repairs - Community event setup (System updates)" }] } }); ``` ```go AddVendor import ( context "context" option "github.com/payabli/sdk-go/option" sdkgo "github.com/payabli/sdk-go" sdkgoclient "github.com/payabli/sdk-go/client" ) client := sdkgoclient.NewClient( option.WithApiKey( "", ), ) response, err := client.MoneyOut.AuthorizeOut( context.TODO(), &sdkgo.MoneyOutTypesRequestOutAuthorize{ Body: &sdkgo.AuthorizePayoutBody{ EntryPoint: "48acde49", InvoiceData: []*sdkgo.RequestOutAuthorizeInvoiceData{ &sdkgo.RequestOutAuthorizeInvoiceData{ BillId: sdkgo.Int64( 54323, ), }, }, OrderDescription: sdkgo.String( "Window Painting", ), PaymentDetails: &sdkgo.RequestOutAuthorizePaymentDetails{ TotalAmount: sdkgo.Float64( 47, ), Unbundled: sdkgo.Bool( false, ), }, PaymentMethod: &sdkgo.AuthorizePaymentMethod{ Method: "managed", }, VendorData: &sdkgo.RequestOutAuthorizeVendorData{ VendorNumber: sdkgo.String( "7895433", ), }, }, }, ) ``` ```csharp AddVendor using PayabliApi; var client = new PayabliApiClient("API_KEY"); await client.MoneyOut.AuthorizeOutAsync( new MoneyOutTypesRequestOutAuthorize { Body = new AuthorizePayoutBody { EntryPoint = "47ced57b", PaymentMethod = new AuthorizePaymentMethod { Method = "ach", AchHolder = "John Doe", AchRouting = "011401533", AchAccount = "123456789", AchAccountType = "checking", AchHolderType = AchHolderType.Business, }, PaymentDetails = new RequestOutAuthorizePaymentDetails { TotalAmount = 978.32 }, VendorData = new RequestOutAuthorizeVendorData { VendorNumber = "Vendor3800638299609471", Name1 = "Heritage Pro Company", Name2 = "", Ein = "473771889", Phone = "7868342364", Email = "contact570@heritagepro.com", Address1 = "478 Mittie Roads", City = "Jakubowskifield", State = "WI", Zip = "45993", Country = "US", Mcc = "0763", LocationCode = "tpa", Contacts = new List() { new Contacts { ContactName = "Dax", ContactEmail = "Mandy65@heritagepro.com", ContactPhone = "996-325-5420 x31028", }, }, VendorStatus = 1, RemitAddress1 = "727 Terrell Streets", RemitAddress2 = "Apt. 773", RemitCity = "South Nicholeside", RemitState = "ID", RemitZip = "72951-9790", RemitCountry = "US", }, InvoiceData = new List() { new RequestOutAuthorizeInvoiceData { InvoiceNumber = "VI3BvwTG", NetAmount = "1", InvoiceDate = new DateOnly(2026, 9, 3), DueDate = new DateOnly(2026, 11, 4), Comments = "Building Repairs - Community event setup (System updates)", }, }, }, } ); ``` ```ruby AddVendor require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/MoneyOut/authorize") 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 \"entryPoint\": \"47ced57b\",\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"achHolder\": \"John Doe\",\n \"achRouting\": \"011401533\",\n \"achAccount\": \"123456789\",\n \"achAccountType\": \"checking\",\n \"achHolderType\": \"business\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 978.32\n },\n \"vendorData\": {\n \"vendorNumber\": \"Vendor3800638299609471\",\n \"name1\": \"Heritage Pro Company\",\n \"name2\": \"\",\n \"ein\": \"473771889\",\n \"phone\": \"7868342364\",\n \"email\": \"contact570@heritagepro.com\",\n \"address1\": \"478 Mittie Roads\",\n \"city\": \"Jakubowskifield\",\n \"state\": \"WI\",\n \"zip\": \"45993\",\n \"country\": \"US\",\n \"mcc\": \"0763\",\n \"contacts\": [\n {\n \"contactEmail\": \"Mandy65@heritagepro.com\",\n \"contactName\": \"Dax\",\n \"contactPhone\": \"996-325-5420 x31028\"\n }\n ],\n \"vendorStatus\": 1,\n \"remitAddress1\": \"727 Terrell Streets\",\n \"remitAddress2\": \"Apt. 773\",\n \"remitCity\": \"South Nicholeside\",\n \"remitState\": \"ID\",\n \"remitZip\": \"72951-9790\",\n \"remitCountry\": \"US\",\n \"locationCode\": \"tpa\"\n },\n \"invoiceData\": [\n {\n \"invoiceNumber\": \"VI3BvwTG\",\n \"netAmount\": \"1\",\n \"invoiceDate\": \"2026-09-03\",\n \"dueDate\": \"2026-11-04\",\n \"comments\": \"Building Repairs - Community event setup (System updates)\"\n }\n ]\n}" response = http.request(request) puts response.read_body ``` ```java AddVendor HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/MoneyOut/authorize") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"entryPoint\": \"47ced57b\",\n \"paymentMethod\": {\n \"method\": \"ach\",\n \"achHolder\": \"John Doe\",\n \"achRouting\": \"011401533\",\n \"achAccount\": \"123456789\",\n \"achAccountType\": \"checking\",\n \"achHolderType\": \"business\"\n },\n \"paymentDetails\": {\n \"totalAmount\": 978.32\n },\n \"vendorData\": {\n \"vendorNumber\": \"Vendor3800638299609471\",\n \"name1\": \"Heritage Pro Company\",\n \"name2\": \"\",\n \"ein\": \"473771889\",\n \"phone\": \"7868342364\",\n \"email\": \"contact570@heritagepro.com\",\n \"address1\": \"478 Mittie Roads\",\n \"city\": \"Jakubowskifield\",\n \"state\": \"WI\",\n \"zip\": \"45993\",\n \"country\": \"US\",\n \"mcc\": \"0763\",\n \"contacts\": [\n {\n \"contactEmail\": \"Mandy65@heritagepro.com\",\n \"contactName\": \"Dax\",\n \"contactPhone\": \"996-325-5420 x31028\"\n }\n ],\n \"vendorStatus\": 1,\n \"remitAddress1\": \"727 Terrell Streets\",\n \"remitAddress2\": \"Apt. 773\",\n \"remitCity\": \"South Nicholeside\",\n \"remitState\": \"ID\",\n \"remitZip\": \"72951-9790\",\n \"remitCountry\": \"US\",\n \"locationCode\": \"tpa\"\n },\n \"invoiceData\": [\n {\n \"invoiceNumber\": \"VI3BvwTG\",\n \"netAmount\": \"1\",\n \"invoiceDate\": \"2026-09-03\",\n \"dueDate\": \"2026-11-04\",\n \"comments\": \"Building Repairs - Community event setup (System updates)\"\n }\n ]\n}") .asString(); ``` ```php AddVendor request('POST', 'https://api-sandbox.payabli.com/api/MoneyOut/authorize', [ 'body' => '{ "entryPoint": "47ced57b", "paymentMethod": { "method": "ach", "achHolder": "John Doe", "achRouting": "011401533", "achAccount": "123456789", "achAccountType": "checking", "achHolderType": "business" }, "paymentDetails": { "totalAmount": 978.32 }, "vendorData": { "vendorNumber": "Vendor3800638299609471", "name1": "Heritage Pro Company", "name2": "", "ein": "473771889", "phone": "7868342364", "email": "contact570@heritagepro.com", "address1": "478 Mittie Roads", "city": "Jakubowskifield", "state": "WI", "zip": "45993", "country": "US", "mcc": "0763", "contacts": [ { "contactEmail": "Mandy65@heritagepro.com", "contactName": "Dax", "contactPhone": "996-325-5420 x31028" } ], "vendorStatus": 1, "remitAddress1": "727 Terrell Streets", "remitAddress2": "Apt. 773", "remitCity": "South Nicholeside", "remitState": "ID", "remitZip": "72951-9790", "remitCountry": "US", "locationCode": "tpa" }, "invoiceData": [ { "invoiceNumber": "VI3BvwTG", "netAmount": "1", "invoiceDate": "2026-09-03", "dueDate": "2026-11-04", "comments": "Building Repairs - Community event setup (System updates)" } ] }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```swift AddVendor import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "entryPoint": "47ced57b", "paymentMethod": [ "method": "ach", "achHolder": "John Doe", "achRouting": "011401533", "achAccount": "123456789", "achAccountType": "checking", "achHolderType": "business" ], "paymentDetails": ["totalAmount": 978.32], "vendorData": [ "vendorNumber": "Vendor3800638299609471", "name1": "Heritage Pro Company", "name2": "", "ein": "473771889", "phone": "7868342364", "email": "contact570@heritagepro.com", "address1": "478 Mittie Roads", "city": "Jakubowskifield", "state": "WI", "zip": "45993", "country": "US", "mcc": "0763", "contacts": [ [ "contactEmail": "Mandy65@heritagepro.com", "contactName": "Dax", "contactPhone": "996-325-5420 x31028" ] ], "vendorStatus": 1, "remitAddress1": "727 Terrell Streets", "remitAddress2": "Apt. 773", "remitCity": "South Nicholeside", "remitState": "ID", "remitZip": "72951-9790", "remitCountry": "US", "locationCode": "tpa" ], "invoiceData": [ [ "invoiceNumber": "VI3BvwTG", "netAmount": "1", "invoiceDate": "2026-09-03", "dueDate": "2026-11-04", "comments": "Building Repairs - Community event setup (System updates)" ] ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/MoneyOut/authorize")! 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() ```