MODOS DE ENVIO – Methods of sending Accommodation Bulletins
WEB SERVICES
Está disponível o carregamento de Boletins de Alojamento (BA) via Web Services.
O envio de Boletins de Alojamento em formato eletrónico é precedido de um registo prévio na área reservada do Portal SIBA.
URL de Acesso
Para criar o WSDL para acesso aos Web Services abra o browser e aceda ao seguinte endereço:
Ambiente de desenvolvimento
https://siba.sef.pt/bawsdev/boletinsalojamento.asmx?wsdl
Ambiente de produção
https://siba.sef.pt/baws/boletinsalojamento.asmx?wsdl
Método Disponível
EntregaBoletinsAlojamento (UnidadeHoteleira As String, Estabelecimento As String, ChaveAcesso as string, Boletins As String) As String.
Em que:
<UnidadeHoteleira> é o NIPC da unidade hoteleira
<Estabelecimento> é o número de estabelecimento fornecido pelo SEF
<ChaveAcesso> é a chave de ativação/autenticação fornecida pelo SEF em ofício enviado após o registo.
<Boletins> Conteúdo em formato XML de acordo com o ficheiro BAL.XSD.
<UnidadeHoteleira>
Este parâmetro deve ter o NIPC da Unidade Hoteleira – 9 caracteres numéricos
<Estabelecimento>
O número de estabelecimento é fornecido pelo SEF após o registo da Unidade Hoteleira. Corresponde ao número de ordem da Unidade Hoteleira para o mesmo NIPC. A primeira Unidade Hoteleira a registar-se com um NIPC receberá o número de estabelecimento ’00’.
<ChaveAcesso>
A Chave de Ativação/Autenticação fornecida pelo SEF após o registo da Unidade Hoteleira.
Esta chave é composta apenas por dígitos.
<Boletins>
Este método recebe neste parâmetro um conjunto de caracteres correspondentes a um ficheiro XML com o formato definido pelo ficheiro BAL.XSD.
O conteúdo suportado é Base64.
Formato do conteúdo XML
Equivale a 3 tabelas com os seguintes conteúdos:
Tabela – Unidade_Hoteleira
Esta tabela tem os dados de identificação da unidade hoteleira. Os campos são todos obrigatórios exceto o <Fax>.
As alterações de Morada, Telefone/Fax e contacto são atualizados por esta tabela. Para alteração dos restantes dados de identificação deverá contactar o SEF.
| Campo | Tipo | Tamanho Máx | Descrição / Validação |
| Código_Unidade_Hoteleira | Digitos | 9 | NIPC |
| Estabelecimento | Numérico | 4 | Número de ordem da Unidade Hoteleira |
| Nome | Alfanumérico | 40 | Nome da Unidade Hoteleira |
| Abreviatura | Alfanumérico | 15 | Abreviatura do Nome |
| Morada | Alfanumérico | 40 | Morada do estabelecimento |
| Localidade | Alfanumérico | 30 | |
| Codigo_Postal | Numérico | 4 | |
| Zona_Postal | Numérico | 3 | |
| Telefone | Digitos | 9 | |
| Fax | Digitos | 9 | |
| Nome_Contacto | Alfanumérico | 40 | |
| Email_Contacto | Alfanumérico | 140 |
Tabela – Boletim_Alojamento
Esta tabela tem os Boletins de Alojamento. Os campos são todos obrigatórios exceto o <Nome> ; <Local_Nascimento> e <Data_Saida>.
| Campo | Tipo | Tamanho Máx | Descrição / Validação |
| Apelido | Alfa | 40 | Se o nome do hóspede só tiver um nome, este deverá ser posto neste campo e o nome virá a espaços. |
| Nome | Alfa | 40 | O Nome e o Apelido devem ser constituidos apenas pelos seguintes caracteres: [A : Z] e [ÇÃÁÀÉÊÍÕÔÓÚ’-]e espaço. |
| Nacionalidade | Alfa | 3 | Códigos de países definido pela ICAO norma 9303 |
| Data_Nascimento | Data | Data anterior ao dia corrente. Quando o documento de identificação do hóspede não mencionar o mês e o dia de nascimento, deve ser assumido o dia 1 de janeiro. | |
| Local_Nascimento | Alfanumérico | 30 | |
| Documento_Identificacao | Alfanumérico | 16 | Número de documento de identificação só com caracteres de ‘0’ a ‘9’ e de ‘A’ a ‘Z’ |
| Tipo_Documento_Identificacao | Alfa | 3 | ‘P’ – Passaporte ‘B’ – Bilhete de Identidade ‘O’ – Outro tipo de Documento |
| Pais_Emissor_Documento | Alfa | 3 | Códigos de países definido pela ICAO norma 9303 |
| Data_Entrada | Data | Igual ou anterior à data do dia | |
| Data_Saida | Data | Se preenchido deve ser igual ou posterior à data de entrada | |
| Pais_Residencia_Origem | Alfa | 3 | Códigos de países definido pela ICAO norma 9303 |
| Local_Residencia_Origem | Alfanumérica | 30 |
Tabela – Envio
Esta tabela tem apenas alguns dados de controlo.
| Campo | Tipo | Tamanho Máx | Descrição / Validação |
| Numero_Ficheiro | Numérico | 5 | Número de ordem de conteúdo XML gerado pela Unidade Hoteleira |
| Data_Movimento | Data | Data de geração do contéudo XML |
Carregamento de Boletins de Alojamento
O carregamento dos Boletins de Alojamento é feito chamando o método:
EntregaBoletinsAlojamento (UnidadeHoteleira As String, Estabelecimento As String, ChaveAcesso as string, Boletins As String) As String.
O retorno chegará à unidade hoteleira por duas vias:
- Retorno do método
- Email para o contacto registado na base de dados do SEF.
Retorno do Método
Se o retorno for igual a ‘0’, significa que os boletins de alojamento foram carregados com sucesso e um e-mail de confirmação será enviado para o e-mail registado na base de dados.
Se o retorno for diferente de ‘0’, então corresponde a um conteúdo XML com o seguinte formato:
<Codigo_Retorno> – Código do erro detetado
<Descricao> – Descrição do erro detetado
Código Exemplo
Pode fazer o Download de um Programa de Envio em MS Visual Studio 2005. Este o código pode ser usado e alterado livremente. O SEF não assume qualquer responsabilidade de prejuízos ou perdas provocadas pela utilização do mesmo.
Este pequeno programa faz o envio de um ficheiro XML com os boletins de alojamento. Para tal é necessário fazer as seguintes parameterizações:
1 – Sub Main()
Se a primeira linha tiver –> “Dim wsSEF As New pt.sef.wwwDev.BoletinsAlojamento” então está a usar os web services de Desenvolvimento e Teste. Para usar os Web Services de Produção tem de substituir por “Dim wsSEF As New pt.sef.www.BoletinsAlojamento“
2 – Ficheiro EnviarBA.exe.config / app.config
Este ficheiro xml tem informação de configuração da aplicação. Tem de alterar os valores associados às Tags UnidadeHoteleira ; Estabelecimento e ChaveAcesso em conformidade com os dados fornecidos em ofício emitido pelo SEF após o pré-registo da Unidade Hoteleira.
Quando fizer o download a aplicação estará parameterizadas para aceder ao web service de desenvolvimento e teste, usando os dados de uma unidade hoteleira fictícia.
Para executar este programa abra a janela de linha de comandos (cmd.exe) e execute o comando:
<PATH_DO_EXECUTAVEL>\EnviarBA.exe <Ficheiro_de_Boletins.xml>
UPLOAD DE FICHEIROS
Estrutura do ficheiro de texto:
Nomenclatura – <NIF><Estabelecimento><Numero de Ficheiro>.DAT
O ficheiro terá os seguintes 3 tipos de registo:
| Registo de Cabeçalho | Tipo 0 |
| Registo de Boletim | Tipo 1 |
| Registo de Resumo | Tipo 9 |
Nota: Os campos terminam todos com um caracter | (pipe)
| 1º Registo | |||
| Campo | Tipo | Tamanho | Descrição / Validação |
| Tipo Registo | Dígitos | 1 | ‘0’ Valor Fixo |
| Tipo Ficheiro | Alfanumérico Limitado | 4 | ‘BA03’ Valor fixo |
| NIF | Dígitos | 9 | Número de identificação fiscal da Unidade Hoteleira |
| Estabelecimento | Numérico | 4 | Número do Estabelecimento |
| Nome | Alfabético limitado | 40 | Nome |
| Morada | Alfabético Limitado | 40 | Morada da UH |
| Localidade | Alfabético Limitado | 30 | |
| Codigo Postal | Dígitos | 4 | 4 primeiros dígitos do código postal |
| Zona Postal | Dígitos | 3 | Últimos 3 dígitos do código postal |
| Telefone | Número | 10 | Telefone |
| Fax | Número | 10 | Fax |
| Nome Contacto | Alfabético Limitado | 40 | Nome do contacto na UH |
| e-Mail Contacto | 140 | e-mail do contacto na UH | |
| Registos Seguintes | |||
| Campo | Tipo | Tamanho | Descrição / Validação |
| Tipo Registo | Dígitos | 1 | 1 Valor Fixo |
| Apelido | Alfabético Nome | 40 | Apelido do hóspede |
| Nome | Alfabético Nome | 40 | Este campo pode não ser preenchido se o nome completo do hóspede só tiver um nome. Neste caso esse nome deverá estar no campo Apelido. |
| Nacionalidade | Alfabético | 3 | Código de Nacionalidade – Tabela ICAO |
| Local de Nascimento | Alfabético limitado | 40 | Local de Nascimento. Este campo é opcional |
| Data Nascimento | Dígitos | 8 | Data de Nascimento – anterior à data do dia. Quando o documento de identificação do hóspede não mencionar o mês e o dia de nascimento, deve ser assumido o dia 1 de janeiro.– Formato AAAAMMDD. |
| Número Documento | Alfanumérico Limitado | 16 | Número do documento de identificação sem espaços embebidos |
| Tipo Documento | Alfabético limitado | 3 | B – Bilhete de Identidade P – Passaporte O – Outro documento de identificação |
| País Emissor | Alfabético | 3 | Código de País – Tabela ICAO |
| País Residência | Alfabético | 3 | Código de País – Tabela ICAO |
| Local Residência | Alfabético limitado | 30 | Local habitual de residência. Este campo é opcional. |
| Data Entrada | Dígitos | 8 | Igual ou anterior à data do dia – Formato AAAAMMDD |
| Data Saída | Dígitos | 8 | Se preenchido deve ser igual ou posterior à data de entrada – Formato AAAAMMDD. |
| Último Registo | |||
| Campo | Tipo | Tamanho | Descrição / Validação |
| Tipo Registo | Dígitos | 1 | 9 Valor fixo |
| Número Registos | Número | 5 | Número total de registos do ficheiro incluindo este. |
| Data | Dígitos | 8 | Data de geração do ficheiro – Formato AAAAMMDD. A Data tem de ser anterior ou igual à data do dia |
| Número Ficheiro | Número | 5 | Número de série do ficheiro da Unidade Hoteleira |
| Tipos de Campo | |
| Tipo | Descrição / Validação |
| Alfabético Nome | Só maiúsculas, caracteres [A : Z] e [ÇÃÁÀÉÊÍÕÔÓÚ’-] e espaço, não pode ser iniciado por espaço. |
| Alfabético Limitado | Só maiúsculas, caracteres [A:Z] ; espaço; Hífen; Aspas; Apostrofo; Virgula; Ponto |
| Alfabético | Caracteres [A:Z] ; Caracteres Maiúsculos; pontuação ; Espaço |
| Alfanumérico Limitado | Caracteres [A:Z] e [0:9] |
| Número | [0:9] |
| Dígitos | [0:9], Número de dígitos indicado |
| [A:Z]; sublinhado;hífen inclui um @ e pelo menos um ponto | |
INSERÇÃO DIRETA NA PÁGINA
Ao proceder ao envio por esta via as Unidades Hoteleiras farão o registo e envio dos Boletins de Alojamento diretamente na página do SIBA.
Consulte o Manual do Utilizador.
