The base URI for production requests is https://api.arquivei.com.br
You can test our API in a sandbox environment, in this case the base URI is https://sandbox-api.arquivei.com.br
Operations on NFe
GET
/v1/nfe/received
This endpoint is responsible for fetching XMLs of NFes using the custom filter: (OR (= processed false)
(_not_exists processed)). Since our API is generic, this custom filter indicates that you want to fetch only the XMLs that were processed as false or the ones that were not processed at all. The call above is url encoded, and thas how it must be made.
Example:
GET /nfe/received?filter=(= processed false)&access_key[]=44charkey&limit=50
query
The maximum amount of XMLs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key. Example using this filter = v1/nfe/received?access_key[]=44charKey
query
Filter by a list of cnpjs. Example using this filter = v1/nfe/received?cnpj[]=34174654000153
query
Filter by presence or value of custom info using Arquivei's filter language
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/nfe/received?created_at[from]=2019-09-12 15:30:25&created_at[to]=2019-09-15 15:30:25. Can use date and time or just date.
query
Filter by created_at dates. This field is required when field created_at[from] is used. Example using = /v1/nfe/received?created_at[from]=2019-09-12 15:30:25&created_at[to]=now. Different from field created_at[from] this field accepts the value now
. can use date and time or just date.
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/nfe/received/{property}
This endpoint is responsible for update a custom property for a received NFe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/nfe/emitted
This endpoint is responsible for fetching XMLs of NFes using the custom filter: (OR (= processed false)
(_not_exists processed)). Since our API is generic, this custom filter indicates that you want to fetch only the XMLs that were processed as false or the ones that were not processed at all. The call above is url encoded, and thas how it must be made.
Example:
GET /nfe/emitted?filter=(= processed false)&access_key[]=44charkey&limit=50
query
The maximum amount of XMLs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key. Example using this filter = v1/nfe/emitted?access_key[]=44charKey
query
Filter by presence or value of custom info using Arquivei's filter language
query
Filter by a list of companies cnpj.
Example: v1/nfe/emitted?cnpj[]=11223344556677
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/nfe/emitted?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/nfe/emitted?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/nfe/emitted/{property}
This endpoint is responsible for update a custom property for a emitted NFe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/nfe/transporter
This endpoint is responsible for fetching XMLs of transporter NFes using the custom filter: (OR (= processed false)
(_not_exists processed)). Since our API is generic, this custom filter indicates that you want to fetch only the XMLs that were processed as false or the ones that were not processed at all. The call above is url encoded, and thas how it must be made.
Example:
GET /nfe/transporter?filter=(= processed false)&access_key[]=44charkey&limit=50
query
The maximum amount of XMLs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key. Example using this filter = v1/nfe/transporter?access_key[]=44charKey
query
Filter by a list of cnpjs. Example using this filter = v1/nfe/transporter?cnpj[]=34174654000153
query
Filter by presence or value of custom info using Arquivei's filter language
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/nfe/transporter?created_at[from]=2019-09-12 15:30:25&created_at[to]=2019-09-15 15:30:25. Can use date and time or just date.
query
Filter by created_at dates. This field is required when field created_at[from] is used. Example using = /v1/nfe/transporter?created_at[from]=2019-09-12 15:30:25&created_at[to]=now. Different from field created_at[from] this field accepts the value now
. can use date and time or just date.
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/nfe/transporter/{property}
This endpoint is responsible for update a custom property for a transporter NFe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/nfe/authorized
This endpoint is responsible for fetching XMLs of NFes using the custom filter: (OR (= processed false)
(_not_exists processed)). Since our API is generic, this custom filter indicates that you want to fetch only the XMLs that were processed as false or the ones that were not processed at all. The call above is url encoded, and thas how it must be made.
Example:
GET /nfe/authorized?filter=(= processed false)&access_key[]=44charkey&limit=50
query
The maximum amount of XMLs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key. Example using this filter = v1/nfe/authorized?access_key[]=44charKey
query
Filter by a list of cnpjs. Example using this filter = v1/nfe/authorized?cnpj[]=34174654000153
query
Filter by presence or value of custom info using Arquivei's filter language
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/nfe/authorized?created_at[from]=2019-09-12 15:30:25&created_at[to]=2019-09-15 15:30:25. Can use date and time or just date.
query
Filter by created_at dates. This field is required when field created_at[from] is used. Example using = /v1/nfe/authorized?created_at[from]=2019-09-12 15:30:25&created_at[to]=now. Different from field created_at[from] this field accepts the value now
. can use date and time or just date.
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/nfe/authorized/{property}
This endpoint is responsible for update a custom property for a authorized NFe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
POST
/v1/nfe/upload
This endpoint is responsible for upload a bulk NFes NFe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
body
Invoices should contain the base64 NFes xmls
{
"invoices": [
{
"xml": "string"
}
],
"callback_url": "string"
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful upload
{
"status": {
"code": 0,
"message": "string"
},
"request_id": "string"
}
GET
/v1/nfe/upload/status
This endpoint is responsible for fetch the status of xmls sent by request_id
Example:
GET /nfe/upload/status?request_id=string
query
The request_id received on upload NFes
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"request": {
"request_id": "string",
"status": "string"
},
"invoices": [
{
"xml": "string",
"status": "string"
}
]
}
}
GET
/v1/nfe/manifest
This endpoint is responsible for get manifestation status of a NFe by your access key.
required
query
Filter by a list of access_key. Example: v1/nfe/manifest?access_key[]=44charKey
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"code": 0
}
]
}
POST
/v1/nfe/manifest
This endpoint is responsible for manifest a NFe by your access key.
Manifest's code list:
More info about manifestation consult the official doc in: nfe.fazenda.gov.br
required
body
access_key
should be a 44char string with your NFe access key value.
code
is the 6char string containing the manifestation to be done (see the list above for available codes).
justification
is the string with the justification for that manifest. Only needed when the manifestation code is '210240'.
{
"manifests": [
{
"access_key": "string",
"code": "string",
"justification": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful manifestation request
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"request_id": "string"
}
}
GET
/v1/nfe/manifest/status
This endpoint is responsible for get the status of the manifestation request of a NFe by your access key.
query
Filter by a list of access_key. Example: v1/nfe/manifest?access_key[]=44charKey
query
Filter by a list of request ids. Example: v1/nfe/manifest/status?request_id[]=64charId
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful manifestation status fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"code": 0,
"status": {
"code": 0,
"message": 0
}
}
]
}
GET
/v2/nfe/manifest
This endpoint is responsible for get manifestation status of a NFe by your access key.
required
query
Filter by a list of access_key. Example: v2/nfe/manifest?access_key[]=44charKey
query
Filter by a list of origin. Example: v2/nfe/manifest?access_key[]=44charKey&origin=api
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful manifestation fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"code": "string"
}
]
}
GET
/v1/nfe/events
This endpoint is responsible for get event xmls of a NFe by your access key and owner cnpj.
required
query
The access_key value of NFe. Example: v1/nfe/events?access_key=44charKey
required
query
The cnpj value owner of NFe. Example: v1/nfe/events?cnpj=14charKey
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"type": "string",
"xml": "string"
}
]
}
GET
/v1/nfe/danfe
This endpoint is responsible for get a base64 encoded PDF Danfe.
required
query
The access_key value of NFe. Example: /v1/nfe/danfe/?access_key=44charKey
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"access_key": "string",
"encoded_pdf": "string"
}
}
GET
/v2/nfe/events
This endpoint is responsible for get a base64 encoded XML NFe Event.
required
query
The access_key value of NFe. Example: /v2/nfe/events/?access_key=44charKey
query
Array of event types you want to filter. Each event type is a 6 digits string, example: /v2/nfe/events/?access_key=44charKey&type[]=110110&type[]=110111
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"type": "string",
"xml": "string"
}
]
}
Operations on NFSe
GET
/v1/nfse/received
This endpoint is responsible for fetching XMLs of NFses using the custom filter: (OR (= processed false)
(_not_exists processed)). Since our API is generic, this custom filter indicates that you want to fetch only the XMLs that were processed as false or the ones that were not processed at all. The call above is url encoded, and thas how it must be made.
Example:
GET v1/nfse/received?filter=(= processed false)&id[]=3&limit=50
query
The maximum amount of XMLs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of ids.Example using this filter = v1/nfse/received?id[]=1
query
Filter by presence or value of custom info using Arquivei's filter language
query
This flag indicates if the XML's format should be the Abrasf or the original
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"id": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/nfse/received/{property}
This endpoint is responsible for update a custom property for a received NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The id and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"id": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/nfse/received/manual
This endpoint is responsible for fetch JSONs of NFses:
Example:
GET v1/nfse/received/manual?id[]=3&limit=50
query
The maximum amount of JSONs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of ids.Example using this filter = v1/nfse/received/manual?id[]=1
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"id": 0,
"json": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
POST
/v1/nfse/received/manual
This endpoint is responsible for add extra info of a received NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
body
The data of NFSe that will be added in the root of the request body
{
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"Aliquota": "string",
"CodigoMunicipio": "string",
"Discriminacao": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful add
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": 0,
"json": "string",
"cnpj": "string"
}
}
PUT
/v1/nfse/received/manual/{id}
This endpoint is responsible for update extra info of a received NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The uploaded received manual NFSe id (hash returned by upload endpoint)
required
body
The data of NFSe that will be updated in the root of the request body
{
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"Aliquota": "string",
"CodigoMunicipio": "string",
"Discriminacao": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": "string"
}
}
POST
/v2/nfse/received/manual
This endpoint is responsible for add extra info of a received NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made. This endpoint adds 3 required parameters in comparison to V1
. They are: Data.Servico.IssRetido
, Data.Valores.BaseCalculo
and Data.Valores.ValorLiquidoNfse
required
body
The data of NFSe that will be added in the root of the request body
{
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"IssRetido": "1",
"Aliquota": 0,
"CodigoMunicipio": "string",
"Discriminacao": "string",
"DiscriminacaoOutros": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
},
"Valores": {
"BaseCalculo": "5.00",
"ValorLiquidoNfse": "5.00"
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful add
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": 0,
"json": "string",
"cnpj": "string"
}
}
PUT
/v2/nfse/received/manual/{id}
This endpoint is responsible for update extra info of a received NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made. This endpoint adds 3 required parameters in comparison to V1
. They are: Data.Servico.IssRetido
, Data.Valores.BaseCalculo
and Data.Valores.ValorLiquidoNfse
required
path
The uploaded received manual NFSe id (hash returned by upload endpoint)
required
body
The data of NFSe that will be updated in the root of the request body
{
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"IssRetido": "1",
"Aliquota": 0,
"CodigoMunicipio": "string",
"Discriminacao": "string",
"DiscriminacaoOutros": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
},
"Valores": {
"BaseCalculo": "5.00",
"ValorLiquidoNfse": "5.00"
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": "string"
}
}
GET
/v1/nfse/emitted
This endpoint is responsible for fetching XMLs of NFses using the custom filter: (OR (= processed false)
(_not_exists processed)). Since our API is generic, this custom filter indicates that you want to fetch only the XMLs that were processed as false or the ones that were not processed at all. The call above is url encoded, and thas how it must be made.
Example:
GET v1/nfse/emitted?filter=( = processed false)&id[]=3&limit=50
query
The maximum amount of XMLs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of ids.Example using this filter = v1/nfse/emitted?id[]=1
query
Filter by presence or value of custom info using Arquivei's filter language
query
Filter by a list of cnpjs.Example using this filter = v1/nfse/emitted?cnpj[]=11111111111111
query
This flag indicates if the XML's format should be the Abrasf or the original
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"id": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
GET
/v1/nfse/emitted/manual
This endpoint is responsible for fetch JSONs of NFses:
Example:
GET /nfse/emitted/manual?id[]=3&limit=50
query
The maximum amount of JSONs that will be returned
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of ids.Example using this filter = v1/nfse/emitted/manual?id[]=1
query
Filter by a list of cnpjs.Example using this filter = v1/nfse/emitted/manual?cnpj[]=11111111111111
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"id": 0,
"json": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
POST
/v1/nfse/emitted/manual
This endpoint is responsible for add extra info of a emitted NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
body
The data of NFSe that will be added in the root of the request body
{
"Status": "string",
"Data": {
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"Aliquota": "string",
"CodigoMunicipio": "string",
"Discriminacao": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
}
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful add
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": 0,
"json": "string",
"cnpj": "string"
}
}
PUT
/v1/nfse/emitted/manual/{id}
This endpoint is responsible for update extra info of a emitted NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The uploaded emitted manual NFSe id (hash returned by upload endpoint)
required
body
The data of NFSe that will be updated in the root of the request body
{
"Status": "string",
"Data": {
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"Aliquota": "string",
"CodigoMunicipio": "string",
"Discriminacao": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
}
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": "string"
}
}
POST
/v2/nfse/emitted/manual
This endpoint is responsible for add extra info of a emitted NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made. This endpoint adds 3 required parameters in comparison to V1
. They are: Data.Servico.IssRetido
, Data.Valores.BaseCalculo
and Data.Valores.ValorLiquidoNfse
required
body
The data of NFSe that will be added in the root of the request body
{
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"IssRetido": "1",
"Aliquota": 0,
"CodigoMunicipio": "string",
"Discriminacao": "string",
"DiscriminacaoOutros": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
},
"Valores": {
"BaseCalculo": "5.00",
"ValorLiquidoNfse": "5.00"
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful add
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": 0,
"json": "string",
"cnpj": "string"
}
}
PUT
/v2/nfse/emited/manual/{id}
This endpoint is responsible for update extra info of a emitted NFSe: Since our API is generic. The call above is url encoded, and thas how it must be made. This endpoint adds 3 required parameters in comparison to V1
. They are: Data.Servico.IssRetido
, Data.Valores.BaseCalculo
and Data.Valores.ValorLiquidoNfse
required
path
The uploaded emitted manual NFSe id (hash returned by upload endpoint)
required
body
The data of NFSe that will be updated in the root of the request body
{
"Status": "string",
"Data": {
"Numero": "string",
"DataEmissao": "2022-05-22",
"OptanteSimplesNacional": "string",
"Rps": {
"Numero": "string"
},
"Prestador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Tomador": {
"Cnpj": "string",
"Cpf": "string",
"InscricaoMunicipal": "string",
"RazaoSocial": "string"
},
"Servico": {
"CodigoServico": "string",
"ValorServicos": "string",
"ValorPis": "string",
"ValorCofins": "string",
"ValorInss": "string",
"ValorIr": "string",
"ValorCsll": "string",
"OutrasRetencoes": "string",
"ValorIss": "string",
"ValorIssqn": "string",
"ValorTotalRecebido": "string",
"IssRetido": "1",
"Aliquota": 0,
"CodigoMunicipio": "string",
"Discriminacao": "string",
"DiscriminacaoOutros": {
"Pedido": {},
"PlacaDoCarro": "string",
"DataDeVencimento": "2022-05-22"
}
},
"Valores": {
"BaseCalculo": "5.00",
"ValorLiquidoNfse": "5.00"
}
}
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"id": "string"
}
}
GET
/v1/nfse/cities
Example:
GET /nfse/cities?city=SĆ£o Paulo
query
City name
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
[
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"geocode": 0,
"name": "string",
"state_name": "string",
"state_id": 0,
"region": "string",
"mesoregion_name": "string",
"mesoregion_id": 0,
"latitude": "string",
"longitude": "string"
}
]
}
]
Operations on CTe invoices.
GET
/v1/cte/taker
In this endpoint, you can download XMLs - with maximum of 50 xmls per request - of the CTe taker invoices.
You can filter using access key of the invoice, by using a cursor or using custom Arquivei's language filter if you already've marked the row with a property. To know more about properties see the cte/taker/property documentation.
You can choose too a limit between minimum of 0 and maximum of 50 using the limit parameter.
Example:
GET v1/cte/taker/?filter=(OR (NOT_EXISTS status) (= status 300))&limit=50&cursor=0
query
The maximum amount of XMLs that will be returned in the request.
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key.
Example: v1/cte/taker?access_key[]=44charKey
query
Filter by a list of companies cnpj.
Example: v1/cte/taker?cnpj[]=11223344556677
query
Filter by presence or value of custom info using Arquivei's filter language
Example: (OR (NOT_EXISTS status) (= status 300))
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/cte/taker?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/cte/taker?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/cte/taker/{property}
This endpoint is responsible for update a custom property for a taker CTe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/cte/not-taker
In this endpoint, you can download XMLs - with maximum of 50 xmls per request - of the CTe not taker invoices.
You can filter using access key of the invoice, by using a cursor or using custom Arquivei's language filter if you already've marked the row with a property. To know more about properties see the cte/not-taker/property documentation.
You can choose too a limit between minimum of 0 and maximum of 50 using the limit parameter.
Example:
GET v1/cte/not-taker/?filter=(OR (NOT_EXISTS status) (= status 300))&limit=50&cursor=0
query
The maximum amount of XMLs that will be returned in the request.
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key.
Example: v1/cte/not-taker?access_key[]=44charKey
query
Filter by presence or value of custom info using Arquivei's filter language
Example: (OR (NOT_EXISTS status) (= status 300))
query
Filter by a list of companies cnpj.
Example: v1/cte/not-taker?cnpj[]=11223344556677
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/cte/not-taker?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/cte/not-taker?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/cte/not-taker/{property}
This endpoint is responsible for update a custom property for a not taker CTe: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/cte/dacte
This endpoint is responsible for get a base64 encoded PDF Dacte.
required
query
The access_key value of CTe. Example: /v1/cte/dacte/?access_key=44charKey
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"access_key": "string",
"encoded_pdf": "string"
}
}
GET
/v1/cte/events
This endpoint is responsible for get a base64 encoded XML CTe Event.
required
query
The access_key value of CTe. Example: /v1/cte/events/?access_key=44charKey
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"type": "string",
"xml": "string"
}
]
}
GET
/v2/cte/events
This endpoint is responsible for get a base64 encoded XML CTe Event.
query
The CTe access key. Example: /v2/cte/events?access_key[]=11223344556677889900112233445566778899001122
query
Array of event types you want to filter. Each event type is a 6 digits string, example: /v2/cte/events?type[]=110110&type[]=110111
query
Limit how many events the call will return. The maximum and default value is 50. Example: /v2/cte/events?limit=50
query
The cursor position in which the search will start from. This value is received after a successfull request on the body of the response as next
.
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "11223344556677889900112233445566778899001122",
"type": "210210",
"xml": "SXNzbyBuw6NvIMOpIHVtIGV2ZW50byBkZSBORmUh"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
Operations on CTe-Os invoices.
GET
/v1/cte-os/taker
In this endpoint, you can download XMLs - with maximum of 50 xmls per request - of the CTe-Os taker invoices.
You can filter using access key of the invoice, by using a cursor or using custom Arquivei's language filter if you already've marked the row with a property. To know more about properties see the cte/not-taker/property documentation.
You can choose too a limit between minimum of 0 and maximum of 50 using the limit parameter.
Example:
GET v1/cte-os/taker/?filter=(OR (NOT_EXISTS status) (= status 300))&limit=50&cursor=0
query
The maximum amount of XMLs that will be returned in the request.
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key.
Example: v1/cte-os/taker?access_key[]=44charKey
query
Filter by a list of companies cnpj.
Example: v1/cte-os/taker?cnpj[]=11223344556677
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/cte-os/taker?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
query
Filter by created_at dates. This field is required when field created_at[from] is used. Example using = /v1/cte-os/taker?created_at[from]=2019-09-12&created_at[to]=now. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=now.
query
Filter by presence or value of custom info using Arquivei's filter language
Example: (OR (NOT_EXISTS status) (= status 300))
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/cte-os/taker/{property}
This endpoint is responsible for update a custom property for a taker CTeOs: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/cte-os/not-taker
In this endpoint, you can download XMLs - with maximum of 50 xmls per request - of the CTe-Os not taker invoices.
You can filter using access key of the invoice, by using a cursor or using custom Arquivei's language filter if you already've marked the row with a property. To know more about properties see the cte/not-taker/property documentation.
You can choose too a limit between minimum of 0 and maximum of 50 using the limit parameter.
Example:
GET v1/cte-os/not-taker/?filter=(OR (NOT_EXISTS status) (= status 300))&limit=50&cursor=0
query
The maximum amount of XMLs that will be returned in the request.
query
The cursor position which the search will start from. This value is received after a successfull request on the body of the response as next
.
query
Filter by a list of access_key.
Example: v1/cte-os/not-taker?access_key[]=44charKey
query
Filter by a list of companies cnpj.
Example: v1/cte-os/not-taker?cnpj[]=11223344556677
query
Filter by created_at dates. This field is required when field created_at[to] is used. Example using = /v1/cte-os/not-taker?created_at[from]=2019-09-12&created_at[to]=2019-09-15. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=friday.
query
Filter by created_at dates. This field is required when field created_at[from] is used. Example using = /v1/cte-os/not-taker?created_at[from]=2019-09-12&created_at[to]=now. You can use several relative dates, like: created_at[from]=yesterday&created_at[to]=today or created_at[from]=last monday&created_at[to]=now.
query
Filter by presence or value of custom info using Arquivei's filter language
Example: (OR (NOT_EXISTS status) (= status 300))
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "string",
"xml": "string"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}
PUT
/v1/cte-os/not-taker/{property}
This endpoint is responsible for update a custom property for a not taker CTeOs: Since our API is generic. The call above is url encoded, and thas how it must be made.
required
path
The custom property key name
required
body
The access_key and the value that will be added or updated in a custom property sended in the root of the request body
{
"data": [
{
"access_key": "string",
"value": "string"
}
]
}
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful update
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"result": {
"success": [
"string"
],
"failed": [
"string"
]
}
}
}
GET
/v1/cte-os/dacteos
This endpoint is responsible for get a base64 encoded PDF DacteOs.
required
query
The access_key value of CTeOs. Example: /v1/cte/dacteos/?access_key=44charKey
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": {
"access_key": "string",
"encoded_pdf": "string"
}
}
GET
/v1/cte-os/events
This endpoint is responsible for get a base64 encoded XML CTeOs Event.
required
query
The access_key value of CTeOs. Example: /v1/cte-os/events/?access_key=44charKey
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"type": "string",
"xml": "string"
}
]
}
Operations on companies registered in API.
GET
/v1/company
This endpoint will return a list of CNPJs by the account that is authenticated
No parameters
The number of allowed requests in the current period
The number of remaining requests in the current period
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
"string"
]
}
Operations on properties
GET
/v1/property
This endpoint is responsible for return all properties related to that account: Since our API is generic. The call above is url encoded, and thas how it must be made.
Example:
GET /v1/property
No parameters
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"id": 0,
"key": "string",
"type": "string"
}
]
}
Operations on Events
GET
/v1/events/nfe
This endpoint is responsible for get a base64 encoded XML NFe events.
query
The NFe access key. Example: /v1/events/nfe?access_key[]=11223344556677889900112233445566778899001122
query
Array of event types you want to filter. Each event type is a 6 digits string. Example: /v1/events/nfe?type[]=110110&type[]=110111
query
Limit how many events the call will return. The maximum and default value is 50. Example: /v1/events/nfe?limit=50
query
The cursor position in which the search will start from. This value is received after a successfull request on the body of the response as next
.
Successful fetch
{
"status": {
"code": 0,
"message": "string"
},
"data": [
{
"access_key": "11223344556677889900112233445566778899001122",
"type": "210210",
"xml": "SXNzbyBuw6NvIMOpIHVtIGV2ZW50byBkZSBORmUh"
}
],
"page": {
"next": "string",
"previous": "string"
},
"count": 0,
"signature": "string"
}