Catálogos SIFEN¶
Los valores válidos de cada campo con código, centralizados y validados.
smartdoc.Iva.TEN # "10_percent"
smartdoc.SaleType.CASH # "cash"
smartdoc.MeasureUnit.UNIT # 77
smartdoc.TransactionType.SERVICES # 2
smartdoc.Iva.TEN.rate # 0.10
smartdoc.SaleType.labels() # {"cash": "Contado", "credit": "Crédito"}
Todos los catálogos aceptan el miembro, su valor o su etiqueta, y el SDK normaliza:
Cerrados y abiertos¶
Hay dos familias, y la diferencia importa.
Cerrados — valores de texto propios de SmartDoc. Mandar otra cosa es un error, y el SDK lo rechaza localmente con las opciones válidas.
Abiertos — códigos numéricos de SIFEN. La DNIT define el catálogo completo y la API lo acepta entero, así que el SDK deja pasar cualquier código oficial aunque no lo liste por nombre. Un código nuevo no obliga a esperar una versión del paquete.
smartdoc.TransactionType.coerce(99) # pasa: catálogo abierto
smartdoc.Currency.coerce("EUR") # ValidationError: catálogo cerrado
SaleType¶
Cerrado. Campo saleType.
| Miembro | Valor | Etiqueta |
|---|---|---|
SaleType.CASH |
cash |
Contado |
SaleType.CREDIT |
credit |
Crédito |
El valor no es la etiqueta
Lo que viaja en el campo es "cash" o "credit". "Contado" y "Crédito"
son las etiquetas para mostrar en pantalla. El SDK acepta las dos formas y
manda siempre el valor.
Iva¶
Cerrado. Campo items[].ivaType.
| Miembro | Valor | Etiqueta | Tasa |
|---|---|---|---|
Iva.TEN |
10_percent |
10% | 0.10 |
Iva.FIVE |
5_percent |
5% | 0.05 |
Iva.EXEMPT |
exempt |
Exento | 0 |
Iva.MIXED_TEN |
mixed_10_percent |
Mixto 10% | 0.10 |
Iva.MIXED_FIVE |
mixed_5_percent |
Mixto 5% | 0.05 |
Los dos mixtos exigen iva_base: el porcentaje de la línea que está gravado.
El IVA va incluido en el precio
No se suma. Un ítem de 1.100.000 al 10% contiene 100.000 de IVA
(1.100.000 / 11) sobre una base gravada de 1.000.000. Al 5% el divisor es
21.
Currency¶
Cerrado. Campo currency.
| Miembro | Valor | Etiqueta |
|---|---|---|
Currency.PYG |
PYG |
Guaraníes |
Currency.USD |
USD |
Dólares Americanos |
Currency.PAB |
PAB |
Balboas |
Con cualquiera distinta de PYG hace falta exchange_rate.
ClientType¶
Cerrado. Campo clientType.
| Miembro | Valor | Etiqueta |
|---|---|---|
ClientType.PERSON |
person |
Persona |
ClientType.ENTITY |
entity |
Entidad |
ClientType.FOREIGN_ENTITY |
foreign_entity |
Cliente Extranjero |
ClientType.NOT_NOMINATED |
not_nominated |
Sin Nombre |
ClientType.DIPLOMATIC |
diplomatic |
Diplomático |
ClientType.GOVERNMENT |
government |
Gobierno |
Los recibos aceptan solo los tres primeros. FOREIGN_ENTITY es el único tipo
que puede llevar dirección sin códigos geográficos paraguayos.
AssociatedDocumentType¶
Cerrado. Campo associatedDocumentType.
| Miembro | Valor | Etiqueta |
|---|---|---|
ELECTRONIC_INVOICE |
electronic_invoice |
Factura Electrónica |
PRINTED_INVOICE |
printed_invoice |
Factura Impresa |
RETENTION_CERTIFICATE |
retention_certificate |
Constancia de Retención |
NONE |
none |
Ninguno |
Notas de crédito y débito aceptan los dos primeros; los recibos aceptan además
NONE.
ReceiptPaymentMethod¶
Cerrado. Campo paymentMethod del recibo.
| Miembro | Valor | Etiqueta |
|---|---|---|
CASH |
cash |
Efectivo |
CHECK |
check |
Cheque |
BANK_TRANSFER |
bank_transfer |
Transferencia Bancaria |
Con CHECK hacen falta check_bank y check_number.
ProviderType y ProviderDocumentType¶
Cerrados. Campos providerType y providerDocumentType de la autofactura.
ProviderType |
Valor | Etiqueta |
|---|---|---|
NO_RUC |
no_ruc |
No Contribuyente |
FOREIGN |
foreign |
Extranjero |
ProviderDocumentType |
Valor | Etiqueta |
|---|---|---|
PARAGUAYAN_ID |
paraguayan_dni |
Cédula paraguaya |
PASSPORT |
passport |
Pasaporte |
FOREIGN_ID |
foreign_dni |
Cédula Extranjera |
RESIDENCE_CARD |
residence_card |
Carnet de residencia |
TransactionType¶
Abierto. Campo transactionTypeCode, del 1 al 13.
| Código | Miembro | Descripción |
|---|---|---|
| 1 | MERCHANDISE_SALE |
Venta de mercadería |
| 2 | SERVICES |
Prestación de servicios |
| 3 | MIXED |
Mixto (venta de mercadería y servicios) |
| 4 | FIXED_ASSET_SALE |
Venta de activo fijo |
| 5 | CURRENCY_SALE |
Venta de divisas |
| 6 | CURRENCY_PURCHASE |
Compra de divisas |
| 7 | PROMOTION_OR_SAMPLES |
Promoción o entrega de muestras |
| 8 | DONATION |
Donación |
| 9 | ADVANCE_PAYMENT |
Anticipo |
| 10 | PRODUCT_PURCHASE |
Compra de productos |
| 11 | SERVICES_PURCHASE |
Compra de servicios |
| 12 | TAX_CREDIT_SALE |
Venta de crédito fiscal |
| 13 | MEDICAL_SAMPLES |
Muestras médicas (Art. 3 RG 24/2014) |
MeasureUnit¶
Abierto. Campo items[].measureUnit. Por omisión UNIT (77).
| Código | Miembro | Descripción |
|---|---|---|
| 77 | UNIT |
Unidad |
| 885 | GLOBAL_UNIT |
Unidad Medida Global |
| 2329 | INTERNATIONAL_UNIT |
Unidad Internacional |
| 569 | RATION |
Ración |
| 104 | DETERMINATION |
Determinación |
| 2366 | COST_PER_THOUSAND |
Costo por Mil |
| 891 | PER_MILEAGE |
Por Milaje |
| 95 | MILLIMETER |
Milímetros |
| 91 | CENTIMETER |
Centímetros |
| 87 / 108 | METER / METER_ALT |
Metros |
| 660 | LINEAR_METER |
Metro lineal |
| 625 | KILOMETER |
Kilómetros |
| 94 | INCH |
Pulgadas |
| 103 | YARD |
Yardas |
| 96 | SQUARE_MILLIMETER |
Milímetros cuadrados |
| 92 | SQUARE_CENTIMETER |
Centímetros cuadrados |
| 109 | SQUARE_METER |
Metros cuadrados |
| 869 | HECTARE |
Hectáreas |
| 93 | CUBIC_CENTIMETER |
Centímetros cúbicos |
| 110 | CUBIC_METER |
Metros cúbicos |
| 88 | MILLILITER |
Mililitros |
| 89 | LITER |
Litros |
| 90 | MILLIGRAM |
Miligramos |
| 86 | GRAM |
Gramos |
| 83 | KILOGRAM |
Kilogramos |
| 99 | TON |
Tonelada |
| 79 | KILOGRAM_PER_SQUARE_METER |
Kilogramos por metro cuadrado |
| 666 | SECOND |
Segundo |
| 101 | MINUTE |
Minuto |
| 100 | HOUR |
Hora |
| 102 | DAY |
Día |
| 98 | MONTH |
Mes |
| 97 | YEAR |
Año |
RemissionReason¶
Abierto. Campo reasonCode de la nota de remisión. Por omisión SALE (1).
| Código | Miembro | Descripción |
|---|---|---|
| 1 | SALE |
Traslado por ventas |
| 2 | CONSIGNMENT |
Traslado por consignación |
| 3 | EXPORT |
Exportación |
| 4 | PURCHASE |
Traslado por compra |
| 5 | IMPORT |
Importación |
| 6 | RETURN |
Traslado por devolución |
| 7 | BETWEEN_COMPANY_LOCATIONS |
Traslado entre locales de la empresa |
| 8 | TRANSFORMATION |
Traslado de bienes por transformación |
| 9 | REPAIR |
Traslado de bienes por reparación |
| 10 | MOBILE_ISSUER |
Traslado por emisor móvil |
| 11 | EXHIBITION |
Exhibición o demostración |
| 12 | TRADE_FAIR |
Participación en ferias |
| 13 | PARCEL |
Traslado de encomienda |
| 14 | SEIZURE |
Decomiso |
| 99 | OTHER |
Otro |
RemissionResponsible¶
Abierto. Campo responsibleCode.
| Código | Miembro | Descripción |
|---|---|---|
| 1 | INVOICE_ISSUER |
Emisor de la factura |
| 2 | INVOICE_AND_GOODS_HOLDER |
Poseedor de la factura y bienes |
| 3 | CARRIER_COMPANY |
Empresa transportista |
| 4 | CUSTOMS_BROKER |
Despachante de Aduanas |
| 5 | TRANSPORT_AGENT |
Agente de transporte o intermediario |
Transporte¶
Abiertos. Campos de la nota de remisión.
| Catálogo | Campo | Valores |
|---|---|---|
TransportType |
transportTypeCode |
1 OWN (Propio), 2 THIRD_PARTY (Tercero) |
TransportMode |
transportModeCode |
1 LAND, 2 RIVER, 3 AIR, 4 MULTIMODAL |
VehicleIdentificationType |
transportVehicleDocumentTypeCode |
1 VIN, 2 REGISTRATION |
FreightResponsible (campo transportResponsibleCode):
| Código | Miembro | Descripción |
|---|---|---|
| 1 | INVOICE_ISSUER |
Emisor de la Factura Electrónica |
| 2 | INVOICE_RECEIVER |
Receptor de la Factura Electrónica |
| 3 | THIRD_PARTY |
Tercero |
| 4 | TRANSPORT_AGENT |
Agente intermediario del transporte |
| 5 | OWN_TRANSPORT |
Transporte propio |
El tipo de vehículo no es un catálogo
Vehicle.type es una descripción libre de 4 a 10 caracteres —"CAMION",
"Camioneta"—, distinta de TransportType, que sí es un código.
CarrierDocumentType¶
Abierto. Campo carrierDocumentTypeCode.
| Código | Miembro | Descripción |
|---|---|---|
| 1 | PARAGUAYAN_ID |
Cédula paraguaya |
| 2 | PASSPORT |
Pasaporte |
| 3 | FOREIGN_ID |
Cédula extranjera |
| 4 | RESIDENCE_CARD |
Carnet de residencia |
| 5 | UNNAMED |
Innominado |
| 6 | DIPLOMATIC_CARD |
Tarjeta Diplomática de exoneración fiscal |
| 9 | UNSPECIFIED |
No especificado |
PrintedDocumentType¶
Abierto. Campo associatedDocumentPrintedType.
| Código | Miembro | Descripción |
|---|---|---|
| 1 | INVOICE |
Factura |
| 2 | CREDIT_NOTE |
Nota de crédito |
| 3 | DEBIT_NOTE |
Nota de débito |
| 4 | REMISSION_NOTE |
Nota de remisión |
| 5 | WITHHOLDING_RECEIPT |
Comprobante de retención |
Países¶
249 códigos ISO-3. Van como datos, no como enum.
from smartdoc.constants import countries
countries.PARAGUAY # "PRY"
countries.name("BRA") # "Brasil"
countries.code("Argentina") # "ARG"
countries.search("islas") # [("SLB", "Islas Salomón"), ...]
Geografía¶
18 departamentos, 270 distritos y 6419 ciudades, embebidos en el paquete.
ciudad = smartdoc.geo.find_city("Asunción")
ciudad.code, ciudad.district.code, ciudad.department.code
Ver Documentos para cómo se usan.
Estados¶
19 estados, compartidos por los seis tipos de documento. Ver Documentos.
Permisos¶
23 permisos, 12 de lectura y 11 de escritura. No hay jerarquía entre ellos.