{
  "openapi": "3.0.0",
  "info": {
    "title": "SICFAC API REST",
    "description": "Especificación oficial OpenAPI 3.0 de la API de Facturación Electrónica SICFAC y Servicios Complementarios.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://apidemo.sicfac.com",
      "description": "Servidor de Pruebas (Demo)"
    },
    {
      "url": "https://api.sicfac.com",
      "description": "Servidor de Producción"
    }
  ],
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "KeyRest"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/api/GenerarDocumento": {
      "post": {
        "summary": "Emitir Comprobante (Factura / Boleta / Nota Crédito / Nota Débito)",
        "description": "Genera comprobantes electrónicos dinámicamente según su tipo (01 Factura, 03 Boleta, 07 Nota de Crédito, 08 Nota de Débito).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "Emisor": {
                  "NroDocumento": "20602142087",
                  "TipoDocumento": "6",
                  "NombreLegal": "EMPRESA DE PRUEBA S.A.C."
                },
                "Receptor": {
                  "NroDocumento": "20100070970",
                  "TipoDocumento": "6",
                  "NombreLegal": "CLIENTE PRUEBA S.A.C."
                },
                "Serie": "F787",
                "Correlativo": "1001",
                "TipoDocumento": "01",
                "FechaEmision": "2026-07-22",
                "Moneda": "PEN",
                "Gravadas": 100,
                "TotalIgv": 18,
                "TotalVenta": 118,
                "TipoFormaPago": "1",
                "Items": [
                  {
                    "CodigoItem": "P001",
                    "Cantidad": 1,
                    "Descripcion": "PRODUCTO PRUEBA",
                    "PrecioUnitario": 118,
                    "TotalVenta": 100
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Comprobante procesado exitosamente"
          }
        }
      }
    },
    "/api/GenerarGuiaRemision": {
      "post": {
        "summary": "Emitir Guía de Remisión Electrónica",
        "description": "Genera Guías de Remisión según la modalidad (Pública o Privada) o tipo (Remitente o Transportista).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "Emisor": {
                  "NroDocumento": "20602142087",
                  "TipoDocumento": "6",
                  "NombreLegal": "EMPRESA EMISORA S.A.C."
                },
                "Destinatario": {
                  "NroDocumento": "20100070970",
                  "TipoDocumento": "6",
                  "NombreLegal": "DESTINATARIO S.A.C."
                },
                "Serie": "T001",
                "Correlativo": "1",
                "TipoDocumento": "09",
                "FechaEmision": "2026-07-22",
                "FechaInicioTraslado": "2026-07-22",
                "MotivoTraslado": "01",
                "ModalidadTraslado": "02",
                "PesoTotal": 10.5,
                "UnidadMedidaPeso": "KGM",
                "PuntoPartida": {
                  "Ubigeo": "150101",
                  "Direccion": "AV. PRINCIPAL 123, LIMA"
                },
                "PuntoLlegada": {
                  "Ubigeo": "150122",
                  "Direccion": "AV. LA MAR 401, MIRAFLORES"
                },
                "Detalles": [
                  {
                    "CodigoItem": "ITEM01",
                    "Cantidad": 10,
                    "UnidadMedida": "NIU",
                    "Descripcion": "CAJAS DE PRODUCTO"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Guía generada exitosamente"
          }
        }
      }
    },
    "/api/AnularDocumento": {
      "post": {
        "summary": "Anular Comprobante / Comunicación de Baja",
        "description": "Solicita la anulación / comunicación de baja de un comprobante electrónico.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "Emisor": {
                  "NroDocumento": "20602142087",
                  "TipoDocumento": "6"
                },
                "Serie": "F787",
                "Correlativo": "1001",
                "TipoDocumento": "01",
                "MotivoBaja": "ERROR EN RUC DE RECEPTOR"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Solicitud de baja procesada"
          }
        }
      }
    },
    "/api/ConsultaDocumento": {
      "post": {
        "summary": "Consultar Estado de Comprobante",
        "description": "Obtiene la validez de un comprobante emitido ante el sistema y SUNAT, además de retornar enlaces a sus archivos PDF, XML y CDR.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "Emisor": {
                  "NroDocumento": "20602142087",
                  "TipoDocumento": "6"
                },
                "Serie": "F787",
                "Correlativo": "1001",
                "TipoDocumento": "01"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Estado del comprobante devuelto"
          }
        }
      }
    },
    "/api/GenerarDocumentoLista": {
      "post": {
        "summary": "Generar Documento Lista (Emisión Masiva en Lote)",
        "description": "Permite emitir múltiples comprobantes electrónicos en una única petición masiva.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": [
                {
                  "Emisor": {
                    "NroDocumento": "20602142087",
                    "TipoDocumento": "6"
                  },
                  "Serie": "F787",
                  "Correlativo": "1001",
                  "TipoDocumento": "01"
                }
              ]
            }
          }
        },
        "responses": {
          "200": {
            "description": "Lote procesado exitosamente"
          }
        }
      }
    },
    "/api/ServicePadronDNI": {
      "servers": [
        {
          "url": "https://services.sicfac.com",
          "description": "Servidor de Consultas Padrón RUC/DNI"
        }
      ],
      "post": {
        "summary": "Consulta de DNI (Padrón)",
        "description": "Consulta en tiempo real la información de un ciudadano peruano mediante su número de DNI de 8 dígitos desde el Padrón actualizado de alta velocidad.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "numDocu": "72483573"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Datos de ciudadano devueltos"
          }
        }
      }
    },
    "/api/ServicePadronRUC": {
      "servers": [
        {
          "url": "https://services.sicfac.com",
          "description": "Servidor de Consultas Padrón RUC/DNI"
        }
      ],
      "post": {
        "summary": "Consulta de RUC (Padrón)",
        "description": "Consulta los datos fiscales y comerciales oficiales de un contribuyente mediante su número de RUC de 11 dígitos desde el Padrón de alta velocidad.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "numDocu": "20602142087"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Datos fiscales devueltos"
          }
        }
      }
    },
    "/api/GetTipoCambio": {
      "servers": [
        {
          "url": "https://services.sicfac.com",
          "description": "Servidor de Consultas Padrón RUC/DNI"
        }
      ],
      "post": {
        "summary": "Consulta de Tipo de Cambio SUNAT",
        "description": "Obtiene el Tipo de Cambio oficial publicado por la SUNAT (compra y venta) para una fecha específica.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "moneda": "USD",
                "fecha": "2026-07-22"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tipo de Cambio oficial devuelto"
          }
        }
      }
    }
  }
}
