@@ -37,7 +37,7 @@ module.exports = class RegisterScopeThirteen extends AfipWebService {
37
37
* @throws Exception if exists an error in response
38
38
*
39
39
* @return object|null if taxpayer does not exists, return null,
40
- * if it exists, returns full response {@see
40
+ * if it exists, returns idPersona property of response {@see
41
41
* WS Specification item 3.2.2}
42
42
**/
43
43
async getTaxpayerDetails ( identifier ) {
@@ -56,6 +56,30 @@ module.exports = class RegisterScopeThirteen extends AfipWebService {
56
56
. catch ( err => { if ( err . message . indexOf ( 'No existe' ) !== - 1 ) { return null } else { throw err } } ) ;
57
57
}
58
58
59
+ /**
60
+ * Asks to web service for tax id by document number
61
+ *
62
+ * @throws Exception if exists an error in response
63
+ *
64
+ * @return object|null if taxpayer does not exists, return null,
65
+ * if it exists, returns idPersona property of response
66
+ **/
67
+ async getTaxIDByDocument ( documentNumber ) {
68
+ // Get token and sign
69
+ let { token, sign } = await this . afip . GetServiceTA ( 'ws_sr_padron_a13' ) ;
70
+
71
+ // Prepare SOAP params
72
+ let params = {
73
+ token, sign,
74
+ cuitRepresentada : this . afip . CUIT ,
75
+ documento : documentNumber
76
+ } ;
77
+
78
+ return this . executeRequest ( 'getIdPersonaListByDocumento' , params )
79
+ . then ( res => res . idPersona )
80
+ . catch ( err => { if ( err . message . indexOf ( 'No existe' ) !== - 1 ) { return null } else { throw err } } ) ;
81
+ }
82
+
59
83
/**
60
84
* Send request to AFIP servers
61
85
*
@@ -68,7 +92,10 @@ module.exports = class RegisterScopeThirteen extends AfipWebService {
68
92
{
69
93
let results = await super . executeRequest ( operation , params ) ;
70
94
71
- return results [ operation === 'getPersona' ? 'personaReturn' : 'return' ] ;
95
+ return results [
96
+ operation === 'getPersona' ? 'personaReturn' :
97
+ ( operation === 'getIdPersonaListByDocumento' ? 'idPersonaListReturn' : 'return' )
98
+ ] ;
72
99
}
73
100
}
74
101
0 commit comments