DropPay API - Bank v.1 - ISO 20022 Messages - Bank to Customer Report (CAMT.052)¶
The account report (camt.052.001.02 BankToCustomerAccountReportV06) description is used for reporting intra-day transactions and balances.
The CAMT.052 is usually an intraday report message. Nevertheless DropPay will provide this type of message by putting you in control of which day and time you want the report being referred to, that is you can decide which day your system is running in, today or any day before today.
And more, you can ask DropPay to produce the report with a time range wider than the 24h of selected day.
How it works¶
In order to get delivered with a CAMT 052 you have to:
-
POST
a request that initializes a job with desired parameters in a json object; -
PATCH
the job resource until it's ready to be launched; - make the job run (
PATCH
the status to beREADY
) and wait for it to issue a new report, catching the event your client has been subscribed to; - get the XML 20022 CAMT.052 file directly from an uri provided in a json attribute of the job;
Get further reading all the details time ranged reports.
Time Rangd Reports¶
In order to get CAMT.052.001 reports produced you can set attributes to define the time range. report_time_range
attribute is optional.
Date-time and durations are ISO 8601 compliant representations.
"time_range_report": {
"begin": "2016-07-16T19:20:30+01:00",
"end": "2016-07-16T19:20:30+01:00",
"duration": "P2M"
},
Semanthics of time ranges are listed in the table below:
Time Range | Description |
---|---|
begin , end | produces one CAMT 052 with absolute time range |
begin , duration | produces one CAMT 052, from begin to begin+duration |
end , duration | produces one CAMT 052, from end-duration to end |
begin , end , duration | produces one CAMT 052 with absolute time range, ignores duration |
Reports can be produced scheduling a job and then fetching resulting files once job status switch to, DONE
or CANCELLED
. Files will be available until 48 hours after the status has changed to DONE
or CANCELLED
. Late fetches will result in a 410/500
HTTP Status Error.
Default range¶
If time_range_report
is not passed in, DropPay will issue reports setting a default time range beginning at 00:00 of the current day and ending at the time the request is performed.
CAMT 052 Versioning¶
Currently DropPay supports only Version 6 of CAMT 052.
Anyway if any other version compliance will be added in the future, you'll be able to require DropPay to produce CAMT 052 reports accordingly with the version set as job attribute.
"version": "001.006",
CAMT 052 DropPay specification¶
You can find XML schema specified as a formatted table in the document DropPay-ISO20022-CAMT.052.001.pdf
REST Entities¶
Every REST entity is described listing her properties with the following formatting conventions:
- this is a property name
this is an example of property value
- (type, policy, direction) is the specification of a property
- type can be "string", "number", "object" or a proper object class name
- policy can be "optional" or "required"
- direction can be "posted" or "received" depending on whether you set it in the request or you got it from the response
- after the dash "-" there's the property description
name: example_value
(type, policy, direction) - Property description
CAMT 052.001¶
CAMT 052.001
- id:
ISO145123G6YY
(string, returned) - Unique job identifier - description:
my wonderful unstoppable job
(string, optional, posted) - user's description of the job - version:
001.006
(enum, optional, posted, returned) - requested ISO 20022 supported version of XML reports- enum members
- 001.006
- enum members
- date_creation:
2016-07-16T19:20:30+01:00
(string, returned) - ISO 8601 time representation of job creation timestamp - iban:
IT00A1000010000393471122333
(string, required, posted) - bank account IBAN - time_range_report: (object, optional, posted)
- begin:
2016-07-16T19:20:30+01:00
(string, optional, posted) - ISO 8601 time representation of time range start - end:
2016-07-16T19:20:30+01:00
(string, optional, posted) - ISO 8601 time representation of time range end - duration:
P2M
(string, required) (string, optional, posted) - ISO 8601 duration representation (in example "two months")
- begin:
- status:
DRAFT
(enum, returned)- enum members
- DRAFT
- SCHEDULED
- RUNNING
- CANCELLED
- DELETED
- DONE
- enum members
- webhooks: (object, optional, posted)
- camt052:
https://credenA:credenB@app.server.com/listener
(string, optional) - optional webhook where to receive event notification ofRUNNING-IDLE
state switching to.
- camt052:
- reports: (array[object], returned) - Download URL of the report. Item is added only once the report file with results has been created. Filename is built with Bank Acccount number and issuing timestamp
- date_issue:
2016-07-16T19:20:30+01:00
- ISO 8601 time representation of statement issuing date - file:
https://api.drop-pay.io/bank/iso20022/v1/reports/ISO145123G6YY/393471122333-41208652835.xml
- date_issue:
REST Endpoints¶
Security¶
Requests must be authenticated with User Access Token. User Access Token can be obtained requesting it with and active Connection Code.
Details at Authentication v.1 API Reference
Manage CAMT 052 jobs¶
DropPay Push API publishes the following methods :
- POST a new Push order entity to send money
- GET the Push order entity to read the order status;
- PATCH the Push order entity to modify the order attributes until it is set with second factor disposition protocol;
- DELETE the Push order entity
POST Create a new CAM 052 job
Create a new CAMT 052 job¶
Example¶
Request¶
curl --request POST
--url https://api.drop-pay.io/bank/iso20022/v1/camt/052/
--header 'authorization: Bearer ac9185e9f2984867b11069fd2881ff1a'
--header 'content-type:application/json'
{
"description `my wonderful unstoppable job`": "",
"version": "001.006",
"iban": "IT00A1000010000393471122333",
"time_range_report": {
"begin": "2016-07-16T19:20:30+01:00",
"end": "2016-07-16T19:20:30+01:00",
"duration": "P2M"
},
}
Response 200
Response 200¶
{
"id": "ISO145123G6YY",
"description": "my wonderful unstoppable job",
"version": "001.006",
"date_creation": "2016-07-16T19:20:30+01:00",
"iban": "IT00A1000010000393471122333",
"time_range_report": {
"begin": "2016-07-16T19:20:30+01:00",
"end": "2016-07-16T19:20:30+01:00",
"duration": "P2M"
},
"status": "DRAFT",
"webhooks": {
"camt052": "https://credenA:credenB@app.server.com/listener"
},
"reports": [
{
"date_issue": "2016-07-16T19:20:30+01:00",
"file": "https://api.drop-pay.io/bank/iso20022/v1/reports/ISO145123G6YY/RPT523623G6YY"
}
],
}
PATCH Update an existent CAM 052 job
Update an existent CAMT 052 job¶
Example¶
Request¶
curl --request PATCH
--url https://api.drop-pay.io/bank/iso20022/v1/camt/052/ISO145123G6YY
--header 'Authorization: Bearer ac9185e9f2984867b11069fd2881ff1a'
--header 'Content-type: application/json'
URL Parameters
- id:
ISO145123G6YY
- Unique ID of the job
{
"status": "SCHEDULED"
}
Response 200
Response 200¶
{
"id": "ISO145123G6YY",
"description": "my wonderful unstoppable job",
"version": "001.006",
"date_creation": "2016-07-16T19:20:30+01:00",
"iban": "IT00A1000010000393471122333",
"time_range_report": {
"begin": "2016-07-16T19:20:30+01:00",
"end": "2016-07-16T19:20:30+01:00",
"duration": "P2M"
},
"status": "SCHEDULED",
"webhooks": {
"camt052": "https://credenA:credenB@app.server.com/listener"
},
"reports": [
{
"date_issue": "2016-07-16T19:20:30+01:00",
"file": "https://api.drop-pay.io/bank/iso20022/v1/reports/ISO145123G6YY/RPT523623G6YY"
}
],
}
GET Read an existent CAM 052 CAM 052 job
Read an existent CAM 052 CAMT 052 job¶
Example¶
Request¶
curl --request GET
--url https://api.drop-pay.io/bank/iso20022/v1/camt/052/ISO145123G6YY
--header 'Authorization: Bearer ac9185e9f2984867b11069fd2881ff1a'
URL Parameters
- id:
ISO145123G6YY
- Unique ID of the job
Response 200
Response 200¶
{
"id": "ISO145123G6YY",
"description": "my wonderful unstoppable job",
"version": "001.006",
"date_creation": "2016-07-16T19:20:30+01:00",
"iban": "IT00A1000010000393471122333",
"time_range_report": {
"begin": "2016-07-16T19:20:30+01:00",
"end": "2016-07-16T19:20:30+01:00",
"duration": "P2M"
},
"status": "DRAFT",
"webhooks": {
"camt052": "https://credenA:credenB@app.server.com/listener"
},
"reports": [
{
"date_issue": "2016-07-16T19:20:30+01:00",
"file": "https://api.drop-pay.io/bank/iso20022/v1/reports/ISO145123G6YY/RPT523623G6YY"
}
],
}
DELETE Delete an existent CAM 052 CAM 052 job
Delete an existent CAM 052 CAMT 052 job¶
Delete method changes semanthic depending upon origin status, so :
- if origin status is
DRAFT
orSCHEDULED
delete moves order toDELETED
- if origin status is
RUNNING
, delete moves order toCANCELLED
- if origin status is
DONE
, delete returns a409:103
HTTP Status Error
Example¶
Request¶
curl --request DELETE
--url https://api.drop-pay.io/bank/iso20022/v1/camt/052/ISO145123G6YY
--header 'Authorization: Bearer ac9185e9f2984867b11069fd2881ff1a'
URL Parameters
- id:
ISO145123G6YY
- Unique ID of the job
Response 200
Response 200¶
{
"id": "ISO145123G6YY",
"description": "my wonderful unstoppable job",
"version": "001.006",
"date_creation": "2016-07-16T19:20:30+01:00",
"iban": "IT00A1000010000393471122333",
"time_range_report": {
"begin": "2016-07-16T19:20:30+01:00",
"end": "2016-07-16T19:20:30+01:00",
"duration": "P2M"
},
"status": "CANCELLED",
"webhooks": {
"camt052": "https://credenA:credenB@app.server.com/listener"
},
"reports": [
{
"date_issue": "2016-07-16T19:20:30+01:00",
"file": "https://api.drop-pay.io/bank/iso20022/v1/reports/ISO145123G6YY/RPT523623G6YY"
}
],
}
Listing CAMT 052 jobs¶
GET Read an existent CAM 052 CAM 052 job
Read an existent CAM 052 CAMT 052 job¶
WARNING!! no item_offsets, total_items->number of reports, paging on number of jobs
Example¶
Request¶
curl --request GET
--url https://api.drop-pay.io/bank/iso20022/v1/camt/052s/{?iban,status,description,date_from,date_to,pg_num,pg_size}
--header 'Authorization: Bearer ac9185e9f2984867b11069fd2881ff1a'
URL Parameters
- iban (string, optional) - whole CAMT052 history of a DropPay account
- status (string, optional) - Comma Separated list of Values (CSV) with available status labels.
- description (string, optional) - text search in job's description property
- pg_size: 100 (number,optional)
- pg_offset: 0 (number,optional)
Response 200
Response 200¶
`` json { "camt052s": [ { "id": "ISO145123G6YY", "description
my wonderful unstoppable job": "", "version": "001.006", "date_creation
2016-07-16T19:20:30+01:00`": "", "iban": "IT00A1000010000393471122333", "time_range_report": { "begin": "2016-07-16T19:20:30+01:00", "end": "2016-07-16T19:20:30+01:00" }, "status": "DRAFT", "webhooks": { "camt052": "https://credenA:credenB@app.server.com/listener" }, "reports": [ { "date_issue": "2016-07-16T19:20:30+01:00", "file": "https://api.drop-pay.io/bank/iso20022/v1/reports/ISO145123G6YY/393471122333-41208652835.xml" } ],
}
],
"paging_info": {
"current_page": 0,
"total_pages": 0,
"page_size": 0,
"total_items": 0
}
}
```
Group Webhooks & Events¶
Webhooks & Events¶
Your Application can subscribe to the following webhooks
Webhooks
- all: an URL you provide that is enabled to receive a POST with the updated Report json payload
- camt052: an URL you provide that is enabled to receive a POST with the updated Report json payload
Add a webhook
property as show below.
"webhooks": {
"camt052": "https://credenA:credenB@app.server.com/listener"
},
Port 443 allowed only (HTTPS)
Please remember that only secure HTTPS on well-known port 443
webhooks are allowed DropPay doesn't validate webhooks URL, but you won't receive any notification event.
Events of useful status updates¶
Event fired when a new camt.052 report is delivered.
{
"etime": "2017-06-30T12:00:00+01:00",
"etype": "iso20022.camt052.issued",
"edata": { A CAMT052 entity }
}
Event fired when a camt.052 job is complete.
{
"etime": "2017-06-30T12:00:00+01:00",
"etype": "iso20022.camt052.done",
"edata": { A CAMT052 entity }
}
Webhook | Event |
---|---|
camt052, all | iso20022.camt052.issued |
camt052, all | iso20022.camt052.done |