Generating through API
Save time and automate the generating frequency of the Available Balance report as many times as you want, both manually and on a scheduled basis.
Set up your reports
Execute the curl you need to review, create and update your reports.
Check configuration
Check the configuration of your reports by API in this way:
curl -X GET \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/config' \
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json',
'content-type' => 'application/json',
'Authorization' => 'Bearer ENV_ACCESS_TOKEN'
);
$response = Requests::get('https://api.mercadopago.com/v1/account/bank_report/config', $headers);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/config");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
response = requests.get('https://api.mercadopago.com/v1/account/bank_report/config', headers=headers)
var request = require('request');
var headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/config',
headers: headers
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
You will receive an HTTP STATUS 200 (OK)
in response.
json
{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"scheduled": true,
"execute_after_withdrawal": true,
"v1": {
"language": null,
"generate_bank_report": false
},
"extended": true,
"frequency": {
"hour": 3,
"type": "daily",
"value": {}
}
}
Create configuration
Create your API generation preferences to export columns, name your files and configure other settings:
curl -X POST \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/config' \
-d '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {
"hour": 0,
"type": "monthly",
"value": 1
}
}'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json',
'content-type' => 'application/json',
'Authorization' => 'Bearer ENV_ACCESS_TOKEN'
);
$data = '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {
"hour": 0,
"type": "monthly",
"value": 1
}
}';
$response = Requests::post('https://api.mercadopago.com/v1/account/bank_report/config', $headers, $data);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/config");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
connection.setDoOutput(true);
String body = "{
\\"file_name_prefix\\": \\"bank-report-USER_ID\\",
\\"include_withdrawal_at_end\\": false,
\\"detailed\\": true,
\\"execute_after_withdrawal\\": true,
\\"extended\\": true,
\\"frequency\\": {
\\"hour\\": 0,
\\"type\\": \\"monthly\\",
\\"value\\": 1
}
}";
try(OutputStream os = connection.getOutputStream()) {
byte[] input = body.getBytes("utf-8");
os.write(input, 0, input.length);
}
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
data = '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {"hour": 0,"type": "monthly","value": 1}
}'
response = requests.post('https://api.mercadopago.com/v1/account/bank_report/config', headers=headers, data=data)
var request = require('request');
var headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var dataString = '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {
"hour": 0,
"type": "monthly",
"value": 1
}
}';
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/config',
method: 'POST',
headers: headers,
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
You will receive an HTTP STATUS 201 (Created)
in response.
json
{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"scheduled": false,
"execute_after_withdrawal": true,
"v1": {
"language": null,
"generate_bank_report": false
},
"extended": true,
"frequency": {
"hour": 3,
"type": "daily",
"value": {}
}
}
Update configuration
When you need to update your settings, you can adjust the following attributes:
curl -X PUT \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/config' \
-d '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {
"hour": 0,
"type": "monthly",
"value": 1
}
}'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json',
'content-type' => 'application/json',
'Authorization' => 'Bearer ENV_ACCESS_TOKEN'
);
$data = '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {
"hour": 0,
"type": "monthly",
"value": 1
}
}';
$response = Requests::put('https://api.mercadopago.com/v1/account/bank_report/config', $headers, $data);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/config");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("PUT");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
connection.setDoOutput(true);
String body = "{
\\"file_name_prefix\\": \\"bank-report-USER_ID\\",
\\"include_withdrawal_at_end\\": false,
\\"detailed\\": true,
\\"execute_after_withdrawal\\": true,
\\"extended\\": true,
\\"frequency\\": {
\\"hour\\": 0,
\\"type\\": \\"monthly\\",
\\"value\\": 1
}
}";
try(OutputStream os = connection.getOutputStream()) {
byte[] input = body.getBytes("utf-8");
os.write(input, 0, input.length);
}
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
data = '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {"hour": 0,"type": "monthly","value": 1}
}'
response = requests.put('https://api.mercadopago.com/v1/account/bank_report/config', headers=headers, data=data)
var request = require('request');
var headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var dataString = '{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"execute_after_withdrawal": true,
"extended": true,
"frequency": {
"hour": 0,
"type": "monthly",
"value": 1
}
}';
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/config',
method: 'PUT',
headers: headers,
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
You will receive an HTTP STATUS 200 (OK)
in response.
json
{
"file_name_prefix": "bank-report-USER_ID",
"include_withdrawal_at_end": false,
"detailed": true,
"scheduled": false,
"execute_after_withdrawal": true,
"v1": {
"language": null,
"generate_bank_report": false
},
"extended": true,
"frequency": {
"hour": 3,
"type": "daily",
"value": {}
}
}
Configurable attributes
Know the fields you can configure to adjust your preferences before you start:
Configurable fields | Description |
---|---|
sftp_info (optional) | Indicates the uploaded data to SFTP when you need it. |
separator (optional) | Separator that you can use in the .csv file when you don't want the separator to be a comma. |
extended (optional) | Includes the details of the commissions in the report. |
refund_detailed (optional) | Displays the reference code (external_reference) of the refund instead of the reference code (external_reference) of the payment. |
include_withdrawal (optional) | Includes withdrawals in the report. |
coupon_detailed (optional) | Includes a column to show the detail of the discount coupons. |
detailed | Includes columns with more detailed information about your operations: - Mercado Pago Fee ( mp_fee_amount )- Fee for offering interest-free installments ( financing_fee_amount )- Gross amount of the operation ( gross_amount )- Payment methods ( payment_method )- Installments ( installments )- Discount coupon ( coupon_amount ) - Shipping Costs ( shipping_fee_amount ) - Taxes charged for withholdings of IIBB ( taxes_amount ) - Amount received for split purchases ( seller_amount ) |
file_name_prefix | Prefix that composes the report name once generated and ready for download. |
frequency | Indicates the daily, weekly or monthly frequency of scheduled reports. - frequency applies type monthly to the day of the month or weekly to the day of the week.- hour Hour Time of day to generate the report. - type Type indicates the type of frequency daily, weekly and monthly. |
scheduled (read_only) | Informative field that indicates if there are already scheduled reports in the user account. |
Generating manually
Generate your reports manually by configuring three instances: generation, search and download.
1. Generation
Post to the API by specifying the start and end dates as follows:
curl -X POST \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report' \
-d '{
"begin_date": "2019-05-01T00:00:00Z",
"end_date": "2019-06-01T00:00:00Z"
}'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json',
'content-type' => 'application/json',
'Authorization' => 'Bearer ENV_ACCESS_TOKEN'
);
$data ='{
"begin_date": "2019-05-01T00:00:00Z",
"end_date": "2019-06-01T00:00:00Z"
}';
$response = Requests::post("https://api.mercadopago.com/v1/account/bank_report", $headers, $data);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
connection.setDoOutput(true);
String body = "{\\"begin_date\\":\\"2019-05-01T00:00:00Z\\",\\"end_date\\": \\"2019-06-01T00:00:00Z\\"}";
try(OutputStream os = connection.getOutputStream()) {
byte[] input = body.getBytes("utf-8");
os.write(input, 0, input.length);
}
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
data = '{ "begin_date": "2019-05-01T00:00:00Z", "end_date": "2019-06-01T00:00:00Z" }'
response = requests.post('https://api.mercadopago.com/v1/account/bank_report', headers=headers, data=data)
var request = require('request');
var headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var dataString = '{ "begin_date": "2019-05-01T00:00:00Z", "end_date": "2019-06-01T00:00:00Z" }';
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report',
method: 'POST',
headers: headers,
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
You will receive an HTTP STATUS 202 (Accepted)
in response, and the report will be generated asynchronously.
2. Search
Check the API this way to see if the report generation is ready:
curl -G \
-H 'accept: application/json' \
-d 'access_token=ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/list'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json'
);
$data = array(
'access_token' => 'ENV_ACCESS_TOKEN'
);
$response = Requests::post('https://api.mercadopago.com/v1/account/bank_report/list', $headers, $data);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/list");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
response = requests.post('https://api.mercadopago.com/v1/account/bank_report/list', headers=headers)
var request = require('request');
var headers = { 'accept': 'application/json'};
var dataString = 'access_token=ENV_ACCESS_TOKEN';
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/list',
method: 'POST',
headers: headers,
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
You will receive HTTP STATUS 200 (OK)
in response:
json
[
{
"id": 12345678,
"user_id": USER-ID,
"begin_date": "2015-05-01T00:00:00Z",
"end_date": "2015-06-01T23:59:59Z",
"file_name": "bank-report-USER_ID-2016-01-20-131015.csv",
"created_from": "manual",
"date_created": "2016-01-20T10:07:53.000-04:00"
},
{
...
}
]
3. Download
Using the file_name
attribute, you can download the report from the following URL:
curl -X GET \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/:file_name'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json'
);
$data = array(
'access_token' => 'ENV_ACCESS_TOKEN'
);
$response = Requests::post('https://api.mercadopago.com/v1/account/bank_report/:file_name', $headers, $data);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/:file_name");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
response = requests.get('https://api.mercadopago.com/v1/account/bank_report/:file_name', headers=headers)
var request = require('request');
var headers = {
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/:file_name',
headers: headers,
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
You will receive an HTTP STATUS 200 (OK)
in response.
csv
DATE,SOURCE_ID,EXTERNAL_REFERENCE,RECORD_TYPE,DESCRIPTION,NET_CREDIT_AMOUNT,NET_DEBIT_AMOUNT,GROSS_AMOUNT,MP_FEE_AMOUNT,FINANCING_FEE_AMOUNT,SHIPPING_FEE_AMOUNT,TAXES_AMOUNT,COUPON_AMOUNT,INSTALLMENTS,PAYMENT_METHOD
2018-04-17T15:07:53.000-04:00,,,initial_available_balance,,813439.19,0.00,813439.19,0.00,0.00,0.00,0.00,0.00,1,
2018-04-17T15:07:53.000-04:00,,,release,withdrawal,0.00,813363.45,-813360.45,-3.00,0.00,0.00,0.00,0.00,1,
2018-04-17T15:11:12.000-04:00,,,release,payment,225.96,0.00,269.00,-43.04,0.00,0.00,0.00,0.00,1,account_money
2018-04-17T15:18:16.000-04:00,,,release,payment,124.32,0.00,148.00,-23.68,0.00,0.00,0.00,0.00,1,visa
2018-04-17T15:38:40.000-04:00,,,release,payment,820.14,0.00,1099.00,-278.86,0.00,0.00,0.00,0.00,6,visa
2018-04-17T15:38:40.000-04:00,,,release,payment,850.00,0.00,850.00,0.00,0.00,0.00,0.00,0.00,1,account_money
Generating on a scheduled basis
Generate your reports on a scheduled basis by configuring three instances: generation, configuration and download.
1. Generation
Schedule the automatic report generation using the frequency in the configuration resource. Update the scheduled
attribute in the configuration to true
:
plain
POST /v1/account/bank_report/schedule
Stops automatic report generation. Update the scheduled
attribute in the false configuration:
plain
DELETE /v1/account/bank_report/schedule
2. Configuration
Execute the curl you need to start and cancel the scheduled generation of your reports.
Start scheduled generation
curl -X POST \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/schedule'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json',
'content-type' => 'application/json',
'Authorization' => 'Bearer ENV_ACCESS_TOKEN'
);
$response = Requests::post('https://api.mercadopago.com/v1/account/bank_report/schedule', $headers);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/schedule");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
response = requests.post('https://api.mercadopago.com/v1/account/bank_report/schedule', headers=headers)
var request = require('request');
var headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/schedule',
method: 'POST',
headers: headers
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
Cancel scheduled generation
curl -X DELETE \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'Authorization: Bearer ENV_ACCESS_TOKEN' \
'https://api.mercadopago.com/v1/account/bank_report/schedule'
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
'accept' => 'application/json',
'content-type' => 'application/json',
'Authorization' => 'Bearer ENV_ACCESS_TOKEN'
);
$response = Requests::delete('https://api.mercadopago.com/v1/account/bank_report/schedule', $headers);
URL url = new URL("https://api.mercadopago.com/v1/account/bank_report/schedule");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("DELETE");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Authorization", "Bearer ENV_ACCESS_TOKEN");
System.out.println(connection.getResponseCode());
System.out.println(connection.getResponseMessage());
System.out.println(connection.getInputStream());
import requests
headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
}
response = requests.delete('https://api.mercadopago.com/v1/account/bank_report/schedule', headers=headers)
var request = require('request');
var headers = {
'accept': 'application/json',
'content-type': 'application/json',
'Authorization': 'Bearer ENV_ACCESS_TOKEN'
};
var options = {
url: 'https://api.mercadopago.com/v1/account/bank_report/schedule',
method: 'DELETE',
headers: headers
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}
}
request(options, callback);
3. Download
Download the file with this command:
plain
GET /v1/account/bank_report/:file_name