YourVisa Travel Visa MCP
Servidor MCP remoto somente leitura que permite que assistentes de IA consultem requisitos e taxas de visto, eVisa, ETA e ESTA por país e obtenham links oficiais de solicitação. Chave de API necessária.
Servidor MCP hospedado
npx add-mcp 'https://mcp.yourvisa.ai/api/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Base URL:
https://api.yourvisa.ai
Construindo um assistente de viagens ou imigração com IA? Leia nossa história sobre como um servidor MCP de vistos de viagem impediu que o chatbot de uma agência desse respostas erradas sobre vistos, e nosso artigo técnico sobre Integração de servidor MCP para documentação de viagens em e-visa, ETA e ETIAS.
Bem-vindo à documentação do YourVisa.ai
Esta documentação abrangente da API irá guiá-lo na integração dos nossos serviços de visto ao seu aplicativo. Seja você um iniciante ou um desenvolvedor experiente, encontrará tudo o que precisa para começar.
Rápido e Confiável
Tempos de resposta rápidos com garantia de disponibilidade de 99,9%
Seguro
Segurança de nível empresarial com autenticação OAuth 2.0
Bem Documentado
Exemplos claros e explicações detalhadas para cada endpoint
Guia de Início Rápido
1
Obtenha Suas Credenciais de API
Cadastre-se para obter uma conta e gere sua chave e segredo de API de produção e/ou sandbox no painel.
Key: your-api-key Secret: your-api-secret
Gere um Token de Acesso
Envie sua chave e segredo via POST para obter um token bearer. A resposta inclui agencyId e isApiSandbox (true para credenciais sandbox, false para produção). Não envie um campo de ambiente — ele é inferido a partir de quais credenciais correspondem.
curl -X POST "https://api.yourvisa.ai/unprotected/generate-programmatic-token" -H "Content-Type: application/json" -d '{"key": "your-api-key","secret": "your-api-secret"}'
Faça Sua Primeira Chamada de API
Use o token para autenticar suas solicitações aos endpoints protegidos.
curl -X GET "https://api.yourvisa.ai/agents-api/get-products-from-countries?from=IL&to=IN" -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
URL Base
Todas as solicitações de API devem ser feitas para a seguinte URL base:
https://api.yourvisa.ai
Autenticação
A maioria dos endpoints exige autenticação usando um token Bearer. Inclua o token no cabeçalho Authorization das suas solicitações:
Authorization: Bearer YOUR_ACCESS_TOKEN
Importante: Mantenha suas credenciais de API seguras. Nunca as exponha em código do lado do cliente ou em repositórios públicos. Use credenciais sandbox para testes de integração; tokens sandbox marcam reservas como teste e ignoram cobranças de saldo.
Tratamento de Erros
A API usa códigos de status HTTP padrão para indicar sucesso ou falha:
- 200Sucesso - Solicitação concluída com sucesso
- 400Solicitação Inválida - Parâmetros inválidos ou campos obrigatórios ausentes
- 401Não Autorizado - Token de acesso inválido ou expirado
- 404Não Encontrado - Recurso não encontrado
- 500Erro Interno do Servidor - Algo deu errado em nosso lado
Precisa de Ajuda?
Se você tiver dúvidas ou precisar de assistência, não hesite em entrar em contato:
- E-mail:api-support@yourvisa.ai
post /unprotected/generate-programmatic-token
Gerar token programático
Troque uma chave e segredo da API de Agentes por um token de acesso JWT (válido por 12 horas). Envie credenciais de produção ou sandbox — o ambiente é inferido a partir de qual chave corresponde no banco de dados. Não envie um campo de ambiente. Quando credenciais sandbox correspondem, a resposta inclui isApiSandbox: true e o JWT carrega o mesmo sinalizador, de modo que as reservas criadas com esse token são marcadas como teste.
Corpo da Solicitação
Schema: GenerateProgrammaticToken
key Obrigatóriostring
Chave de API de produção ou sandbox
secret Obrigatóriostring
Segredo de API de produção ou sandbox correspondente
Respostas
200 Resposta bem-sucedida
Schema: GenerateProgrammaticTokenResponse
success boolean
Padrão: true
token string
Token de acesso JWT válido por 12 horas
agencyId string
ID da agência associada às credenciais de API
isApiSandbox boolean
true quando a chave/segredo fornecidos são credenciais sandbox; false para produção. Tokens sandbox marcam reservas criadas via API de Agentes como teste e ignoram cobranças de saldo.
Exemplo false
400 Solicitação inválida
Schema: GenerateProgrammaticTokenBadRequest
success boolean
Padrão: false
message string
Valores possíveis:
Campos ausentesUsuário com acesso programático não existe
404 Não encontrado
500 Erro interno do servidor
Experimente
curl -X POST "https://api.yourvisa.ai/unprotected/generate-programmatic-token" \
-H "Content-Type: application/json" \
-d '{
"key": "string",
"secret": "string"
}'
get /agents-api/get-products-from-countries?from={from}&to={to}
Obter produtos de países
Requer Autenticação (Token Bearer)
Parâmetros
from Obrigatóriopathstring
País de origem
to Obrigatóriopathstring
País de destino
currency pathstring
Moeda de exibição opcional (código ISO 4217 suportado). Quando fornecida, cada paymentDetails do produto inclui displayPricing com valores convertidos.
Valores possíveis:
AUD BRL CAD CHF CNY CZK DKK EGP ETB EUR GBP GHS HKD HUF IDR ILS INR ISK JPY KES KRW MAD MXN MYR NGN NOK NZD PHP PLN RON SEK SGD THB TND TRY TZS UGX USD XAF XOF ZAR
Country codes string
AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CK, CR, CI, HR, CU, CW, CY, CZ, CD, DK, DJ, DM, DO, TL, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, XK, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, KP, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, KR, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, VG, UA, AE, GB, US, UM, UY, VI, UZ, VU, VA, VE, VN, WF, EH, YE, ZM, ZW
Tipos de Resposta
Tipo de resposta - Obter produtos de países
Respostas
200 Resposta bem-sucedida
Schema: GetProductsFromCountriesSupportedResponse
success boolean
Padrão: true
products array
Matriz de objeto(clique para ver propriedades)
400 Solicitação inválida
Schema: GetProductsFromCountriesBadRequest
success boolean
Padrão: false
message string
Valores possíveis:
País de origem (de) ou país de destino (para) não fornecidoCódigo do país (de ou para) inválidoCódigo de moeda inválido. Valores suportados: AUD, BRL, CAD, CHF, CNY, CZK, DKK, EGP, ETB, EUR, GBP, GHS, HKD, HUF, IDR, ILS, INR, ISK, JPY, KES, KRW, MAD, MXN, MYR, NGN, NOK, NZD, PHP, PLN, RON, SEK, SGD, THB, TND, TRY, TZS, UGX, USD, XAF, XOF, ZAR
401 Não Autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
404 Não encontrado
500 Erro interno do servidor
Experimente
curl -X GET "https://api.yourvisa.ai/agents-api/get-products-from-countries?from={from}&to={to}" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
get /agents-api/get-supported-destinations?from={from}
Obter códigos de países de destino suportados
Retorna códigos de país de destino ISO 3166-1 alfa-2 distintos que possuem produtos de visto com isSupportedVisa true para o país de origem fornecido. O país de origem nunca é incluído como destino.
Requer Autenticação (Token Bearer)
Parâmetros
from Obrigatóriopathstring
País de origem
Respostas
200 Resposta bem-sucedida
Schema: GetSupportedDestinationsResponse
success boolean
Padrão: true
countryCodes array
Matriz de string
400 Solicitação inválida
Schema: GetSupportedDestinationsBadRequest
success boolean
Padrão: false
message string
Valores possíveis:
País de origem (de) não fornecidoCódigo do país (de) inválido
401 Não Autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
500 Erro interno do servidor
Experimente
curl -X GET "https://api.yourvisa.ai/agents-api/get-supported-destinations?from={from}" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
get /agents-api/get-specific-product-details?productId=66a9ebe9572eb2904562c3ad
Obter detalhes de produto específico
Requer Autenticação (Token Bearer)
Parâmetros
productId Obrigatóriopathstring
ID do produto
Respostas
200 Resposta bem-sucedida
Schema: GetSpecificProductDetailsResponse
success boolean
Padrão: true
productInputDetails array
Matriz de objeto(clique para ver propriedades)
productDetails object
400 Solicitação inválida
Schema: GetSpecificProductDetailsBadRequest
success boolean
Padrão: false
message string
401 Não Autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
404 Não encontrado
500 Erro interno do servidor
Experimente
curl -X GET "https://api.yourvisa.ai/agents-api/get-specific-product-details?productId=66a9ebe9572eb2904562c3ad" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
post /agents-api/commit-new-visa
Criar um novo produto de visto reservado
Registre uma nova reserva de visto com os dados do cliente via API. A combinação isPaidByCustomer=true com isFilledByCustomer=false (cliente paga, agência preenche) não é suportada e retorna 400. Quando corporateIdForCharging é fornecido, a reserva é paga pela organização e cobrada dessa empresa (saldo rotativo ou back-to-back conforme as configurações de cobrança da empresa). A agência deve ter isAllowedToChargeCorporatesViaApi habilitado pelo administrador do YourVisa.ai. Se o token Bearer foi emitido a partir de credenciais de API sandbox (isApiSandbox: true de POST /unprotected/generate-programmatic-token), a reserva é automaticamente marcada como visto de teste e cobranças de saldo são ignoradas.
Requer Autenticação (Token Bearer)
Corpo da Solicitação
Schema: CommitNewVisaRequest
productId Obrigatóriostring
O ID do produto de visto
isPaidByCustomer boolean
Se o cliente pagará (true) ou o agente pagará (false). Não pode ser true quando isFilledByCustomer é false.
isFilledByCustomer boolean
Se o cliente preencherá o formulário (true) ou o agente o preencherá (false). Não pode ser false quando isPaidByCustomer é true.
customerFirstName Obrigatóriostring
Primeiro nome do cliente
customerLastName Obrigatóriostring
Sobrenome do cliente
customerEmail Obrigatóriostring
Endereço de e-mail do cliente
voucherInvoiceNumber string
Referência opcional de voucher ou fatura armazenada com a reserva
Exemplo "INV-2026-001"
travelFileNumber string
Número opcional de arquivo de viagem do Travel CRM vinculado a esta reserva
Exemplo "1252813"
messageForTraveler string
Mensagem opcional incluída no e-mail de aplicação do viajante quando isFilledByCustomer é true. Apenas letras, números, espaços e pontuação básica (.,!? ' -).
Exemplo "Please complete the form and upload a clear passport scan."
preferredLanguage string
Código de idioma opcional para e-mails voltados ao viajante: en (inglês, padrão), de (alemão), es (espanhol), ru (russo), he (hebraico), ar (árabe), fr (francês)
Valores possíveis:
endeesruhearfr
corporateIdForCharging string
ID corporativo opcional para cobrar esta reserva em vez do saldo da agência. Requer isAllowedToChargeCorporatesViaApi da agência, a empresa deve pertencer à agência e a empresa deve ter uma configuração de pagamento válida (cartão salvo para back-to-back, ou recarga automática com cartão salvo para saldo rotativo). Quando definido, isPaidByCustomer é tratado como false e o e-mail do viajante é adicionado à lista de permissões da empresa.
Exemplo "66a9ebe9572eb2904562c3ae"
customKeys object
Pares opcionais de chave-valor personalizados para rastreamento ou metadados (máximo de 5 chaves). Exemplo: {"customKey1": "customKey1 value", "customKey2": "customKey2 value", "customKey3": "customKey3 value", "customKey4": "customKey4 value", "customKey5": "customKey5 value"}
Respostas
201 Produto reservado criado com sucesso
Schema: CommitNewVisaResponse
success boolean
Exemplo true
bookedProductId string
Exemplo "66a9ebe9572eb2904562c3ae"
isPaymentTest boolean
true quando a reserva foi criada como um visto de teste (credenciais de API de sandbox ou modo de teste de integração de agência/corporativo). Reservas de teste não são cobradas no saldo.
Exemplo false
message string
Exemplo "Visa booking created successfully"
400 Requisição inválida - erro de validação
Schema: CommitNewVisaBadRequest
success boolean
message string
401 Não autorizado - token inválido ou ausente
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
403 Proibido - agência não autorizada a criar reservas pagas pela agência
Schema: CommitNewVisaForbidden
success boolean
message string
Exemplo "Your agency is not allowed to create agent-paid bookings"
404 Produto ou agência não encontrado
Schema: CommitNewVisaNotFound
success boolean
message string
Experimente
curl -X POST "https://api.yourvisa.ai/agents-api/commit-new-visa" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"productId": "string",
"isPaidByCustomer": true,
"isFilledByCustomer": true,
"customerFirstName": "string",
"customerLastName": "string",
"customerEmail": "string",
"voucherInvoiceNumber": "string",
"travelFileNumber": "string",
"messageForTraveler": "string",
"preferredLanguage": "en",
"corporateIdForCharging": "string",
"customKeys": {
"customKey1": "customKey1 value",
"customKey2": "customKey2 value",
"customKey3": "customKey3 value",
"customKey4": "customKey4 value",
"customKey5": "customKey5 value"
}
}'
post /agents-api/get-application-link
Gerar link de aplicação para uma reserva existente
Gere uma URL de aplicação com token embutido para um produto já reservado. Use isto após criar uma reserva via POST /agents-api/commit-new-visa, ou após receber um bookedProductId de um handoff de pagamento instantâneo. Defina isIframe como true (padrão) para uma URL pronta para iframe, ou false para a URL regular do assistente de visto. Observação: este link só é válido para aplicações de visto que ainda não foram enviadas. O ambiente é inferido do token Bearer: tokens de sandbox só podem gerar links para reservas de teste; tokens de produção só podem gerar links para reservas que não são de teste.
Requer Autenticação (Token Bearer)
Corpo da Requisição
Schema: GetApplicationLinkRequest
bookedProductId Obrigatóriostring
O ID do produto reservado existente. Pode vir de POST /agents-api/commit-new-visa ou de uma URL de retorno de pagamento instantâneo do parceiro.
langKey string
Preferência de idioma opcional para o formulário de aplicação: en (inglês, padrão), de (alemão), es (espanhol), ru (russo), he (hebraico), ar (árabe), fr (francês)
Valores possíveis:
endeesruhearfr
isIframe boolean
Se deve gerar uma URL de iframe (true, padrão) apontando para /iframe/visa-wizard, ou uma URL regular (false) apontando para /visa-wizard
Padrão:
Respostas
200 Link de aplicação gerado com sucesso
Schema: GetApplicationLinkResponse
success boolean
Exemplo true
bookedProductId string
O ID do produto reservado
Exemplo "66a9ebe9572eb2904562c3ae"
applicationUrl string
A URL completa incluindo o domínio base.
Com isIframe=true (padrão): https://www.yourvisa.ai/iframe/visa-wizard?productId=...&token=...
Com isIframe=false: https://www.yourvisa.ai/visa-wizard?productId=...&token=...
Exemplo "https://www.yourvisa.ai/iframe/visa-wizard?productId=66a9ebe9572eb2904562c3ad&token=eyJhbGc..."
path string
A parte de caminho e consulta da URL (tudo após o domínio base).
Com isIframe=true (padrão): /iframe/visa-wizard?productId=...&token=...
Com isIframe=false: /visa-wizard?productId=...&token=...
Exemplo "/iframe/visa-wizard?productId=66a9ebe9572eb2904562c3ad&token=eyJhbGc..."
message string
Exemplo "Application link generated successfully"
400 Requisição inválida - erro de validação
Schema: GetApplicationLinkBadRequest
success boolean
message string
Valores possíveis:
Campos obrigatórios ausentesID de produto reservado inválidoID de agência inválido
401 Não autorizado - token inválido ou ausente
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
403 Proibido - a reserva não pertence à sua agência
Schema: GetApplicationLinkForbidden
success boolean
message string
Valores possíveis:
A reserva não pertence à sua agência
404 Produto reservado ou agência não encontrado
Schema: GetApplicationLinkNotFound
success boolean
message string
Valores possíveis:
Produto reservado não encontradoAgência não encontrada
Experimente
curl -X POST "https://api.yourvisa.ai/agents-api/get-application-link" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"bookedProductId": "string",
"langKey": "en",
"isIframe": true
}'
get /agents-api/get-products-history
Obter histórico de produtos
Retorna produtos reservados para a agência autenticada. Filtros opcionais são combinados com AND. Campos de viajante consultam applicantDetails em cada reserva. Cada item inclui paymentDetails (custos do visto e quem paga). Se o administrador do YourVisa habilitar o compartilhamento de dados do solicitante para a agência, cada item também inclui applicantDetails completos e URLs de download com tempo limitado para applicantUploads. As URLs de download expiram após 5 minutos e podem ser obtidas com um GET HTTPS normal. Os resultados são ordenados por dateCreated decrescente (mais recentes primeiro). No máximo 100 itens são retornados. O ambiente é inferido do token Bearer: tokens de sandbox (isApiSandbox: true de generate-programmatic-token) retornam apenas reservas de teste; tokens de produção retornam apenas reservas que não são de teste.
Requer Autenticação (Token Bearer)
Parâmetros
dateStart querystring
Limite inferior opcional para dateCreated da reserva (data ISO ou datetime). Omita com dateEnd para deixar o intervalo aberto no lado inferior.
dateEnd querystring
Limite superior opcional para dateCreated da reserva (data ISO ou datetime). Omita com dateStart para deixar o intervalo aberto no lado superior.
bookedProductId querystring
ObjectId do MongoDB do produto reservado (hex de 24 caracteres)
statusCode query
Filtro de status de reserva voltado para a agência (mesmos valores de status em cada item).
Valores possíveis:
waitingForTravelerToFill pleaseFillVisaDetails wereProcessingYourVisa missingVisaDetails waitingForTravelerResponse handledByOurTeam governmentReviewing applicationNotApproved fraudFlagged visaProcessFinished refundInProgress refundCompleted
fromCountry querystring
País de origem na reserva (correspondência exata sem diferenciar maiúsculas/minúsculas)
toCountry querystring
País de destino na reserva (correspondência exata sem diferenciar maiúsculas/minúsculas)
visaType querystring
Tipo de visto na reserva (correspondência exata sem diferenciar maiúsculas/minúsculas)
firstName querystring
Correspondência de substring em applicantDetails.firstName (sem diferenciar maiúsculas/minúsculas)
lastName querystring
Correspondência de substring em applicantDetails.lastName (sem diferenciar maiúsculas/minúsculas)
email querystring
Correspondência de substring em applicantDetails.email (sem diferenciar maiúsculas/minúsculas)
customKey1 querystring
Correspondência exata em customKeys.customKey1. Use para dados de rastreamento ou consulta definidos pelo parceiro.
customKey2 querystring
Correspondência exata em customKeys.customKey2. Recomendado para um ID de reserva externo do parceiro.
customKey3 querystring
Correspondência exata em customKeys.customKey3. Recomendado para um ID de viajante externo do parceiro.
customKey4 querystring
Correspondência exata em customKeys.customKey4. Recomendado para um ID de viagem externo do parceiro.
customKey5 querystring
Correspondência exata em customKeys.customKey5. Use para contexto extra do parceiro quando necessário.
Respostas
200 Resposta bem-sucedida
Schema: GetHistoryOfProductsResponse
success boolean
Exemplo true
message string
Presente quando nenhuma reserva corresponde aos filtros (success ainda é true).
Exemplo "There are no matching products"
bookedProducts array
Reservas mais recentes primeiro; limitado a 100 itens.
Array de objeto(clique para ver propriedades)
400 Requisição inválida
Schema: GetHistoryOfProductsBadRequest
success boolean
Padrão: false
message string
Exemplos incluem dateStart/dateEnd inválidos, data inicial após data final, bookedProductId inválido, statusCode inválido.
401 Não autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
404 Não encontrado
500 Erro interno do servidor
Experimente
curl -X GET "https://api.yourvisa.ai/agents-api/get-products-history" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
Pagamentos instantâneos: complete aplicações dentro da sua plataforma
Use este fluxo quando quiser que o viajante pague no YourVisa antes da aplicação completa do visto, e depois retorne à sua plataforma para completar a aplicação dentro de um iframe do YourVisa.
Pagamento InstantâneoSua PlataformaIframe
Detalhes
Passo 1: Verifique produtos de visto
Chame GET /agents-api/get-products-from-countries?from={from}&to={to} para encontrar produtos disponíveis. Use o productId selecionado na URL de entrada do checkout.
Passo 2: Inicie o checkout instantâneo
Envie o viajante para https://www.yourvisa.ai/instant-visa-checkout (autônomo) ou https://www.yourvisa.ai/iframe/instant-visa-checkout (embutido no seu site) com productId, affiliatedAgencyId, travelerClient, isInstantPayment=true, campos opcionais de preenchimento do viajante e customKey1..5. productId é usado na entrada porque bookedProductId não existe até o checkout criar a reserva.
Passo 2A: URL de checkout web
Passo 2A-iframe: URL de checkout web embutida
Passo 2B: URL de checkout do app
Passo 2C: Parâmetros do checkout
travelerClient é web ou app. Use web quando o viajante começa pelo seu site. Use app quando o viajante começa pelo seu aplicativo móvel e o pagamento abre em uma aba externa do navegador. travelerFirstName, travelerLastName, travelerEmail e travelerPhone são campos opcionais de preenchimento. customKey1..5 são seus campos de referência, por exemplo, ID de usuário externo, ID de pedido, ID de viajante, ID de viagem, campanha ou fonte.
Passo 3: Após o pagamento
O comportamento depende da configuração de handoff de pagamento instantâneo da sua agência (configurada pelo YourVisa — entre em contato para habilitar ou alterar): • Continuar no YourVisa (padrão): o viajante continua o assistente de visto no YourVisa. • Retornar ao parceiro: o viajante vê uma tela de pagamento concluído em vez de continuar no YourVisa. Se o YourVisa configurou uma URL de redirecionamento do parceiro para sua agência, ele é enviado para lá após uma breve contagem regressiva com bookedProductId, productId, paymentStatus=paid e quaisquer customKey1..5 não vazios — tanto para travelerClient=web quanto para travelerClient=app. Se nenhuma URL de redirecionamento estiver configurada, ele vê uma tela de agradecimento e retorna ao seu app ou site por conta própria. Embutidos de iframe recebem instant_payment_complete na página pai quando o handoff do parceiro está habilitado. O YourVisa também envia ao viajante um e-mail de confirmação de pagamento recebido com a marca da sua agência.
Passo 3A: Exemplo de URL de retorno web
https://partner.example.com/visa/payment-complete?bookedProductId={bookedProductId}&productId={productId}&paymentStatus=paid&customKey1={externalUserId}&customKey2={externalBookingId}&customKey3={externalTravelerId} As URLs de redirecionamento são configuradas pelo YourVisa para sua agência — entre em contato com o suporte para solicitar ou atualizar a sua.
Passo 3B: Consulta de reserva no app
Após o viajante retornar ao seu app, use suas chaves personalizadas originais para encontrar a reserva paga. Exemplo: GET /agents-api/get-products-history?customKey1={externalUserId}&customKey2={externalBookingId}. Os filtros usam correspondência exata, são limitados à sua agência e são combinados com outros filtros opcionais usando lógica AND. Use o bookedProducts[0]._id retornado como bookedProductId.
Passo 4: Obtenha o link de aplicação do iframe
Chame POST /agents-api/get-application-link com {"bookedProductId": "66a9ebe9572eb2904562c3ae", "langKey": "en", "isIframe": true}. A resposta inclui applicationUrl.
Passo 5: Embuta o iframe
<iframe src="{applicationUrl}" width="100%" height="700" frameborder="0"></iframe>
Passo 6: Aguarde a conclusão
Depois que o YourVisa envia a solicitação dentro do iframe, ele exibe uma mensagem de Solicitação enviada e envia application_submitted para a página pai. Sua plataforma decide o que acontece em seguida: manter o iframe aberto, fechá-lo ou substituí-lo pela sua própria tela de status de viagem/solicitação.
Dicas para Implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de ir para produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha em código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
get /agents-api/download-evisa-document
Baixar documento de eVisa para uma reserva
Retorna uma URL pré-assinada de curta duração para baixar o documento de eVisa de um produto reservado. A reserva deve pertencer à agência autenticada. Agentes que não são gerentes só podem acessar reservas que criaram. Retorna 404 quando a reserva ainda não possui um documento de eVisa anexado. O ambiente é inferido do token Bearer: tokens de sandbox só podem baixar eVisas para reservas de teste; tokens de produção só podem baixar eVisas para reservas que não são de teste.
Requer Autenticação (Token Bearer)
Parâmetros
bookedProductId Obrigatórioquerystring
ObjectId MongoDB do produto reservado (hex de 24 caracteres)
Respostas
200 URL pré-assinada de download gerada com sucesso
Schema: DownloadEvisaDocumentResponse
success boolean
Exemplo true
data objeto
400 Requisição inválida - bookedProductId ausente ou inválido
Schema: DownloadEvisaDocumentBadRequest
success boolean
Padrão: false
message string
Exemplo "bookedProductId query parameter is required"
401 Não autorizado - token inválido ou ausente
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
403 Proibido - reserva não encontrada ou acesso negado
Schema: DownloadEvisaDocumentForbidden
success boolean
Padrão: false
message string
Exemplo "Booking not found or access denied"
404 Nenhum documento de eVisa disponível para esta reserva
Schema: DownloadEvisaDocumentNotFound
success boolean
Padrão: false
message string
Exemplo "No eVisa document available for this booking"
errorCode string
Valores possíveis:
EVISA_DOCUMENT_NOT_AVAILABLEEVISA_DOCUMENT_FILE_NOT_FOUND
hasEvisaDocument boolean
false quando a reserva ainda não tem eVisa anexado; true quando os metadados existem, mas o arquivo está ausente
Exemplo "false"
Experimente
curl -X GET "https://api.yourvisa.ai/agents-api/download-evisa-document" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
post /agents-api/create-corporate
Criar uma conta corporativa conectada
Cria uma empresa sob sua agência e seu identificador corporativo de parceiro. O identificador é armazenado como affiliatePartnerCorporateKey e pode ser usado com corporateIdentifier em outros endpoints corporativos. A pessoa de contato que você fornece também é criada como gerente corporativo.
Requer Autenticação (Token Bearer)
Corpo da Requisição
Schema: CreateCorporateRequest
corporateName Obrigatóriostring
partnerCorporateIdentifier Obrigatóriostring
Identificador corporativo de propriedade do parceiro, único dentro da sua agência
contact Obrigatórioobjeto
Contato principal que também é criado como gerente corporativo
Respostas
201 Empresa criada com sucesso
Schema: CreateCorporateResponse
success boolean
Exemplo true
corporateId string
partnerCorporateIdentifier string
400 Erro de validação
Schema: BadRequest
message string
errorCode string
Padrão: BadRequest
401 Não autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
409 Identificador corporativo de parceiro já em uso
Schema: BadRequest
message string
errorCode string
Padrão: BadRequest
Experimente
curl -X POST "https://api.yourvisa.ai/agents-api/create-corporate" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"corporateName": "string",
"partnerCorporateIdentifier": "string",
"contact": {}
}'
get /agents-api/get-corporates
Listar empresas da agência
Lista as empresas da agência autenticada. Filtros opcionais são parâmetros de consulta (sem corpo de requisição). Até 100 resultados por página, ordenados do mais recente para o mais antigo. hasPaymentMethod é true quando a empresa tem cobrança configurada para pagar reservas.
Exemplo de URL de requisição
https://api.yourvisa.ai/agents-api/get-corporates?partnerCorporateIdentifier=acme-001&corporateName=Acme&page=1
Requer Autenticação (Token Bearer)
Parâmetros
corporateId querystring
ObjectId MongoDB corporativo YourVisa
partnerCorporateIdentifier querystring
Identificador corporativo de propriedade do parceiro (correspondência exata)
corporateName querystring
Correspondência parcial de nome, sem diferenciar maiúsculas de minúsculas
page queryinteiro
Número da página (padrão 1)
Respostas
200 Empresas listadas com sucesso
Schema: GetCorporatesResponse
success boolean
Exemplo true
corporates array
Matriz de objeto(clique para ver propriedades)
page inteiro
pageSize inteiro
totalCount inteiro
totalPages inteiro
400 Erro de validação
Schema: BadRequest
message string
errorCode string
Padrão: BadRequest
401 Não autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
Experimente
curl -X GET "https://api.yourvisa.ai/agents-api/get-corporates?partnerCorporateIdentifier=acme-001&corporateName=Acme&page=1" \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
post /agents-api/create-corporate-payment-setup-link
Configuração de link de pagamento corporativo
Cria um link seguro para o gerente corporativo adicionar um cartão de crédito em uma página hospedada pelo YourVisa. O link expira 12 horas após a criação. corporateIdentifier aceita tanto o ObjectId corporativo YourVisa quanto o identificador corporativo do seu parceiro. Defina isEmbeddedInPartnerPage como true ao incorporar a página de configuração no seu próprio site via iframe ou WebView móvel—a URL retornada tem como alvo /iframe/corporate-payment-setup/{token}, um layout sem barra de navegação que mostra o logotipo YourVisa.ai e links de política legal. O gerente deve aceitar os termos do YourVisa.ai antes de salvar um cartão. Depois que o gerente salva um cartão, a página incorporada emite um evento de host corporate_payment_method_saved. O langKey opcional define o idioma da interface na página de configuração (padrão: en).
Requer Autenticação (Token Bearer)
Corpo da Requisição
Schema: CreateCorporatePaymentSetupLinkRequest
corporateIdentifier Obrigatóriostring
ObjectId corporativo YourVisa ou identificador corporativo do parceiro
isEmbeddedInPartnerPage boolean
Quando true, setupUrl tem como alvo /iframe/corporate-payment-setup/{token} para incorporação em uma página de parceiro sem a barra de navegação YourVisa.
langKey string
Idioma opcional da interface para a página de configuração: en (inglês, padrão), de (alemão), es (espanhol), ru (russo), he (hebraico), ar (árabe), fr (francês)
Valores possíveis:
endeesruhearfr
Respostas
201 Link de configuração criado com sucesso
Schema: CreateCorporatePaymentSetupLinkResponse
success boolean
Exemplo true
token string
setupUrl string
URL completa para enviar ao gerente corporativo
path string
Exemplo "/corporate-payment-setup/abc123?langKey=de"
expiresAt string
Tempo de expiração do link (12 horas após a criação)
corporateId string
partnerCorporateIdentifier stringnull
isEmbeddedInPartnerPage boolean
Se a página de configuração é destinada à incorporação via iframe
langKey string
Idioma resolvido da interface para a página de configuração
Valores possíveis:
endeesruhearfr
400 Erro de validação
Schema: BadRequest
message string
errorCode string
Padrão: BadRequest
401 Não autorizado
Schema: Unauthorized
success boolean
Padrão: false
message string
Valores possíveis:
Você não tem credenciaisVocê não tem permissãoToken de acesso inválidoSeu token de acesso não é válido ou expirou
403 A empresa não está configurada para cobrança paga pela organização
Schema: BadRequest
message string
errorCode string
Padrão: BadRequest
404 Empresa não encontrada
Schema: BadRequest
message string
errorCode string
Padrão: BadRequest
Detalhes
Etapa 1: Criar link incorporado
POST /agents-api/create-corporate-payment-setup-link
{
"corporateIdentifier": "acme-001",
"isEmbeddedInPartnerPage": true,
"langKey": "he"
}
Use setupUrl from the 201 response (targets /iframe/corporate-payment-setup/{token}).
Etapa 2: Carregar o iframe
<iframe
src="{setupUrl}"
width="100%"
height="700"
frameborder="0"
style="border: none; border-radius: 8px;"
></iframe>
Etapa 3: Ouvir no navegador (pai do iframe)
window.addEventListener("message", (event) => {
// Optional but recommended: verify the iframe origin in production
if (event.origin !== "https://www.yourvisa.ai") {
return;
}
if (
event.data?.source === "yourvisaai-iframe" &&
event.data?.event === "corporate_payment_method_saved"
) {
console.log("Card saved:", event.data.data);
}
});
Etapa 4: Ouvir no React Native WebView
<WebView
source={{ uri: setupUrl }}
onMessage={(event) => {
const payload = JSON.parse(event.nativeEvent.data);
if (
payload?.source === "yourvisaai-iframe" &&
payload?.event === "corporate_payment_method_saved"
) {
console.log("Card saved:", payload.data);
}
}}
/>
Estrutura do evento
{source: "yourvisaai-iframe", event: "corporate_payment_method_saved", data: {corporateId: "...", corporateName: "...", timestamp: "2026-07-02T13:25:50.110Z"}}
Quando é disparado
Only when isEmbeddedInPartnerPage was true on link creation and after the server confirms card save on POST /corporate-payment-setup/:token/complete.
Experimente
curl -X POST "https://api.yourvisa.ai/agents-api/create-corporate-payment-setup-link" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-H "Content-Type: application/json" \
-d '{
"corporateIdentifier": "string",
"isEmbeddedInPartnerPage": true,
"langKey": "en"
}'
Criando um link para uma agência afiliada com produto específico
Esta seção explica como construir e usar uma URL especializada para incorporar a solicitação de visto para agências e agentes afiliados.
Uso de Agência Afiliada
Detalhes
Exemplo de URL com productId
Exemplo de URL para qualquer produto
Domínio
https://www.yourvisa.ai/ - A URL base do serviço, que deve ser incorporada usando um iframe ou aberta diretamente.
productId
Representa o ID único do produto que está sendo reservado.
affiliatedAgencyId
Representa o ID único da agência afiliada ou parceiro que integra o serviço.
affiliatedAgentId
(Campo opcional) Identifica o agente específico dentro da agência afiliada que está gerando o visto.
customKey1-5
(Opcional) Parâmetros de rastreamento personalizados. Você pode incluir até 5 chaves personalizadas (customKey1, customKey2, customKey3, customKey4, customKey5) para fins adicionais de rastreamento ou identificação. Elas serão armazenadas na reserva e enviadas via webhooks.
Dicas para Implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de ir para produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha em código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Criando um link de página de viajante personalizada com informações de país pré-preenchidas
Esta seção explica como construir uma URL especializada que pré-preenche a busca de visto com países de origem e destino específicos, juntamente com o rastreamento de agência afiliada.
Uso de Agência AfiliadaLinks Personalizados
Detalhes
Exemplo de URL com países
Exemplo de URL mínima
https://www.yourvisa.ai/traveler/IL/US
Domínio
https://www.yourvisa.ai/ - A URL base do serviço.
from
(Obrigatório) Código de país de duas letras representando o país de origem do viajante ou nacionalidade do passaporte (ex.: 'IL' para Israel, 'US' para Estados Unidos).
to
(Obrigatório) Código de país de duas letras representando o país de destino (ex.: 'US' para Estados Unidos, 'GB' para Reino Unido).
visaType
(Opcional) Tipo de visto que está sendo solicitado (ex.: 'tourist', 'business', 'student'). Se não for especificado, o padrão é 'tourist'.
affiliatedAgencyId
Representa o ID único da agência afiliada ou parceiro que integra o serviço.
affiliatedAgentId
(Campo opcional) Identifica o agente específico dentro da agência afiliada que está gerando o visto.
customKey1-5
(Opcional) Parâmetros de rastreamento personalizados. Você pode incluir até 5 chaves personalizadas (customKey1, customKey2, customKey3, customKey4, customKey5) para fins adicionais de rastreamento ou identificação. Elas serão armazenadas na reserva e enviadas via webhooks.
Dicas para Implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de ir para produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha em código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Ferramenta interativa
Baixar o testador de iframe
Obtenha uma página HTML autônoma para testar todos os fluxos de iframe incorporados localmente — busca de visto, assistente, checkout instantâneo, configuração de pagamento corporativo e eventos postMessage. Download iframe tester
Visão geral e eventos do host
Embuta os fluxos do YourVisa no seu site ou WebView móvel sem a barra de navegação ou rodapé do YourVisa. Use URLs /iframe/* para incorporação; use as URLs sem iframe ao abrir em uma nova aba do navegador. Superfícies de pagamento incorporadas em um iframe (checkout instantâneo, configuração de cartão corporativo e a etapa de pagamento do assistente de visto) também mostram o logotipo YourVisa.ai e links para termos, privacidade, reembolso e políticas de cookies. A pesquisa de vistos e as etapas do assistente que não envolvem pagamento não incluem essa interface de pagamento.
Iframe Incorporado
Detalhes
Caminho base do iframe
Todas as rotas de iframe estão sob https://www.yourvisa.ai/iframe/.... Elas suprimem a barra de navegação e o rodapé principais do YourVisa.
Marca da página de pagamento
As superfícies de pagamento incorporadas mostram o logotipo YourVisa.ai e links de políticas legais: /iframe/instant-visa-checkout, /iframe/corporate-payment-setup/{token} e a etapa de pagamento dentro de /iframe/visa-wizard. A pesquisa de vistos e outras etapas do assistente não mostram.
Ouça eventos (navegador)
window.addEventListener("message", (event) => { if (event.origin !== "https://www.yourvisa.ai") { return; } if (event.data?.source !== "yourvisaai-iframe") { return; } console.log(event.data.event, event.data.data); });
Evento: application_submitted
{source: "yourvisaai-iframe", event: "application_submitted", data: {bookedProductId: "...", productId: "...", timestamp: "2026-07-04T10:30:00.000Z", ...}} — fired after the traveler submits the visa application inside the iframe.
Evento: instant_payment_complete
{source: "yourvisaai-iframe", event: "instant_payment_complete", data: {bookedProductId: "66a9ebe9572eb2904562c3ae", productId: "68e94b68f0022238439d7d4b", paymentStatus: "paid", redirectUrl: "https://partner.example.com/visa/payment-complete?...", timestamp: "2026-07-04T10:30:00.000Z"}} — fired immediately on the partner handoff payment-complete screen when instant checkout runs inside an iframe, before any automatic redirect. redirectUrl is included when configured.
Evento: corporate_payment_method_saved
{source: "yourvisaai-iframe", event: "corporate_payment_method_saved", data: {corporateId: "...", corporateName: "...", timestamp: "2026-07-02T13:25:50.110Z"}} — fired after a corporate manager saves a card on the embedded payment-setup page.
React Native WebView
<WebView source={{ uri: iframeUrl }} onMessage={(event) => { const payload = JSON.parse(event.nativeEvent.data); if (payload?.source === "yourvisaai-iframe") { console.log(payload.event, payload.data); } }} />
Parâmetros de consulta opcionais
Em /iframe/traveler, /iframe/visa-wizard e /iframe/instant-visa-checkout, você pode anexar: customKey1..5, langKey (ex.: &langKey=he).
Suporte a idiomas (URLs de iframe diretas)
Anexe langKey como um parâmetro de consulta nas URLs de iframe que você mesmo construir. Valores suportados: en (padrão), de, es, ru, he, ar, fr. Pesquisa de viajante: https://www.yourvisa.ai/iframe/traveler?affiliatedAgencyId={agencyId}&customKey1={value1}&langKey=he Checkout instantâneo: https://www.yourvisa.ai/iframe/instant-visa-checkout?productId={productId}&affiliatedAgencyId={agencyId}&isInstantPayment=true&travelerClient=web&customKey1={value1}&langKey=de
Suporte a idiomas (URL do assistente de visto)
Anexe langKey como um parâmetro de consulta ao construir a URL do iframe diretamente. https://www.yourvisa.ai/iframe/visa-wizard?productId={productId}&affiliatedAgencyId={agencyId}&customKey1={value1}&langKey=de
Suporte a idiomas (link de aplicação assinado)
Se você já tiver um bookedProductId e precisar de um link tokenizado, passe langKey no POST /agents-api/get-application-link. Use applicationUrl da resposta como o src do iframe.
Suporte a idiomas (configuração de pagamento corporativo)
Passe langKey no POST /agents-api/create-corporate-payment-setup-link. A resposta setupUrl o inclui quando fornecido. {"corporateIdentifier": "acme-001", "isEmbeddedInPartnerPage": true, "langKey": "he"} Exemplo de caminho setupUrl: /iframe/corporate-payment-setup/{token}?langKey=he
Marca personalizada
Se sua agência tiver a marca personalizada ativada, as rotas de iframe aplicam automaticamente sua experiência com a marca.
Dicas para implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de entrar em produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha no código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Assistente de aplicação de visto
Embuta o assistente de aplicação de visto quando você já sabe qual produto o viajante deve solicitar. Aponte o iframe para /iframe/visa-wizard com productId e seu affiliatedAgencyId.
Iframe IncorporadoAplicação de Visto
Detalhes
URL direta do iframe
https://www.yourvisa.ai/iframe/visa-wizard?productId={productId}&affiliatedAgencyId={agencyId}
Exemplo
Incorporar
<iframe src="https://www.yourvisa.ai/iframe/visa-wizard?productId={productId}&affiliatedAgencyId={agencyId}&customKey1={value1}&customKey2={value2}&langKey=en" width="100%" height="700" frameborder="0" style="border: none; border-radius: 8px;" ></iframe>
Parâmetros obrigatórios
productId — o produto de visto que o viajante está solicitando. affiliatedAgencyId — o ID da sua agência para que a reserva seja atribuída à sua conta.
Parâmetros opcionais
customKey1..5, langKey (ex.: &langKey=he).
Autônomo vs iframe
Use /iframe/visa-wizard para incorporar no seu site. Use /visa-wizard com os mesmos parâmetros de consulta ao abrir em uma nova aba do navegador.
Ouça a conclusão
Após o envio, o iframe envia application_submitted para a página pai.
Já tem um bookedProductId?
Se o viajante já pagou ou você criou uma reserva via API, use POST /agents-api/get-application-link com isIframe: true. Isso retorna um applicationUrl assinado com um token para a reserva existente.
Dicas para implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de entrar em produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha no código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Checkout de pagamento instantâneo
Embuta o pagamento instantâneo quando você já sabe o productId.
Carregue o checkout em /iframe/instant-visa-checkout dentro do seu site ou aplicativo. A página mostra o logotipo YourVisa.ai e links para nossas políticas legais.
Após o pagamento, sua integração segue um de três caminhos — entre em contato com o YourVisa para configurar a opção que se adequa ao seu produto.
Iframe IncorporadoPagamento Instantâneo
Detalhes
Após o pagamento — opção 1: Redirecionar para seu site
O YourVisa envia o viajante para uma URL de redirecionamento que você fornece antecipadamente. Os parâmetros de consulta incluem bookedProductId, productId, paymentStatus=paid e quaisquer customKey1..5 não vazios. Funciona tanto para travelerClient=web quanto para travelerClient=app. Entre em contato com o suporte do YourVisa para solicitar ou alterar sua URL de redirecionamento — ela não pode ser definida pela API.
Após o pagamento — opção 2: Permanecer incorporado (evento de iframe)
Quando o checkout é executado dentro de um iframe, sua página pai recebe uma postMessage instant_payment_complete assim que o pagamento é bem-sucedido. Use isso para fechar o iframe, mostrar sua própria confirmação ou continuar na sua interface. Veja Ouça a conclusão do pagamento e Evento: instant_payment_complete abaixo.
Após o pagamento — opção 3: Continuar o assistente de visto
O viajante segue diretamente para o assistente de visto do YourVisa no mesmo iframe ou aba — sem redirecionamento e sem tela de transferência para o parceiro. Nenhum instant_payment_complete é enviado no momento do pagamento. Ouça application_submitted depois que o viajante terminar e enviar o formulário de visto.
Combinando as opções 1 e 2
Quando uma URL de redirecionamento está configurada, o checkout incorporado ainda dispara instant_payment_complete imediatamente, mostra uma breve tela de pagamento concluído e depois redireciona dentro do iframe após alguns segundos. Isso dá tempo à sua página para fechar o iframe ou lidar com o evento antes do redirecionamento.
Incorporar checkout
<iframe id="yourvisa-instant-checkout" src="https://www.yourvisa.ai/iframe/instant-visa-checkout?productId={productId}&affiliatedAgencyId={agencyId}&travelerClient=web&isInstantPayment=true&langKey=en&travelerFirstName={firstName}&travelerLastName={lastName}&travelerEmail={email}&travelerPhone={phone}&customKey1={externalUserId}&customKey2={externalBookingId}&customKey3={externalTravelerId}&customKey4={externalTripId}&customKey5={extraContext}" width="100%" height="700" frameborder="0" style="border: none; border-radius: 8px;" ></iframe>
Parâmetros obrigatórios
productId, affiliatedAgencyId, isInstantPayment=true, travelerClient (web ou app).
Parâmetros opcionais
customKey1..5, langKey (ex.: &langKey=he), travelerFirstName, travelerLastName, travelerEmail, travelerPhone.
travelerClient
web — o viajante começa pelo seu site ou iframe incorporado. app — o viajante começa pelo seu aplicativo móvel nativo; o pagamento pode abrir em uma aba externa do navegador ou WebView.
Nenhuma URL de redirecionamento configurada
Se a transferência para o parceiro estiver ativada, mas nenhuma URL de redirecionamento estiver definida, os viajantes veem uma tela de agradecimento informando que o pagamento foi recebido e que devem retornar ao seu aplicativo ou site. Encontre a reserva paga com GET /agents-api/get-products-history ou retome com POST /agents-api/get-application-link.
Ouça a conclusão do pagamento (navegador)
window.addEventListener("message", (event) => { if (event.origin !== "https://www.yourvisa.ai") { return; } if ( event.data?.source === "yourvisaai-iframe" && event.data?.event === "instant_payment_complete" ) { const { bookedProductId, productId, paymentStatus, redirectUrl } = event.data.data; console.log("Instant payment complete", { bookedProductId, productId, paymentStatus, redirectUrl }); // Close the iframe now, or let the traveler follow the in-iframe redirect } });
Evento: instant_payment_complete
{source: "yourvisaai-iframe", event: "instant_payment_complete", data: {bookedProductId: "66a9ebe9572eb2904562c3ae", productId: "68e94b68f0022238439d7d4b", paymentStatus: "paid", redirectUrl: "https://partner.example.com/visa/payment-complete?...", timestamp: "2026-07-04T10:30:00.000Z"}} Fired immediately on the partner handoff payment-complete screen when checkout runs inside an iframe — before any automatic redirect. redirectUrl is included when YourVisa configured one for your agency.
Exemplo completo de integração
<iframe id="yourvisa-instant-checkout" src="https://www.yourvisa.ai/iframe/instant-visa-checkout?productId={productId}&affiliatedAgencyId={agencyId}&travelerClient=web&isInstantPayment=true&customKey1={externalUserId}&customKey2={externalBookingId}" width="100%" height="700" frameborder="0" style="border: none; border-radius: 8px;" ></iframe> <script> window.addEventListener("message", (event) => { if (event.origin !== "https://www.yourvisa.ai") { return; } if (event.data?.source !== "yourvisaai-iframe") { return; } if (event.data.event === "instant_payment_complete") { const { bookedProductId, productId } = event.data.data; document.getElementById("yourvisa-instant-checkout").style.display = "none"; // Resume in your UI, or load the wizard iframe with POST /agents-api/get-application-link } }); </script>
Exemplo de URL de redirecionamento
Evento: application_submitted
{ "source": "yourvisaai-iframe", "event": "application_submitted", "data": { "bookedProductId": "6a493c9b8f46d0e57c31bd65", "productId": "68e94b68f0022238439d7d4b", "visaType": "tourist", "timestamp": "2026-07-04T17:08:29.646Z" } } Fired inside an iframe when the traveler submits the visa application after instant payment and continuing through the wizard. This is the completion signal for option 3 — not instant_payment_complete. applicantName may also be included when available.
Ouça o envio da aplicação (navegador)
window.addEventListener("message", (event) => { if (event.origin !== "https://www.yourvisa.ai") { return; } if ( event.data?.source === "yourvisaai-iframe" && event.data?.event === "application_submitted" ) { const { bookedProductId, productId, visaType } = event.data.data; console.log("Visa application submitted", { bookedProductId, productId, visaType }); // Close the iframe, show your own confirmation, or refresh trip status } });
Dicas para implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de entrar em produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha no código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Configuração de método de pagamento corporativo
Embuta a página de configuração de cartão corporativo para que um gerente corporativo possa salvar um método de pagamento dentro do seu site. Requer POST /agents-api/create-corporate-payment-setup-link com isEmbeddedInPartnerPage: true. A página incorporada mostra o logotipo YourVisa.ai e links de políticas legais.
Iframe IncorporadoCorporativo
Detalhes
Etapa 1: Criar link incorporado
POST /agents-api/create-corporate-payment-setup-link { "corporateIdentifier": "acme-001", "isEmbeddedInPartnerPage": true, "langKey": "he" } langKey is set in the request body. Use setupUrl from the 201 response as the iframe src (targets /iframe/corporate-payment-setup/{token}?langKey=he).
Etapa 2: Carregar o iframe
<iframe src="{setupUrl}" width="100%" height="700" frameborder="0" style="border: none; border-radius: 8px;" ></iframe>
Parâmetros opcionais
Apenas langKey — definido no corpo do POST ao criar o link (ex.: "langKey": "he"). O setupUrl retornado o inclui. customKey1..5 não se aplicam a este fluxo.
Etapa 3: Ouvir no navegador
window.addEventListener("message", (event) => { if (event.origin !== "https://www.yourvisa.ai") { return; } if ( event.data?.source === "yourvisaai-iframe" && event.data?.event === "corporate_payment_method_saved" ) { console.log("Card saved:", event.data.data); } });
Quando dispara
Somente quando isEmbeddedInPartnerPage era true na criação do link e após o servidor confirmar o salvamento do cartão.
Dicas para implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de entrar em produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha no código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Servidor MCP — conecte assistentes de IA ao YourVisa.ai
O servidor MCP (Model Context Protocol) do YourVisa permite que qualquer assistente de IA compatível — Claude Desktop, Cursor e outros — consulte requisitos de visto, taxas e gere links de aplicação em tempo real. É um serviço HTTP remoto usando o transporte HTTP Streamable e requer uma chave de API.
Integração MCPIA
Detalhes
1. Obtenha uma chave de API
Faça login na sua conta YourVisa.ai, vá para Painel → aba API MCP e clique em 'Nova Chave'. Copie e salve — ela é mostrada apenas uma vez.
2. Adicione à configuração do seu cliente MCP
Adicione o bloco de configuração mostrado abaixo ao arquivo de configuração do seu cliente MCP (ex.: claude_desktop_config.json para Claude Desktop, ou as configurações de MCP no Cursor).
3. Ferramentas disponíveis
search_visas · get_visa_details · get_visa_requirements · get_visa_fees · get_application_link · get_country_info
4. Sem estado e somente leitura
O servidor MCP apenas lê dados. Nenhuma reserva ou gravação é realizada via MCP.
5. Limites de taxa
Plano gratuito: 60 solicitações / minuto.
Exemplo de resposta
{
"mcpServers": {
"YourVisa.ai": {
"url": "https://mcp.yourvisa.ai/api/mcp",
"headers": {
"Authorization": "Bearer yv_mcp_your_key_here"
}
}
}
}
Dicas para implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de entrar em produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha no código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.
Defina uma URL de webhook para receber notificações quando aplicações de visto forem enviadas
Nas configurações da sua conta, você pode definir uma URL de webhook para ser notificado sempre que sua agência enviar uma aplicação de visto. Cada notificação inclui os custos do visto e quem paga.
Configurações da ContaWebhook
Detalhes
Onde definir
Faça login no seu painel e vá para a aba 'Configurações da Conta'. Lá você pode adicionar ou atualizar sua URL de webhook.
Para que serve
Seu webhook será acionado toda vez que uma aplicação de visto for enviada pela sua agência. O payload inclui os custos do visto e se o viajante/empregado ou a empresa/agência paga.
Informações de pagamento
paymentDetails inclui os custos do visto (taxa governamental, taxa de serviço, taxa de velocidade de processamento e total) e quem paga. paidBy é CLIENT quando o viajante ou empregado paga, e AGENT quando a empresa ou agência paga. Se o administrador do YourVisa ativar o compartilhamento de dados do candidato para sua agência, o webhook também inclui applicantDetails e URLs de download com limite de tempo para cada arquivo em applicantUploads. Essas URLs expiram após 5 minutos e funcionam com um GET HTTPS normal do seu servidor.
Exemplo de uso
Você pode usar isso para sincronizar aplicações com seu CRM interno, enviar alertas ou executar lógica personalizada em novos envios.
Exemplo de resposta
{
"toCountry": "US",
"fromCountry": "IL",
"productId": "66a9ebe9572eb2904562c3ae",
"bookedProductId": "66b0aae9572eb2904562c3af",
"customKeys": {
"customKey1": "travel-file-9",
"customKey2": "string",
"customKey3": "string",
"customKey4": "string",
"customKey5": "string"
},
"dateCreated": 1710000000000,
"paymentDetails": {
"currency": "USD",
"govVisaCost": 35,
"productServiceFee": 100,
"partnerServiceFee": 0,
"processingSpeedFee": 20,
"partnerProcessingSpeedFee": 0,
"totalCost": 155,
"paymentStatus": "PAID",
"paidBy": "AGENT"
},
"applicantDetails": {},
"applicantUploads": {}
}
Dicas para implementação
- Sempre valide os parâmetros antes de construir a URL para evitar erros.
- Teste sua integração em um ambiente de desenvolvimento antes de entrar em produção.
- Mantenha suas credenciais de autenticação seguras e nunca as exponha no código do lado do cliente.
- Entre em contato com o suporte se precisar de assistência com a implementação.