It is important for you to be able to match transfers on your bank account statements with the transactions they include. This can be difficult because the actual money movement may happen a few days after you capture an invoice. Also, if you use several Payment Service Providers (PSPs) with Smart Router then it may not always be clear which PSP handled which transaction from the bank statement alone.
ProcessOut will fetch reports from your PSPs about money transfers whenever possible to make the task easier. We then match each transfer with its corresponding transactions and create a Payout
object with all the details. (Note that a payout in this sense can actually be a positive or a negative amount because refunds and chargebacks are reported in the same way as payments.)
The Payout
object is designed to be a convenient abstraction of the different reporting methods that PSPs use. We strive to standardize data mapping across all PSPs, but full compatibility isn’t always possible. A common example of this is when a PSP provides multiple rows referencing the same transaction. In such cases, we may not be able to match these into a single Payout Item
row, resulting in multiple rows that reference the same transaction. Contact your ProcessOut account manager if you need further details of how a particular PSP reports their payouts to us.
For any fields that refer to an amount of money (such as amount
and fees
), you should specify the amount in the major unit of the currency rather than the minor unit (so this would mean dollars rather than cents if the currency is USD, for example).
Testing
We offer reconciliation testing through our sandbox gateway: https://docs.processout.com/docs/testing-in-the-sandbox. This process allows you to use our transaction export file as the source report for reconciliation.
To generate a sandbox payout, follow these steps:
- Make few test transactions using our
ProcessOut test gateway
. To test different scenarios you can use different cards from https://docs.processout.com/docs/testing-in-the-sandbox#test-cards. - Go to the Dashboard and make sure to switch to sandbox mode.
- In the transactions view, set the filter to display only transactions processed through the mentioned test gateway.
- Click
Export
to export the transactions and download the file from theReports
section once it is ready. - Upload the downloaded export in the
Reports
section, selecting the same gateway to process the file. - Within a few minutes, the uploaded report should be processed and payout should be generated, similar to the production one, including webhook sent once payout is created.
Payout attributes
Field | Type | Description |
---|---|---|
id | string | String value that uniquely identifies the payout. |
gateway_configuration_id (Expandable) | string | Gateway configuration in which the payout was processed. |
items | object | Items listed in the payout. See PayoutItem attributes |
status | string | Status of the payout. Can be pending , in-flight , received , canceled or failed . |
amount | string | Amount of the payout that was wired to your bank. |
currency | string | Currency of the payout. |
bank_name | string | Name of the bank to which the payout was issued, if available. |
bank_summary | string | Bank summary of the payout, if available. |
sales_transactions | integer | Number of transactions involved in this payout. |
sales_volume | string | Sum of the values of all transactions involved in this payout. |
sales_fees | string | Sum of the fees of all transactions involved in this payout. |
refunds_transactions | integer | Number of refunds involved in this payout. |
refunds_volume | string | Sum of the values of all refunds involved in this payout. |
refunds_fees | string | Sum of the fees of all refunds involved in this payout. |
chargebacks_transactions | integer | Number of chargebacks involved in this payout. |
chargebacks_volume | string | Sum of the values of all chargebacks involved in this payout. |
chargebacks_fees | string | Sum of the fees of all chargebacks involved in this payout. |
metadata | object | Metadata related to the payout, in the form of key-value pairs (string - string). |
fees | string | Sum of all the fees taken by the PSP. |
adjustments | string | Adjustments applied by the PSP to the final payout amount. |
reserve | string | Reserve kept by the PSP for the payout. |
settled_at | date | Date and time when this payout was settled. |
created_at | date | Date and time when this payout was created. |
PayoutItem attributes
Field | Type | Description |
---|---|---|
id | string | String value that uniquely identifies the payout item. |
transaction_id (Expandable) | string | Transaction involved in this payout item. Can be null if the item is not linked to a particular transaction, or if it is a transaction that ProcessOut did not handle. |
type | string | Type of the payout item. Can be sale , refund , chargeback , fee , adjustment , reserve . |
payment_provider_type | string | Raw type of the payout item passed from the report from PSP. |
gateway_resource_id | string | ID used by the PSP to reference this payout item. |
amount | string | Amount of the payout item (can be negative for a refund). |
fees | string | Fees taken on this specific payout item. |
breakdown | object | More in-depth breakdown of the fees with IC++ support. Currently breakdown object contains: scheme_fee , interchange_fee , gateway_fee , markup_fee , acquirer_fee and other_fee . |
metadata | object | Metadata related to the payout item, key-value pair (string - string) |
created_at | date | Date and time when this payout item was created. |
Export
For reconciliation, we offer two types of exports - Payout and Payout Item. Exports can be requested from our dashboard and are generated in CSV format. Exports functionality adds alternative way to reconcile, without the need to use our regular API and use the CSV files instead.
Payout export
Payout export includes multiple payouts and can be triggered from payouts view in reports section of the dashboard. It will include information about all of the payouts from given date range.
Columns available in this export:
Field | Type | Description |
---|---|---|
id | string | String value that uniquely identifies the payout. |
gateway_configuration_id | string | ID of the gateway configuration the payout was processed in. |
gateway_resource_id | string | ID used by the PSP to reference the payout. |
status | string | Status of the payout. Can be pending , in-flight , received , canceled or failed . |
amount | string | Amount of the payout that was wired to your bank. |
currency | string | Currency of the payout. |
bank_name | string | Name of the bank to which the payout was issued, if available. |
bank_summary | string | Bank summary of the payout, if available. |
sales_transactions | integer | Number of transactions involved in this payout. |
sales_volume | string | Sum of the values of all transactions involved in this payout. |
sales_fees | string | Sum of the values of all transaction fees involved in this payout. |
refunds_transactions | integer | Number of refunds involved in this payout. |
refunds_volume | string | Sum of the values of all refunds involved in this payout. |
refunds_fees | string | Sum of the values of all refund fees involved in this payout. |
chargebacks_transactions | integer | Number of chargebacks involved in this payout. |
chargebacks_volume | string | Sum of the values of all chargebacks involved in this payout. |
chargebacks_fees | string | Sum of the values of all chargeback fees involved in this payout. |
fees | string | Fees taken by the PSP. |
adjustments | string | Adjustments applied by the PSP to the final payout amount. |
reserve | string | Reserve kept by the PSP for the payout. |
metadata | object | Metadata related to the payout, in the form of key-value pairs (string - string). |
created_at | date | Date and time when this payout was created. |
settled_at | date | Date and time when this payout was settled. |
Payout Item export
Payout Item export includes all of the data regarding single payout and can be triggered from single payout view in reports section of the dashboard. Each row will contain single payout item columns along with some useful data for reconciliation, like transaction related fields.
By setting up SFTP details for the project, you can enable automatic Payout Item export and upload to your SFTP server after each payout is created. This can be useful as an alternative way to connect to our reconciliation system - instead of fetching this data from our API, you can process each object from the SFTP server as soon as it is uploaded.
Columns available in this export (note the dots in some of the column names - they mimic objects structure in our API responses):
Field | Type | Description |
---|---|---|
id | string | ID of the payout item. |
payout_id | string | ID of the payout. Value will be the same across all rows. |
transaction_id | string | ID of the transaction, to which the payout item was matched. |
transaction.name | string | Name of the matched transaction. |
transaction.customer_id | string | ID of the customer assigned to the matched transaction. |
type | string | Type of the payout item. Can be sale , refund , chargeback , fee , adjustment , reserve . |
gateway_resource_id | string | ID used by the PSP to reference this payout item. |
amount | string | Amount of the payout item (can be negative for a refund). |
fees | string | Fees taken on this specific payout item. |
metadata | object | Metadata related to the payout item, key-value pair (string - string). |
transaction.metadata | object | Metadata related to the matched transaction, key-value pair (string - string). |
created_at | date | Date and time when this payout item was created. |
payout.amount | string | Amount of the whole payout. |
payout.currency | string | Currency of the payout. |
payout.bank_summary | string | Bank summary of the payout, if available. |
payout.created_at | date | Date and time when this payout was created. |
payout.settled_at | date | Date and time when this payout was settled. |
payout.gateway_configuration.id | string | ID of the gateway configuration the payout was processed in. |
payout.gateway_configuration.metadata | object | Metadata related to the gateway configuration, key-value pair (string - string). |
payment_provider_type | string | Raw type used by the PSP for this payout item. |
breakdown.scheme_fee | string | Scheme fee part of the fee breakdown for this payout item. |
breakdown.interchange_fee | string | Interchange fee part of the fee breakdown for this payout item. |
breakdown.gateway_fee | string | Gateway fee part of the fee breakdown for this payout item. |
breakdown.markup_fee | string | Markup fee part of the fee breakdown for this payout item. |
breakdown.acquirer_fee | string | Acquirer fee part of the fee breakdown for this payout item. |
breakdown.other_fee | string | Other fee part of the fee breakdown for this payout item. |
transaction.invoice.id | string | ID of the invoice linked to the matched transaction. |
transaction.invoice.order_id | string | Order ID from the invoice linked to the matched transaction. |
transaction.currency | string | Currency of the matched transaction. |
transaction.payment_type | string | Payment type used, from the matched transaction. |
transaction.gateway_name | string | Gateway name used, from the matched transaction. |
transaction.error_code | string | Error code (if error occurred), from the matched transaction. |
transaction.status | string | Status of the matched transaction. |
transaction.card.iin | string | IIN of the card used during payment. |
transaction.card.type | string | Type of the card used during payment. |
transaction.card.category | string | Category of the card used during payment. |
transaction.card.scheme | string | Scheme of the card used during payment. |
matched_operation | object | Single matched operation with fields - id , currency , amount , has_failed , type , created_at , gateway_operation_id and metadata . Note that this column is filled only if we could match payout item to particular operation. |
related_operations | list of objects | All related operations to the payout item. Format is list of operations and fields are the same as in matched_operation. Can be useful for reconciliation, if there was no exact matched_operation found. |