WePayOut Payments API (1.2.2)

Download OpenAPI specification:Download

Use this API to access and manage your WePayOut payment's account data All endpoints are available via https and are located at api.wepayout.com.br/v1/payout/.
You can download a postman collection or a swagger file also.
Last update: 2021-02-24

Authentication

Authorization

WePayOut offers an RFC 6750 Bearer Token authentication method You can login to your account and use the JWT provided.
You can also generate a specific API-Key in our dashboard.

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT or API-Key"

Overview

With payout API you are able to manage your Deposits, Payments and Balances
Payments: All transactions that you need to send to beneficiaries.
Deposits: Manage the funds in your wallet.
Transactions: All data in your account statement.

Payment

Managing your payments.
Eletronic payments are first stored in our database with AWAITING or RECEIVED status.
Only payments with AWAITING OR RECEIVED status can be canceled.
Payments supports webhook notifications, to receive notifications please provide a valid URL in the notification_url field.
Payments may have the following statuses:

  • 1 - RECEIVED - Payment received and stored in our database
  • 2 - PROCESSING - Payment sent for processing
  • 3 - PAID - Payment made with success
  • 4 - REJECTED - Payment rejected by the bank
  • 5 - INREVIEW - Payment sent to our team for review
  • 6 - CANCELED- Payment canceled by Merchant or WPO
  • 7 - AWAITING - Payments awaiting balance
  • 8 - PROCESSED - Payments sent for processing and waiting confirmation from processor\
  • 11 - INVALID_DATA_INPUT - Data provided invalid or insuficcient - only available under client request

Payments in final statuses (PAID, CANCELED,REJECTED) can no longer be updated.

A paginated, filterable and sortable list of payouts

List your bank transfer payments.

Use filters and pagination to navigate in the database.

Payments have two types: Eletronic transfer and Instant Payment

Eletronic transfer are processed only in business days. Instant payments can be processed at 24/7.

Authorizations:
query Parameters
per_page
integer >= 0

The number of items that will be displayed per page on paginated lists.

page
integer >= 0

The current page that will be displayed on paginated lists.

order_by
string
Default: "id"
Enum: "id" "custom_code" "merchant.name" "amount" "beneficiary.name" "processor.name" "created_at" "paid_at" "status.name"

define the ordering of the query

sort
string
Default: "desc"
Enum: "asc" "desc"

Define the sort order, ascendant or descendant

id
string
beneficiary_name
string

the name of a single or multiple beneficiaries separated by comma.

merchant_id
string
beneficiary_document
string
processor_id
string
status_id
string
bank_name
string
custom_code
string
amount
number
payout_type
string
Enum: "u" "r"
remitter_country
string
Example: remitter_country=USA

Filter records by country of remitter, in ISO3 format

created_after
string
created_before
string
updated_after
string
updated_before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new payment

Use this endpoint to send payment instructions to WePayOut

Authorizations:
Request Body schema: application/json

Payment object to be added

merchant_id
required
number

The Merchant ID, Required when you have access to more than one Merchant

source_currency
required
string

Source currency

amount
required
number <double>

Float with the amount to be sent

custom_code
required
string

Your code

notification_url
string

We will send you a HTTP POST with a Notification Object when the transfer status changes

required
object (Beneficiary)
object (Remitter)
legal_entity_name
required
string

The name of the payout originator.

website
required
string

Website of the payout originator.

instant_payment
number [ 0 .. 1 ]
Enum: 0 1

Set 1 if you want this payment to be processed with the instant payment method. You may not have this service contracted.

receipt_message
string <= 140 characters

The message that will be rendered in the payment's receipt

description
string <= 140 characters

This field content will be sent along with the payment to the beneficiary, available only for instant payments

Responses

Callbacks

Request samples

Content type
application/json
Example
{
  • "amount": 1000,
  • "custom_code": "YOURAPPCODE",
  • "notification_url": "https://your.endpoint.to.update",
  • "beneficiary": {
    },
  • "legal_entity_name": "Your client's name",
  • "website": "Your client's website"
}

Response samples

Content type
{
  • "id": 111111,
  • "amount": 1000,
  • "source_currency": "USD",
  • "source_amount": 250,
  • "custom_code": "YOURAPPCODE",
  • "authentication_code": "8132F296ECE9271E97A776777",
  • "payment_type": "T",
  • "rejection_description": "Rejected by bank",
  • "notification_url": "https://your.endpoint.to.update",
  • "beneficiary": {
    },
  • "remitter": {
    },
  • "status": {
    },
  • "paid_at": "2020-01-01 23:59:59",
  • "created_at": "2020-01-01 23:59:59",
  • "updated_at": "2020-01-01 23:59:59",
  • "description": "Payment description",
  • "currency": "BRL"
}

Callback payload samples

Callback
POST: Receive payment's status updates.
Content type
application/json
{
  • "custom_code": "YOURAPPCODE",
  • "property": "Deposit",
  • "property_id": 0,
  • "amount": 0,
  • "currency": "string",
  • "batch_code": "string",
  • "date": "2019-01-01 01:00:00",
  • "description": "",
  • "status_id": 0,
  • "status": "Received"
}

Add a payment batch

Similar to POST /payments.
With this method you can send a payment batch, the payment batch request cannot have more than 20000 payments lenght or 20MB size.'

Authorizations:
Request Body schema: application/json
notification_url
string

The notitifation url to send updates

required
Array of PaymentWithPixKeyInsideBatch (object) or PaymentWithBankDetailsInsideBatch (object)

Responses

Callbacks

Request samples

Content type
application/json
{
  • "notification_url": "https://your.endpoint",
  • "payments": [
    ]
}

Response samples

Content type
application/json
{
  • "count": 0,
  • "total_amount": 0,
  • "batch_code": "string"
}

Callback payload samples

Callback
Content type
application/json
{
  • "custom_code": "YOURAPPCODE",
  • "property": "Deposit",
  • "property_id": 0,
  • "amount": 0,
  • "currency": "string",
  • "batch_code": "string",
  • "date": "2019-01-01 01:00:00",
  • "description": "",
  • "status_id": 0,
  • "status": "Received"
}

Export filtered payments receipts in .zip

Authorizations:
query Parameters
order_by
string
Default: "payment.id"
Enum: "payment.id" "custom_code" "merchant.name" "amount" "beneficiary.name" "processor.name" "paid_at" "status.name"

define the ordering of the query

sort
string
Default: "desc"
Enum: "asc" "desc"

Define the sort order, ascendant or descendant

id
string
beneficiary_name
string

the name of a single or multiple beneficiaries separated by comma.

merchant_id
string
beneficiary_document
string
processor_id
string
status_id
integer
Default: 3
Value: 3
created_after
string
created_before
string
Request Body schema: text/plain

A link to download the .zip file

object

Responses

Request samples

Content type
text/plain
https://export-payouts-data.s3.amazonaws.com/temporaryfilename.zip

Returns a payment by ID.

Get a Payment object by its ID

Authorizations:
path Parameters
paymentID
required
integer

The ID of the payment to return.

Responses

Response samples

Content type
application/json
{
  • "id": 111111,
  • "amount": 1000,
  • "source_currency": "USD",
  • "source_amount": 250,
  • "custom_code": "YOURAPPCODE",
  • "authentication_code": "8132F296ECE9271E97A776777",
  • "payment_type": "T",
  • "rejection_description": "Rejected by bank",
  • "notification_url": "https://your.endpoint.to.update",
  • "beneficiary": {
    },
  • "remitter": {
    },
  • "status": {
    },
  • "paid_at": "2020-01-01 23:59:59",
  • "created_at": "2020-01-01 23:59:59",
  • "updated_at": "2020-01-01 23:59:59",
  • "description": "Payment description",
  • "currency": "BRL"
}

Cancels a payment by ID.

Payouts can only be canceled on Received status only. If you need to cancel a payment in another status it is necessary to send an email to WePayout for the evaluation if a cancelation is possible or not.

Authorizations:
path Parameters
paymentID
required
integer

The ID of the payment to be deleted.

Responses

Response samples

Content type
application/json
{
  • "id": 111111,
  • "amount": 1000,
  • "source_currency": "USD",
  • "source_amount": 250,
  • "custom_code": "YOURAPPCODE",
  • "authentication_code": "8132F296ECE9271E97A776777",
  • "payment_type": "T",
  • "rejection_description": "Rejected by bank",
  • "notification_url": "https://your.endpoint.to.update",
  • "beneficiary": {
    },
  • "remitter": {
    },
  • "status": {
    },
  • "paid_at": "2020-01-01 23:59:59",
  • "created_at": "2020-01-01 23:59:59",
  • "updated_at": "2020-01-01 23:59:59",
  • "description": "Payment description",
  • "currency": "BRL"
}

Returns a payment by CustomCode.

Return the payment object using your custom code

Authorizations:
path Parameters
customCode
required
integer

The CustomCode of the payment to return.

Responses

Response samples

Content type
application/json
{
  • "id": 111111,
  • "amount": 1000,
  • "source_currency": "USD",
  • "source_amount": 250,
  • "custom_code": "YOURAPPCODE",
  • "authentication_code": "8132F296ECE9271E97A776777",
  • "payment_type": "T",
  • "rejection_description": "Rejected by bank",
  • "notification_url": "https://your.endpoint.to.update",
  • "beneficiary": {
    },
  • "remitter": {
    },
  • "status": {
    },
  • "paid_at": "2020-01-01 23:59:59",
  • "created_at": "2020-01-01 23:59:59",
  • "updated_at": "2020-01-01 23:59:59",
  • "description": "Payment description",
  • "currency": "BRL"
}

Returns the receipt of a payment.

Get the receipt of the payment in HTML format

Authorizations:
path Parameters
paymentID
required
integer

The ID of the payment to return.

Responses

Deposit

Manage your funding deposits.
Deposits can have two types: FEE or PAYOUT.
FEE deposits are used to fund your fee wallet.
PAYOUT deposits are used to fund your payout wallet. Deposits also supports webhook notifications, to receive notifications please provide a valid URL in the notification_url field.
Deposits can have the following statuses:

  • CREATED - Deposit created at WePayout's platform
  • CONFIRMED - Deposit received by the Broker but isn't credited yet at a BRL account.
  • CANCELED - Deposit canceled by the Merchant
  • REJECTED - Deposit rejected by the bank, Broker or WePayout
  • IN_REVIEW - Deposit with some divergence which is waiting bank, WePayout or Merchant analyzes.
  • CREDITED - Deposit credited at BRL account and at Merchant account

List deposits with given filter

Get the list of Deposits that you registered in WePayOut. You can use filters and pagination to navigate in the database.

Authorizations:
query Parameters
per_page
integer >= 0

The number of items that will be displayed per page on paginated lists.

page
integer >= 0

The current page that will be displayed on paginated lists.

order_by
string
Default: "deposit.id"
Enum: "deposit.id" "merchant.name" "currency.name" "sender_name" "amount" "converted_amount" "date" "status" "type" "deposit.created_at"

define the ordering of the query

sort
string
Default: "desc"
Enum: "asc" "desc"

Define the sort order, ascendant or descendant

merchant_name
string

Name of a single or multiple merchants separated by comma

created_after
string
created_before
string
merchant_id
string
currency.name
string

The name of the currency

id
string

WPO ID

status_id
string

single or multiple (separated by comma)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new deposit

Deposits are used to register and track the funds that you send to WePayOut.

  • When WePayout receives the deposit in foreign currency it will change the deposit status to Confirmed.
  • When the amount received is exchanged to local currency and the credit is received at WePayout’s account, the deposit status will change to Credited and the value amount will be credited at Merchant's account.
Authorizations:
Request Body schema: application/json

DepositRequest object to be added

amount
required
number
sender_name
required
string

The name of the money sender

notes
required
string

Your deposit notes

currency
required
string
Enum: "BRL" "USD" "EUR"

The value must be BRL, USD or EUR

type
required
string
Enum: "FEE" "PAYOUTS"

The value must be FEE or PAYOUTS

notification_url
string

We will send you a HTTP POST with a Notification Object when deposit status changes

date
required
string

Date refers to the date the deposit was sent from your bank account. It is important to inform the correct deposit date to WePayout be able to follow up the order with the Broker.

Responses

Callbacks

Request samples

Content type
application/json
{
  • "amount": 1000,
  • "sender_name": "Your company's name",
  • "notes": "Deposit identification or information that should be considerated",
  • "currency": "BRL",
  • "type": "FEE",
  • "notification_url": "https://your.endpoint.to.update",
  • "date": "2019-01-01"
}

Response samples

Content type
application/json
{
  • "id": 1111111,
  • "status": 0,
  • "amount": 1000,
  • "sender_name": "Your company's name",
  • "notes": "Deposit identification or information that should be considerated",
  • "currency": "BRL",
  • "type": "FEE",
  • "notification_url": "https://your.endpoint.to.update",
  • "date": "2019-01-01"
}

Callback payload samples

Callback
POST: Receive deposit status updates.
Content type
application/json
{
  • "custom_code": "YOURAPPCODE",
  • "property": "Deposit",
  • "property_id": 0,
  • "amount": 0,
  • "currency": "string",
  • "batch_code": "string",
  • "date": "2019-01-01 01:00:00",
  • "description": "",
  • "status_id": 0,
  • "status": "Received"
}

Merchant

You can have many merchants in your account, to get information about the merchants you have access use the methods provided below:

Get a list of all available merchants

Merchants are the accounts that you have at WePayOut.

Use this endpoint to navigate and filter them.

Authorizations:
query Parameters
per_page
integer >= 0

The number of items that will be displayed per page on paginated lists.

page
integer >= 0

The current page that will be displayed on paginated lists.

order_by
string
Default: "payment.id"
Enum: "payment.id" "custom_code" "merchant.name" "amount" "beneficiary.name" "processor.name" "paid_at" "status.name"

define the ordering of the query

sort
string
Default: "desc"
Enum: "asc" "desc"

Define the sort order, ascendant or descendant

id
string
franchise_name
string

the name of a single or multiple franchises separated by comma.

name
string

the name of a single or multiple merchants separated by comma.

type
string

a single or multiple types of merchant separated by comma.

legal_name
string

the legal name of a single or multiple merchants separated by comma.

legal_entity_number
string

the legal entity number of a single or multiple merchants separated by comma.

city
string

single or multiple separated by comma.

state
string

single or multiple separated by comma.

country
string

single or multiple separated by comma.

fee
string

single or multiple separated by comma.

exchange_rate
string

single or multiple separated by comma.

created_after
string
created_before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get your balance

Get the balance of some merchant.

If you have only one merchant registered you don't need to pass the merchant_id query string param.

Authorizations:
query Parameters
merchant_id
integer

The ID of the merchant, it's required for users that has access to more than one merchant

Responses

Response samples

Content type
application/json
{
  • "feeBalance": 100.99,
  • "payoutBalance": 1000.1,
  • "payoutAvailableBalance": 1000.1,
  • "feeAvailableBalance": 1000.1
}

Transactions

Transactions are stored in your wallet.
Each transaction has an operation_type wich can be CREDIT or DEBIT.
Transactions also impact specific wallets, this information is available in the balance_type field, wich can be FEE or PAYOUT.

A paginated, filterable and sortable list of transactions

List all transactions in the database.

Use this endpoint to paginate, filter and navigate in the database.

Authorizations:
query Parameters
per_page
integer >= 0

The number of items that will be displayed per page on paginated lists.

page
integer >= 0

The current page that will be displayed on paginated lists.

order_by
string
Default: "transaction.id"
Enum: "transaction.id" "merchant.name" "operation_type" "balance_type" "description" "amount" "available_balance" "balance" "transaction.created_at"

define the ordering of the query

sort
string
Default: "desc"
Enum: "asc" "desc"

Define the sort order, ascendant or descendant

id
string
merchant_id
string
source
string
Enum: "payment" "deposit" "merchant_note"

The entity that generate the transaction, can be Payment, Deposit or MerchantNote

operation_type
string
Enum: "D" "C"

Use D for Debit and C for Credit

balance_type
string
Enum: "F" "P"

F for Fee, P for Payouts

created_after
string
created_before
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Bank

List available banks that you can make payments to.

A paginated, filterable and sortable list of banks

Return the list of banks available

Authorizations:
query Parameters
per_page
integer >= 0

The number of items that will be displayed per page on paginated lists.

page
integer >= 0

The current page that will be displayed on paginated lists.

order_by
string
Default: "bank.id"
Enum: "bank.id" "code" "name" "document_name" "logo" "created_at" "updated_at"

define the ordering of the query

sort
string
Default: "desc"
Enum: "asc" "desc"

Define the sort order, ascendant or descendant

id
string
code
string

single or multiple separated by comma.

name
string

single or multiple separated by comma.

document_name
string

single or multiple separated by comma.

created_before
string
created_after
string
updated_before
string
updated_after
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Exchange Rate

This feature is only available for certain merchants, please talk with our team if you want to use this API.

List exchange rates

List exchange rates.

Use filters and pagination to navigate in the database.
To get only the available exchange rates you can filter it using the status parameter with the value 1.

Authorizations:
query Parameters
per_page
integer >= 0

The number of items that will be displayed per page on paginated lists.

page
integer >= 0

The current page that will be displayed on paginated lists.

status
string
Enum: "0" "1"
Example: status=1

The exchange rate status, for available exchange rates use 1; for past exchange rates use 0

created_after
string
Example: created_after=2021-01-01

Date

created_before
string
Example: created_before=2021-01-01

Date

Responses

Response samples

Content type
application/json
[
  • {
    }
]