SDKs & Bibliotecas
MobileAPI de Nota Fiscal para Android e Smart POS (Kotlin)
Emissão de NFC-e mobile, maquininhas Smart POS (Cielo, Stone, PagBank) e contingência offline.
Guia de integração da API fiscal do NFER para Android (Kotlin). Ideal para desenvolvedores de aplicativos mobile, PDVs móveis, tablets de frente de caixa e maquininhas Smart POS (Cielo LIO, Stone, PagBank, Rede).
Kotlin 1.9+Smart POS & Mobile POSOkHttpClient & Coroutines
1. Permissões no AndroidManifest.xml
Certifique-se de que a permissão de internet esteja configurada no manifesto do aplicativo:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
2. Dependências no build.gradle (Module :app)
Adicione a biblioteca de rede OkHttp e o conversor JSON:
dependencies {
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.google.code.gson:gson:2.10.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
}
3. Gerenciador Fiscal em Kotlin (NferFiscalService)
Classe para emissão direta de NFC-e (Nota de Consumidor Modelo 65) a partir do PDV Android:
package com.exemplo.pdv
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import java.io.IOException
class NferFiscalService(
private val apiKey: String,
private val baseUrl: String = "https://api.nfer.me"
) {
private val client = OkHttpClient()
private val jsonMediaType = "application/json; charset=utf-8".toMediaType()
suspend fun emitirNfce(payloadJson: String): String = withContext(Dispatchers.IO) {
4. Exemplo de Emissão de NFC-e no PDV Móvel
Chamada de emissão dentro de uma Coroutine na Activity ou ViewModel do Android:
fun finalizarVenda(valorTotal: Double, formaPagamento: String) {
viewModelScope.launch {
try {
val payload = """
{
"naturezaOperacao": "VENDA AO CONSUMIDOR",
"pagamentos": [
{ "forma": "$formaPagamento", "valor": $valorTotal }
],
"itens": [
{
"descricao": "Cafe Expresso 50ml",
"ncm": "21011110",
"unidade": "UN",
"quantidade": 1,
"valorUnitario": $valorTotal
}
]