Return File 3.3
- Goals
- Definitions
- File Structure
- Record format
- Record 0 – Header
- Record 1 - Sale Details
- Record 10 - Credit Details
- Record 2 – Adjustments
- Record 100 – Anticipation Batch
- Record 200 – Anticipated transactions
- Record 9 – Trailer
- Ronark
- Limitations
- Tonplate for saving to database
- Code table
- Version Changes
1. Goals
-The detailed return file generated on disk is intended to allow the syston to
the client's back office can download the outstanding bills. '
Target Audience: Any and all clients that need to save data to disk.
- The detailed return file generated in the customer's database is intended to
allow the back-end syston to download outstanding bills for a
table created and managed by the customer.
Target Audience: Environments that use database as an interface and are administered by DBAs.
- The generated consolidated file is used to check the values recorded in the map
store cash against the value recorded by SiTef, for payment transactions
with credit, debit and benefit cards.
2. Definitions
- The generation of the file is done through the "Reports" interface, requiring only the
“Start Date” and “End Date” information. - Files saved to disk will be generated in CSV format, that is, the fields are
separated by sonicolons (“;”). - Os arquivos também podon ser gerados on banco de dados desde que, previamente
configurados e criadas suas respectivas tabelas(1 tabela para cada tipo de Record) com
colunas na correspondentes as colunas configuradas para cada um dos Records.
Important: Any and all managonent in this database and/or tables is the customer's responsibility, the Syston only feeds the previously existing tables. If they do not exist, an error will be returned when generating the file. More details in iton 5.2.
-
Only the fields available according to each network are present.
-
In case there is no content for the field, for files saved to disk, there will be the
separator (";"), making the number of fields of each "Fixed" Record independent of the
network.
In the case of output to database, the field will be sent as “blank”. -
In the case of Non-TEF transactions, the NSU Sitef field will contain the Receipt Number.
-
If the user selects the date type as "Sale Date", only the Sale Details data Record (in addition to Header and Trailer) will be filled. This change has occurred so that the created file is immutable regardless of the present date.
In the case of "Credit Date", the other fields will be filled, they are: Credit Details,
Anticipation Batch, Anticipated Transactions and Adjustments, in addition to the Header and Trailer; -
In the case of output to database, neither Header nor Trailer will be generated, only
Details. -
The ordering, all ascending, of the Records for the Sale Details field will be:
- Sale Date
- Idt Rede
- Codlojasitef
- TipoProduto
- NSU SiTef
- Installment Number
- The ordering, all ascending, of the Records for the Credit Details field will be:
- Credit Date
- Idt Rede
- Codlojasitef
- TipoProduto
- NSU SiTef
- Installment Number
- The ordering, all ascending, of the Records for the Settings field will be:
- Adjustment Date
- Idt Rede
- Codlojasitef
- The ordering, all ascending, of the Records for the Anticipation Batch field will be:
- Anticipation Credit Date
- Idt Rede
- Codlojasitef
- Summary Number
- Installment
- The ordering, all ascending, of the Records for the Anticipated Transactions field will be:
- Sale Date
- Idt Rede
- Codlojasitef
- TipoProduto
- NSU SiTef
-
The default filename format for saving to disk will be:
-
Detailed file: “Det<Nome_Rede><Data_Atual>.csv”
-
Where:
- <Nome_Rede> Network Name, or “miscellaneous” when two or more authorizers are selected.
- <Data_Atual> no formato YYMMDD.
-
-
The output to database requires the creation of a table for each type of Detail Record.
3. File Structure
Saved to disk:
0 – Header
1 – Sale Details*
.
.
10 – Credit Details*
.
.
2 – Adjustments
.
.
100 – Anticipation Batch
.
.
200 – Anticipated Transactions
.
.
9 - Trailer
*For transactions in installments, one (1) record of this type will be generated per installment.
Saved in a database, they need 5 tables "Sales", "Credit", "Adjustments", "Anticipation Batch" and "Anticipated Transaction”:
1 – Sale Details*
.
.
10 – Credit Details*
.
.
2 – Adjustments
.
.
100 – Anticipation Batch
.
.
200 – Anticipated Transactions
.
.
*For transactions in installments, one (1) Record of this type will be generated per installment.
4. Record Format
Record 0 – Header
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
H01 - Record Type | 1 | 1 | ‘0’ |
H02 - File creation date | 8 | 8 | YYYYMMDD |
H03 - File creation time | 6 | 6 | HHMMSS |
H04 - Period - Start Date | 8 | 8 | YYYYMMDD |
H05 - Period - End Date | 8 | 8 | YYYYMMDD |
H06 - Version do Layout | 5 | 5 | ‘V3.2’ |
H07 - Network Identifier Code | 1 | 3 | ‘00’ – More than one selected Network See Table I |
H08 - File sequential number | 14 | 14 | |
H09 - Sequential number of record in file | 6 | 6 |
Record 1 - Sale Details
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
V01 - Record Type | 1 | 1 | ‘1’ |
V02 - Transaction Identifier | 1 | 30 | Custommer code |
V03 - Company Code | 1 | 15 | ‘’ |
V04 - Sale Date | 8 | 8 | YYYYMMDD |
V05 - Summary Number | 1 | 10 | ‘’ |
V06 - Receipt Number | 1 | 12 | ‘’ |
V07 - SiTef's NSU | 1 | 12 | * |
V08 - Credit Card Number | 1 | 19 | ‘’ |
V09 - Gross value | 3 | 16 | No cent separator Gross value of the installment, if divided into installments |
V10 - Total Installments | 2 | 2 | For cash transactions = “00” |
V11 - Net Value | 1 | 16 | No cent separator installment value, if paid in installments |
V12 - Credit Value | 8 | 8 | YYYYMMDD |
V13 - Installment Value | 2 | 2 | Installment Value |
V14 - Product Type | 1 | 1 | ‘C’ - credit ‘D’ – debit ‘V’ – voucher ‘S’ – withdraw |
V15 - Capture | 1 | 1 | ‘0’, ‘2’, ‘3’ – SiTef ‘1’, ‘4’ , ‘5’ – Others |
V16 - network identifier code | 1 | 3 | See Table I |
V17 - Bank Number | 1 | 6 | ‘’ |
V18 - bank branch Number | 1 | 6 | ‘’ |
V19 - Checkin Account Number | 1 | 15 | ‘’ |
V20 - Commission Amount | 3 | 16 | No cent separator |
V21 - Service Fee Value | 3 | 5 | No cent separator Eg: 199 = 1,99 % |
V22 - CodLojaSiTef | 8 | 8 | |
V23 - Authorization Code | 0 | 12 | ** |
V24 - Invoice | 0 | 20 | Invoice |
V25 - Credit Card Company Code | 4 | 4 | See Table II |
V26 – Sitef Sale Date | 1 | 8 | YYYYMMDD if it doesn't exist ‘’ |
V27 – Sitef Sale Time | 1 | 6 | HHMMSS if it doesn't exist ‘’ |
V28 - file record sequence | 6 | 6 |
* For NON-TEF transactions, this field is filled in with the receipt Number information (V06).
** In the case of Redecard Débito, Goodcard and Tecban, this data is not available in electronic statonents.
Record 10 - Credit Details
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
C01 - Record Type | 2 | 2 | ‘10’ |
C02 - Transaction Identifie | 1 | 30 | Custommer Code |
C03 - Company Code | 1 | 15 | ‘’ |
C04 - Sale Date | 8 | 8 | YYYYMMDD |
C05 - Summary Number | 1 | 10 | ‘’ |
C06 - Receipt Number | 1 | 12 | ‘’ |
C07 - SiTef's NSU | 1 | 12 | * |
C08 - Credit Card Number | 1 | 19 | ‘’ |
C09 - Gross Value | 3 | 16 | No cent separator. Gross value of the installment, if divided into installments. |
C10 - Total Installments | 2 | 2 | For cash transactions = ‘00’ |
C11 - Net value | 1 | 16 | No cent separator Installment Value, if divided into installments. If the value is lower than the value in the column "C12 - Original Net Value", it means that some event has changed the value to be paid. Value=“0”, means total cancellation of the amount to be paid. |
C12 - Original Net Value | 0 | 16 | No cent separator Value of the original installment, if divided into installments. Mainly used to indicate a cancellation by Redecard. onpty if there is no unscheduling. |
C13 - Credit Date | 8 | 8 | YYYYMMDD |
C14 - Original Credit Date | 0 | 8 | YYYYMMDD Mainly used to indicate an acceleration of Visa onpty in case there is no acceleration. |
C15 - Installment Number | 2 | 2 | Installment Number |
C16 - Product Type | 1 | 1 | 'C' - credit 'D' - debit 'V' - voucher 'S' - withdraw |
C17 – Capture | 1 | 1 | ‘0’, ‘2’, ‘3’ – SiTef ‘1’, ‘4’, ‘5’ – Others |
C18 - network identifier code | 1 | 3 | See Table I |
C19 - Bank Number | 1 | 6 | ‘’ |
C20 - bank branch Number | 1 | 6 | ‘’ |
C21 - Checking Account Number | 1 | 15 | ‘’ |
C22 - Comission Value | 3 | 16 | No cent separator |
C23 - Service Fee Value | 3 | 5 | No cent separator Eg: 199 = 1,99 % |
C24 - CodLojaSiTef | 8 | 8 | |
C25 - Authorization Code | 0 | 12 | ** |
C26 - Invoice | 0 | 20 | Invoice |
C27 - Credit Card Company Code | 4 | 4 | See Table II |
C28 – Sale Date Sitef | 1 | 8 | YYYYMMDD if it doesn't exist ‘’ |
C29 – Sale Time Sitef | 1 | 6 | HHMMSS if it doesn't exist ‘’ |
C30 - file record sequence | 6 | 6 |
* For NON-TEF transactions, this field is filled in with the Bill Number information (C06).
** In the case of Redecard Debit, Goodcard and Tecban, this data is not available in electronic statonents.
Record 2 – Adjustments
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
A01 - Record Type | 1 | 1 | ‘2’ |
A02 - Company Code | 1 | 15 | ‘’ |
A03 - Adjustment Date | 8 | 8 | YYYYMMDD |
A04 - Adjustment Value | 3 | 16 | No cent separator |
A05 - Net Adjustment Value | 3 | 16 | No cent separator |
A06 - Summary Number | 1 | 10 | ‘’ |
A07 - Credit Card Number | 1 | 19 | ‘’ |
A08 - Receipt Number | 1 | 12 | ‘’ |
A09 - Sale Date | 8 | 8 | YYYYMMDD |
A10 - Adjustment Reason Code | 1 | 15 | ‘’ |
A11 - Adjustment Reason Description | 1 | 64 | ‘’ |
A12 - Reference number | 1 | 15 | Exclusive Redecard (POS) |
A13 - Original Summary Number | 1 | 10 | Exclusive Redecard |
A14 - Reference Month | 6 | 6 | Exclusive Redecard (POS) |
A15 - Network identifier code | 1 | 3 | See Table I |
A16 - Bank Number | 6 | 6 | |
A17 - bank branch Number | 6 | 6 | |
A18 - Checking Account Number | 1 | 15 | ‘’ |
A19 - Comission Value | 3 | 16 | No cent separator |
A20 - Service Fee Value | 3 | 16 | No cent separator |
A21 - Codlojasitef | 8 | 8 | |
A22 - record sequence in the file | 6 | 6 |
Record 100 – Anticipation Batch
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
L01 - Record Type | 3 | 3 | ‘100’ |
L02 - Company Code | 1 | 15 | ‘’ |
L03 - CodLojaSiTef | 8 | 8 | |
L04 - Summary Number | 1 | 10 | ‘’ |
L05 - Anticipated Credit Date | 8 | 8 | YYYYMMDD |
L06 - Amount paid | 3 | 16 | No cent separator. Net Value paid. |
L07 - Network identifier code | 1 | 3 | See TableI |
L08 - Installment | 2 | 2 | For batch with cash transactions = ‘00’ |
L09 - Original Credit Date | 8 | 8 | YYYYMMDD |
L10 - Original Net Value | 3 | 16 | No cent separator. Net value before anticipation. |
L11 – Gross Value | 3 | 16 | No cent separator. Gross value before anticipation |
L12 - Bank Number | 1 | 6 | ‘’ |
L13 - bank branch Number | 1 | 6 | ‘’ |
L14 - Checking Account Number | 1 | 15 | ‘’ |
L15 - record sequence in the file | 6 | 6 |
Record 200 – Anticipated Transactions
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
TA01 - Record Type | 3 | 3 | ‘200’ |
TA02 - Transaction Identifier | 1 | 30 | Custommer Code |
TA03 - Company Code | 1 | 15 | ‘’ |
TA04 - Sale Date | 8 | 8 | YYYYMMDD |
TA05 - Summary Number | 1 | 10 | ‘’ |
TA06 - Receipt Number | 1 | 12 | ‘’ |
TA07 - SiTef's NSU | 1 | 12 | * |
TA08 - Credit Card Number | 1 | 19 | ‘’ |
TA09 - Gross Value | 3 | 16 | No cent separator Transaction Gross Value |
TA10 - Total Installments | 2 | 2 | For cash transactions = “00” |
TA11 - Product Type | 1 | 1 | ‘C’ - credit ‘D’ – debit ‘V’ – voucher ‘S’ – withdraw |
TA12 - Capture | 1 | 1 | ‘0’, ‘2’, ‘3’ – SiTef ‘1’, ‘4’ , ‘5’ – Outros |
TA13 - Network identifier code | 1 | 3 | See Table I |
TA14 - CodLojaSiTef | 8 | 8 | |
TA15 - Authorization Code | 0 | 12 | ** |
TA16 - Invoice | 0 | 20 | Invoice |
TA17 - Credit Card Company Code | 4 | 4 | See Table II |
TA18 - Sale Date Sitef | 1 | 8 | YYYYMMDD if it doesn't exist ‘’ |
TA19 - Sale Time Sitef | 1 | 6 | HHMMSS if it doesn't exist ‘’ |
TA20 - record sequence in the file | 6 | 6 |
* For NON-TEF transactions, this field is filled with the information on the Receipt Number (TA06).
** In the case of Redecard Debit, Goodcard and Tecban, this data is not available in electronic statonents.
Record 9 – Trailer
Field Name | Minimum size | Maximum size | Informations |
---|---|---|---|
T01 - Record Type | 1 | 1 | ‘9’ |
T02 - record sequence in the file | 6 | 6 |
5. Ronark
- Limitations
- Due to limitations of the data sent by the administrators, the Amex, Visa and
Redecard have their projected installments.
- Due to limitations of the data sent by the administrators, the Amex, Visa and
- Tonplate for saving to database
- 1st step is to create 3 tables for each Record, Sale, Credit and Adjustments, with their respective
columns. - Examples for Oracle:
- 1st step is to create 3 tables for each Record, Sale, Credit and Adjustments, with their respective
CREATE TABLE tab_venda
(
tipo_Record VARCHAR2 (01) NULL,
id_cliente VARCHAR2 (30) NULL,
cod_estab VARCHAR2 (15) NULL,
data_venda VARCHAR2 (08) NULL,
num_resumo VARCHAR2 (10) NULL,
num_comprovante VARCHAR2 (12) NULL,
nsu_sitef VARCHAR2 (12) NULL,
num_cartao VARCHAR2 (19) NULL,
valor_bruto VARCHAR2 (16) NULL,
total_parcelas VARCHAR2 (02) NULL,
valor_liquido VARCHAR2 (16) NULL,
data_credito VARCHAR2 (08) NULL,
num_parcelas VARCHAR2 (02) NULL,
tipo_produto VARCHAR2 (01) NULL,
captura VARCHAR2 (01) NULL,
idt_rede VARCHAR2 (03) NULL,
cod_banco VARCHAR2 (06) NULL,
cod_agencia VARCHAR2 (06) NULL,
num_conta VARCHAR2 (15) NULL,
valor_comissao VARCHAR2 (16) NULL,
taxa_servico VARCHAR2 (05) NULL,
codigo_loja VARCHAR2 (08) NULL,
codigo_autoriz VARCHAR2 (12) NULL,
cupom_fiscal VARCHAR2 (20) NULL,
codigo_bandeira VARCHAR2 (04) NULL,
data_venda_sitef VARCHAR2 (08) NULL,
hora_venda_sitef VARCHAR2 (06) NULL,
seq VARCHAR2 (06) NULL
);
CREATE TABLE tab_credito
(
tipo_Record VARCHAR2 (02) NULL,
id_cliente VARCHAR2 (30) NULL,
cod_estab VARCHAR2 (15) NULL,
data_venda VARCHAR2 (08) NULL,
num_resumo VARCHAR2 (10) NULL,
num_comprovante VARCHAR2 (12) NULL,
nsu_sitef VARCHAR2 (12) NULL,
num_cartao VARCHAR2 (19) NULL,
valor_bruto VARCHAR2 (16) NULL,
total_parcelas VARCHAR2 (02) NULL,
valor_liquido VARCHAR2 (16) NULL,
valor_liquido_orig VARCHAR2 (16) NULL,
data_credito VARCHAR2 (08) NULL,
data_credito_orig VARCHAR2 (08) NULL,
num_parcelas VARCHAR2 (02) NULL,
tipo_produto VARCHAR2 (01) NULL,
captura VARCHAR2 (01) NULL,
idt_rede VARCHAR2 (03) NULL,
cod_banco VARCHAR2 (06) NULL,
cod_agencia VARCHAR2 (06) NULL,
num_conta VARCHAR2 (15) NULL,
valor_comissao VARCHAR2 (16) NULL,
taxa_servico VARCHAR2 (05) NULL,
codigo_loja VARCHAR2 (08) NULL,
codigo_autoriz VARCHAR2 (12) NULL,
cupom_fiscal VARCHAR2 (20) NULL,
codigo_bandeira VARCHAR2 (04) NULL,
data_venda_sitef VARCHAR2 (08) NULL,
hora_venda_sitef VARCHAR2 (06) NULL,
seq VARCHAR2 (06) NULL
);
CREATE TABLE tab_ajuste
(
tipo_Record VARCHAR2 (01) NULL,
cod_estab VARCHAR2 (15) NULL,
data_ajuste VARCHAR2 (08) NULL,
valor_ajuste VARCHAR2 (16) NULL,
valor_liquido_ajuste VARCHAR2 (16) NULL,
num_resumo VARCHAR2 (10) NULL,
num_cartao VARCHAR2 (19) NULL,
num_comprovante VARCHAR2 (12) NULL,
data_venda VARCHAR2 (08) NULL,
cod_ajuste VARCHAR2 (15) NULL,
descrição_ajuste VARCHAR2 (64) NULL,
num_referencia VARCHAR2 (15) NULL,
num_resumo_orig VARCHAR2 (10) NULL,
mês_referencia VARCHAR2 (06) NULL,
idt_rede VARCHAR2 (03) NULL,
cod_banco VARCHAR2 (06) NULL,
cod_agencia VARCHAR2 (06) NULL,
num_conta VARCHAR2 (15) NULL,
valor_comissao VARCHAR2 (16) NULL,
taxa_servico VARCHAR2 (05) NULL,
codigo_loja VARCHAR2 (08) NULL,
seq VARCHAR2 (06) NULL
);
CREATE TABLE tab_lote_antec
(
tipo_Record VARCHAR2 (03) NULL,
cod_estab VARCHAR2 (15) NULL,
codigo_loja VARCHAR2 (08) NULL,
num_resumo VARCHAR2 (10) NULL,
data_credito_antec VARCHAR2 (08) NULL,
valor_pago VARCHAR2 (16) NULL,
idt_rede VARCHAR2 (03) NULL,
num_parcela VARCHAR2 (02) NULL,
data_credito_orig VARCHAR2 (08) NULL,
valor_liquido_orig VARCHAR2 (16) NULL,
valor_bruto VARCHAR2 (16) NULL,
cod_banco VARCHAR2 (06) NULL,
cod_agencia VARCHAR2 (06) NULL,
num_conta VARCHAR2 (15) NULL,
seq VARCHAR2 (06) NULL
);
CREATE TABLE tab_trn_antec
(
tipo_Record VARCHAR2 (03) NULL,
id_cliente VARCHAR2 (30) NULL,
cod_estab VARCHAR2 (15) NULL,
data_venda VARCHAR2 (08) NULL,
num_resumo VARCHAR2 (10) NULL,
num_comprovante VARCHAR2 (12) NULL,
nsu_sitef VARCHAR2 (12) NULL,
num_cartao VARCHAR2 (19) NULL,
valor_bruto VARCHAR2 (16) NULL,
total_parcelas VARCHAR2 (02) NULL,
tipo_produto VARCHAR2 (01) NULL,
captura VARCHAR2 (01) NULL,
idt_rede VARCHAR2 (03) NULL,
codigo_loja VARCHAR2 (08) NULL,
codigo_autoriz VARCHAR2 (12) NULL,
cupom_fiscal VARCHAR2 (20) NULL,
codigo_bandeira VARCHAR2 (04) NULL,
data_venda_sitef VARCHAR2 (08) NULL,
hora_venda_sitef VARCHAR2 (06) NULL,
seq VARCHAR2 (06) NULL
);
6. Code Table
7. Version Changes
-
Version V3.3 on 12/11/2012 – Responsible : Leonardo.
- Dynamic inclusion in the external base.
-
Version V3.2 on 05/24/2012 – Responsible : Adriano.
- Inclusion of the "Gross Value" column in the record 100
-
Version V3.1 on 05/16/2012 – Responsible : Adriano.
- Inclusion of comment in Record 10 column C11 - Net Value
- Inclusion of new network codes
-
Version V3.1 on 12/08/2011 – Responsible : MKK.
- Inclusion of Anticipation Batch and Anticipated Transactions Records
-
Version V3.0 on 09/27/2011 – Responsible : Adriano.
- Inclusion of the sale date sitef and sale time sitef columns in Records 1 and 10
-
Version V3.0 on 08/29/2011 – Responsible : Adriano.
- Templates for saving to database
-
Version V3.0 on 05/27/2011 – Responsible : Adriano.
- Correction in the maximum sizes of fields V07 Record 1 and C07 Record 10 from 9 to 12 characters
-
Version V3.0 on 03/10/2011 – Responsible : Adriano.
- Inclusion of a new column: credit card banner cod, in Type 1 and 10 Records
- Possibility of saving to database.
-
Version V2.0 on 03/04/2011 – Responsible : Adriano.
- Inclusion of new Network codes
-
Version V2.0 on 04/09/2010 – Responsible : Adriano.
- Inclusion of Capture =5 as Non-TEF
-
Version V2.0 on 01/27/2010 – Responsible : Adriano.
- Inclusion of the comment in columns V07 and C
-
Version V2.0 on 09/01/2009 – Responsible : MKK.
- Inclusion of the product type = "S"(Withdraw)
-
Version V2.0 on 01/21/2009 – Responsible : MKK.
- Creation of Credit Date and Sale Date Record
- Clearing the Negative Values Registry
- Inclusion of the withdraw product type ('S') for Redecard and Visanet
-
Version V1.9 on 11/06/2008 – Responsible : MKK. ( Return file version: 1.6.3 - 11/06/2008)
- Modification in the Redecard Installment form
-
Version V1.8 on 11/06/2008 – Responsible : Adriano. ( Return file version: 1.6.1-11/06/2008)
- Inclusion of the Invoice Code
-
Version V1.7 on 10/09/2008 – Responsible : MKK.
- Inclusion of the Authorization Code
-
Version V1.6 on 01/31/2008 – Responsible : Adriano Galati.
- Changing the Network Identifier Code column with new codes
-
Version V1.5 on 04/20/2007 – Responsible : Adriano Galati.
- Product type inclusion “V” - voucher
- Inclusion of captures "2", "3" - TEF and "4" NON-TEF on 06/08/2007 – Adriano
- Changing the delimiter to ";" (RMISERVER v. 1.5.3 06/11/2007)
-
Version V1.4 on 08/01/2006 – Responsible : Adriano Galati.
- Inclusion of the identRede column in the Header;
- Inclusion of a new type of Record 3 – Negative sales;
- Inclusion of Bank, Bank Branch, Checking Account Number, Codlojasitef columns in the Detailing and Adjustments;
-
Version V1.3 on 07/05/ 2005 – Responsible : Adriano Galati.
-
Version V1.2 on 05/04/2004 – Responsible : Marcus Adolfo Lucio
-
Version para V1.1;
- Inclusion of Record type '2' - Adjustment Record;
-
Version V1 on 01/05/2003 - Resp: Alexandro Alves Moreira
Updated 15 days ago