# Audit payout transactions with the API
> Track every payout with comprehensive audit trails. Query payout details, reconcile transactions, and maintain complete visibility into vendor payments and transfer statuses
Payabli's Pay Out functionality allows you to send and monetize payments to your vendors. This guide aims to help you track and audit payout transactions so you can build seamless integrations with your app.
## Query the payout
First, query the payout details endpoint: [/MoneyOut/details/\{transId}](/developers/api-reference/moneyout/get-details-for-a-processed-payout-transaction). You need the response data from this request to audit the payout.
```json maxLines=10
{
"IdOut": 3089,
"CreatedAt": "2024-03-07T18:15:57.34",
"Comments": "Test payout",
"Vendor": {
"VendorNumber": "QA-vendor-1709853355",
"Name1": "Lakeland",
"Name2": "Electric",
"EIN": "XXXX6789",
"Phone": "8636700248",
"Email": "philaret@philsfloors.com",
"Address1": "123 Krill Street",
"Address2": null,
"City": "Lakeland",
"State": "FL",
"Zip": "33809",
"Country": "US",
"Mcc": null,
"LocationCode": null,
"Contacts": null,
"BillingData": null,
"PaymentMethod": "check",
"VendorStatus": 1,
"VendorId": 3412,
"EnrollmentStatus": null,
"Summary": null,
"PaypointLegalname": null,
"PaypointDbaname": null,
"PaypointEntryname": null,
"ParentOrgName": null,
"CreatedDate": "2024-03-07T18:15:57.057",
"LastUpdated": "2024-03-07T23:15:57.057",
"remitAddress1": null,
"remitAddress2": null,
"remitCity": null,
"remitState": null,
"remitZip": null,
"remitCountry": null,
"payeeName1": null,
"payeeName2": null,
"customField1": null,
"customField2": null,
"customerVendorAccount": "testingAccount1",
"InternalReferenceId": 1222,
"additionalData": null,
"externalPaypointID": null
},
"PaypointDbaname": "Gruzya Adventure Outfitters",
"PaypointLegalname": "Gruzya Adventure Outfitters",
"Status": 2,
"LastUpdated": "2024-03-07T19:00:00",
"TotalAmount": 1000.50,
"NetAmount": 1000.50,
"FeeAmount": 0.00,
"Source": "api",
"ParentOrgName": "Pilgrim Planner",
"BatchNumber": "10-20240308-CUST123",
"PaymentStatus": "Pending",
"PaymentMethod": null,
"CardToken": null,
"CheckNumber": "656768",
"CheckData": null,
"PaymentId": "10-3089",
"PaymentData": {
"MaskedAccount": "",
"AccountType": "",
"AccountExp": null,
"AccountZip": null,
"HolderName": "",
"StoredId": null,
"orderDescription": null,
"cloudSignatureData": null,
"cloudSignatureFormat": null,
"paymentDetails": {
"totalAmount": 1000.0,
"serviceFee": 0.0,
"checkNumber": null,
"checkImage": null,
"currency": null,
"orderDescription": null,
"orderId": null,
"orderIdAlternative": null,
"paymentDescription": null,
"groupNumber": null,
"source": null,
"categories": [],
"splitFunding": []
},
"payorData": {
"customerId": 0,
"firstName": null,
"lastName": null,
"company": null,
"customerNumber": null,
"billingAddress1": null,
"billingAddress2": null,
"billingCity": null,
"billingState": null,
"billingZip": null,
"billingCountry": null,
"billingPhone": null,
"billingEmail": null,
"shippingAddress1": null,
"shippingAddress2": null,
"shippingCity": null,
"shippingState": null,
"shippingZip": null,
"shippingCountry": null,
"additionalData": {},
"identifierFields": null
},
"accountId": null,
"bankAccount": null,
"gatewayConnector": {
"configuration": null,
"Name": "repay",
"Mode": 2,
"Bank": null,
"Descriptor": null,
"gatewayID": 7,
"Enabled": true,
"EnableACHValidation": false,
"TestMode": true
},
"binData": null
},
"Bills": [
{
"billId": 5999,
"LotNumber": "1709853355",
"AccountingField1": null,
"AccountingField2": null,
"Terms": null,
"AdditionalData": null,
"attachments": null,
"invoiceNumber": "QA-1709853355",
"netAmount": "1000.50",
"invoiceDate": "2023-06-06",
"dueDate": "2023-06-06",
"comments": "Floor refinish"
}
],
"Events": [
{
"TransEvent": "Authorized",
"EventData": null,
"EventTime": "2024-03-07T18:15:57.47"
},
{
"TransEvent": "Captured",
"EventData": {
"id": "f4b9e2f4-957a-49c0-bb24-4a869929bfe9",
"group": {
"id": "e711b011-bbaf-4241-9681-6e628d00e0eb",
"name": "10-20240307-CUST123-3089",
"status": "Waiting Funds",
"approved": false,
"totalAmount": "1000.50",
"custId": "CUST123",
"dateCreated": "2024-03-07T23:17:48Z",
"dateModified": "2024-03-07T23:17:48Z",
"links": []
},
"custId": "CUST123",
"paymentNumber": "10-3089",
"vendor": {
"id": "83e31970-25f2-4bb3-baaa-0e5ef63f1051",
"custId": "CUST123",
"vendorNumber": "QA-vendor-1709853355",
"vendorTaxId": "123456787",
"vendorName1": "LAKELAND",
"vendorPhone": "18636700248",
"status": "Pending",
"paymentType": "Check",
"contactEmail": "philaret@philsfloors.com",
"statusReason": "Payment Waiting",
"address": {
"address1": "123 Krill Street",
"city": "LAKELAND",
"state": "FL",
"zip": "33809",
"countryCode": "US"
},
"customerVendorAccountNumber": "testingAccount1",
"dateCreated": "2024-03-07T23:17:48Z",
"dateModified": "2024-03-07T23:17:48Z",
"links": []
},
"remitAddress": {
"address1": "123 Krill Street",
"city": "Lakeland",
"state": "FL",
"zip": "33809",
"countryCode": "US"
},
"links": [],
"invoices": [
{
"netAmount": "1000.50",
"dueDate": "2023-06-06",
"invoiceDate": "2023-06-06",
"comments": "testingAccount1-string"
}
],
"paymentStatus": "Awaiting Funds",
"paymentType": "Pending",
"dateCreated": "2024-03-07T23:17:48Z",
"dateModified": "2024-03-07T23:17:48Z"
},
"EventTime": "2024-03-07T18:17:48.503"
},
{
"TransEvent": "Cancelled",
"EventData": {
"Ip": "35.145.190.199"
},
"EventTime": "2024-03-07T22:30:27.02"
},
{
"TransEvent": "Closed Batch",
"EventData": {
"id": "0d7489f2-2b4b-418a-88c0-1b0587c16eb9",
"name": "10-20240308-CUST123",
"status": "Waiting Funds",
"approved": true,
"totalAmount": "1512.50",
"custId": "CUST123",
"dateCreated": "2024-03-08T02:11:24Z",
"dateModified": "2024-03-08T23:23:55Z",
"links": []
},
"EventTime": "2024-03-08T18:24:00.747"
}
],
"externalPaypointID": "f743aed24a-10",
"EntryName": "f743aed24a"
}
```
## Understand the response
There are several main areas of the response that are useful for understanding a payout transaction:
Events related to the transaction are described in the `Events` array, as `TransEvent` objects. There, you can find information about the payout's current and historical statuses.
You can use the `PaymentMethod` field in the vendor object to understand which method the vendor selected to be paid with.
You can get more information about the specific check or vCard issued in a payout. These details appear in a field associated with the method: `CardToken`,`CheckNumber` or `CheckData`.
The next sections go over these topics in depth.
### TransEvents and payout status
The response includes various `TransEvent` values within the `Events` array in the response. These `TransEvents` represent the stages and status of the payout transaction.
Here are some examples of events objects that you will see in the `Events` array.
```json Authorized example
{
"TransEvent": "Authorized",
"EventData": null,
"EventTime": "2024-03-07T18:15:57.47"
},
```
```json Captured example maxLines=10
// This example has been heavily truncated to show
// only the relevant parts of the reponse
{
"TransEvent": "Captured",
"EventData": {
"id": "f4b9e2f4-957a-49c0-bb24-4a869929bfe9",
"group": {
"id": "e711b011-bbaf-4241-9681-6e628d00e0eb",
"name": "10-20240307-CUST123-3089",
"status": "Waiting Funds",
"approved": false,
"totalAmount": "1000.50",
"custId": "CUST123",
"dateCreated": "2024-03-07T23:17:48Z",
"dateModified": "2024-03-07T23:17:48Z",
"links": [...]
},
"custId": "CUST123",
"paymentNumber": "10-3089",
"vendor": {
"id": "83e31970-25f2-4bb3-baaa-0e5ef63f1051",
"custId": "CUST123",
"vendorNumber": "QA-vendor-1709853355",
"vendorTaxId": "123456787",
"vendorName1": "LAKELAND",
"vendorPhone": "18636700248",
"status": "Pending",
"paymentType": "Check",
"contactEmail": "philaret@philsfloors.com",
"statusReason": "Payment Waiting",
"address": {...},
"customerVendorAccountNumber": "testingAccount1",
"dateCreated": "2024-03-07T23:17:48Z",
"dateModified": "2024-03-07T23:17:48Z",
"links": [...]
},
"remitAddress": {...},
...
"invoices": [...],
"paymentStatus": "Awaiting Funds",
"paymentType": "Pending",
"dateCreated": "2024-03-07T23:17:48Z",
"dateModified": "2024-03-07T23:17:48Z"
},
"EventTime": "2024-03-07T18:17:48.503"
},
```
```json Canceled example
{
"TransEvent": "Cancelled",
"EventData": {
"Ip": "35.145.190.199"
},
"EventTime": "2024-03-07T22:30:27.02"
},
```
```json Closed batch example
{
"TransEvent": "Closed Batch",
"EventData": {
"id": "0d7489f2-2b4b-418a-88c0-1b0587c16eb9",
"name": "10-20240308-CUST123",
"status": "Waiting Funds",
"approved": true,
"totalAmount": "1512.50",
"custId": "CUST123",
"dateCreated": "2024-03-08T02:11:24Z",
"dateModified": "2024-03-08T23:23:55Z",
"links": []
},
"EventTime": "2024-03-08T18:24:00.747"
}
```
The `TransEvents` for payouts are listed in the following table.
|
TransEvent
|
Description
|
Maps To
|
|
Authorized
|
A payout is authorized. These are queued payouts, and nothing happens with them until they're captured.
|
11 (Authorized)
|
|
Captured
|
A payout is captured and is now part of the batch for payout.
|
1 (Captured)
|
|
Capture Declined
|
Authorized transaction capture failed.
|
N/A
|
|
Cancelled
|
An authorized payout has been cancelled. A captured payout can be cancelled before batch close at 5 PM ET.
|
0 (Cancelled)
|
|
Cancel Declined
|
Transaction cancellation failed.
|
N/A
|
|
Closed Batch
|
Batch closed.
|
1 (Closed)
|
|
Created
|
The first event for a transaction, created automatically when a transaction is started.
|
N/A
|
|
Waiting funds
|
A payout is being processed.
|
2 (Processing)
|
|
Funded
|
A payout is being processed.
|
2 (Processing)
|
|
Pending (payment type is pending)
|
A payout is being processed.
|
2 (Processing)
|
|
Generating check
|
A payout is being processed.
|
2 (Processing)
|
|
Open
|
ACH sent, vCard issued, check generated but not yet cashed. A payment method is defined for the vendor, and the payout has been sent to the recipient, but hasn't been redeemed.
|
3 (Processed)
|
|
Processed
|
Payment Type is no longer pending.
|
3 (Processed)
|
|
Reissued
|
A payment method has been reissued.
|
3 (Processed)
|
|
Returned
|
Payment has been returned.
|
3 (Processed)
|
|
Errored
|
There was an error in processing the payment.
|
3 (Processed)
|
|
Paid
|
A payout has been paid and the recipient has redeemed the funds. The vCard has been used, the check has been cashed, or the ACH has settled.
|
5 (Paid)
|
The `TransEvent` value provides insight into the current and historical stages of the payout process, helping you understand the transaction status.
### Determining payment method
The `PaymentMethod` field in the `Vendor` object in the response shows the payment method selected by the vendor for the payout. Initially, this field may show "managed/pending," and it changes as the payout is processed. The possible values for `PaymentMethod` are:
* `vCard`
* `ach`
* `check`
```json ACH {13}
// This example has been truncated to show the most relevant parts
{
"IdOut": 3089,
"CreatedAt": "2024-03-07T18:15:57.34",
"Comments": "Test payout",
"Vendor": {
"VendorNumber": "QA-vendor-1709853355",
"Name1": "Lakeland",
"Name2": "Electric",
"EIN": "XXXX6789",
...
"BillingData": null,
"PaymentMethod": "ach",
...
}
...
}
```
```json Check {13}
// This example has been truncated to show the most relevant parts
{
"IdOut": 3089,
"CreatedAt": "2024-03-07T18:15:57.34",
"Comments": "Test payout",
"Vendor": {
"VendorNumber": "QA-vendor-1709853355",
"Name1": "Lakeland",
"Name2": "Electric",
"EIN": "XXXX6789",
...
"BillingData": null,
"PaymentMethod": "check",
...
},
...
}
```
```json vCard {13}
// This example has been truncated to show the most relevant parts
{
"IdOut": 3089,
"CreatedAt": "2024-03-07T18:15:57.34",
"Comments": "Test payout",
"Vendor": {
"VendorNumber": "QA-vendor-1709853355",
"Name1": "Lakeland",
"Name2": "Electric",
"EIN": "XXXX6789",
...
"BillingData": null,
"PaymentMethod": "vcard",
...
}
...
}
```
### Get more payout details
In certain cases, you may need to retrieve more details about the payout, such as the check information or vCard details. You can find details in the parameters associated with the payment method:
* `CardToken`: The token for the vCard issued for the payout
* `CheckNumber`: The check number for the paper check issued for the payout
* `CheckData`: The check image Base64-encoded as `fContent`. Use a Base64 decoder to view the image
```json CheckNumber {10}
// Example truncated to show most relevant part
{
"IdOut": 3089,
"CreatedAt": "2024-03-07T18:15:57.34",
"Comments": "Test payout",
"Vendor": {...},
...
"CardToken": null,
"CheckNumber": "656768",
"CheckData": null,
"PaymentId": "10-3089",
...
}
```
```json CardToken {9}
// Example truncated to show most relevant part
{
"IdOut": 3089,
"CreatedAt": "2024-03-07T18:15:57.34",
"Comments": "Test payout",
"Vendor": {...},
...
"CardToken": "7590dc09-7130-4644-9d84-5f3770af3878",
"CheckNumber": null,
"CheckData": null,
"PaymentId": "10-3089",
...
}
```
## Related resources
See these related resources to help you get the most out of Payabli.
* **[Manage payouts with the API](/guides/pay-out-developer-payouts-manage)** - Learn how to use the Payabli API to create, capture, and cancel payout transactions