# Criar Pedido com 3DS

## Criar Pagamento com 3DS

> Cria uma cobrança utilizando 3DS2. O objeto threeDSecure é obrigatório para transações 3DS.\
> ⚠️ IMPORTANTE: Caso a transação retorne como pendente (challenged = true), será necessário implementar um fluxo assíncrono com Step Up Challenge e polling para verificar o status final.

```json
{"openapi":"3.0.3","info":{"title":"API de 3D Secure (3DS)","version":"2.0.0"},"servers":[{"url":"https://api.barte.com","description":"Servidor de Produção (recomendado para testes 3DS)"},{"url":"https://sandbox-api.barte.com","description":"Servidor de Sandbox (limitações para 3DS)"}],"security":[{"X-Token-Api":[]}],"components":{"securitySchemes":{"X-Token-Api":{"type":"apiKey","name":"X-Token-Api","in":"header"}},"schemas":{"CreateOrderWith3DSRequest":{"type":"object","required":["startDate","value","installments","title","payment","threeDSecure","uuidBuyer"],"properties":{"startDate":{"type":"string","format":"date","description":"Data de início da cobrança"},"value":{"type":"number","format":"decimal","minimum":0.01,"description":"Valor da cobrança"},"installments":{"type":"integer","minimum":1,"maximum":12,"description":"Número de parcelas"},"urlCallBack":{"type":"string","format":"uri","description":"URL de callback para notificações"},"title":{"type":"string","maxLength":255,"description":"Título da cobrança"},"description":{"type":"string","maxLength":500,"description":"Descrição da cobrança"},"payment":{"$ref":"#/components/schemas/PaymentRequest"},"threeDSecure":{"$ref":"#/components/schemas/ThreeDSecureRequest"},"uuidBuyer":{"type":"string","format":"uuid","description":"UUID do comprador"}}},"PaymentRequest":{"type":"object","required":["method","card","fraudData"],"properties":{"method":{"type":"string","enum":["CREDIT_CARD_EARLY_SELLER"],"description":"Método de pagamento"},"card":{"$ref":"#/components/schemas/CardRequest"},"fraudData":{"$ref":"#/components/schemas/FraudDataRequest"},"storedCredential":{"$ref":"#/components/schemas/StoredCredentialRequest"}}},"CardRequest":{"type":"object","required":["cardToken","cvv"],"properties":{"cardToken":{"type":"string","format":"uuid","description":"Token do cartão"},"cvv":{"type":"string","pattern":"^\\d{3,4}$","description":"Código de segurança do cartão"}}},"FraudDataRequest":{"type":"object","required":["internationalDocument","name","email","phone","billingAddress"],"properties":{"internationalDocument":{"$ref":"#/components/schemas/DocumentRequest"},"name":{"type":"string","maxLength":255,"description":"Nome do portador do cartão"},"email":{"type":"string","format":"email","maxLength":150,"description":"Email do portador do cartão"},"phone":{"type":"string","pattern":"^\\d{10,15}$","description":"Telefone do portador do cartão"},"billingAddress":{"$ref":"#/components/schemas/BillingAddressRequest"},"additionalData":{"type":"object","nullable":true,"default":null,"description":"Objeto livre para enriquecer a análise de fraude com dados contextuais do pedido. Aceita qualquer estrutura JSON válida (ex: tipo de produto, canal de venda, informações do dispositivo)."}}},"DocumentRequest":{"type":"object","required":["documentNumber","documentType","documentNation"],"properties":{"documentNumber":{"type":"string","description":"Número do documento"},"documentType":{"type":"string","enum":["cpf","cnpj"],"description":"Tipo do documento"},"documentNation":{"type":"string","description":"País do documento"}}},"BillingAddressRequest":{"type":"object","required":["country","state","city","district","street","zipCode","number"],"properties":{"country":{"type":"string","description":"País"},"state":{"type":"string","description":"Estado"},"city":{"type":"string","description":"Cidade"},"district":{"type":"string","description":"Bairro"},"street":{"type":"string","description":"Rua"},"zipCode":{"type":"string","description":"CEP"},"number":{"type":"string","description":"Número"},"complement":{"type":"string","description":"Complemento"}}},"StoredCredentialRequest":{"type":"object","required":["initiator","reason"],"properties":{"initiator":{"type":"string","enum":["CARDHOLDER","MERCHANT"],"description":"Quem iniciou a transação: CARDHOLDER (cliente autorizou) ou MERCHANT (seller iniciou automaticamente)"},"reason":{"type":"string","enum":["INITIAL","RECURRING","INSTALLMENT","UNSCHEDULED"],"description":"Tipo de recorrência: INITIAL (primeira transação), RECURRING (cobrança fixa), INSTALLMENT (parcelamento), UNSCHEDULED (cobrança avulsa)"}}},"ThreeDSecureRequest":{"type":"object","required":["dataOnly","requiresLiabilityShift","setupId","redirectURL","requestorURL","browser","billingAddress","shippingAddress","cardHolder"],"properties":{"dataOnly":{"type":"boolean","description":"Se true, coleta apenas dados de risco sem challenge e sem liability shift"},"requiresLiabilityShift":{"type":"boolean","description":"Se true e não houver shift, cancela a transação"},"setupId":{"type":"string","format":"uuid","description":"ID da sessão 3DS criada anteriormente"},"redirectURL":{"type":"string","format":"uri","description":"URL de redirecionamento após Step Up Challenge"},"requestorURL":{"type":"string","format":"uri","description":"URL do solicitante"},"browser":{"$ref":"#/components/schemas/BrowserDataRequest"},"billingAddress":{"$ref":"#/components/schemas/ThreeDSAddressRequest"},"shippingAddress":{"$ref":"#/components/schemas/ThreeDSAddressRequest"},"cardHolder":{"$ref":"#/components/schemas/CardHolderRequest"}}},"BrowserDataRequest":{"type":"object","required":["ip","userAgent","acceptHeader","language","colorDepth","screenHeight","screenWidth","timeZoneOffset","javaEnabled","javaScriptEnabled"],"properties":{"ip":{"type":"string","format":"ipv4","description":"Endereço IP do cliente"},"userAgent":{"type":"string","description":"User Agent do navegador"},"acceptHeader":{"type":"string","description":"Header Accept do navegador"},"language":{"type":"string","description":"Idioma do navegador"},"colorDepth":{"type":"integer","description":"Profundidade de cor da tela"},"screenHeight":{"type":"integer","description":"Altura da tela"},"screenWidth":{"type":"integer","description":"Largura da tela"},"timeZoneOffset":{"type":"string","description":"Fuso horário em minutos"},"javaEnabled":{"type":"boolean","description":"Se Java está habilitado"},"javaScriptEnabled":{"type":"boolean","description":"Se JavaScript está habilitado"}}},"ThreeDSAddressRequest":{"type":"object","required":["city","country","streetNumber","zipCode","state","street"],"properties":{"city":{"type":"string","description":"Cidade"},"country":{"type":"string","description":"País"},"streetNumber":{"type":"string","description":"Número da rua"},"zipCode":{"type":"string","description":"CEP"},"state":{"type":"string","description":"Estado"},"street":{"type":"string","description":"Rua"}}},"CardHolderRequest":{"type":"object","required":["email","mobilePhone"],"properties":{"email":{"type":"string","format":"email","description":"Email do portador do cartão"},"mobilePhone":{"type":"string","description":"Telefone móvel do portador"}}},"OrderWith3DSResponse":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"UUID da ordem"},"status":{"type":"string","enum":["SENT","APPROVED","DECLINED","PENDING"],"description":"Status da ordem"},"title":{"type":"string","description":"Título da ordem"},"description":{"type":"string","description":"Descrição da ordem"},"value":{"type":"number","format":"decimal","description":"Valor da ordem"},"installments":{"type":"integer","description":"Número de parcelas"},"startDate":{"type":"string","format":"date","description":"Data de início"},"payment":{"type":"string","description":"Método de pagamento"},"customer":{"$ref":"#/components/schemas/CustomerResponse"},"idempotencyKey":{"type":"string","format":"uuid","description":"Chave de idempotência"},"subSellerPaymentResponse":{"type":"array","items":{"type":"object"},"description":"Dados de sub-sellers"},"charges":{"type":"array","items":{"$ref":"#/components/schemas/ChargeResponse"},"description":"Lista de cobranças"},"threeDSResponse":{"$ref":"#/components/schemas/ThreeDSResponse"}}},"CustomerResponse":{"type":"object","properties":{"document":{"type":"string","description":"Documento do cliente"},"type":{"type":"string","description":"Tipo do documento"},"documentCountry":{"type":"string","description":"País do documento"},"name":{"type":"string","description":"Nome do cliente"},"email":{"type":"string","format":"email","description":"Email do cliente"},"phone":{"type":"string","description":"Telefone do cliente"},"alternativeEmail":{"type":"string","format":"email","description":"Email alternativo"},"integrationCustomerId":{"type":"string","format":"uuid","description":"ID de integração do cliente"}}},"ChargeResponse":{"type":"object","properties":{"uuid":{"type":"string","format":"uuid","description":"UUID da cobrança"},"title":{"type":"string","description":"Título da cobrança"},"expirationDate":{"type":"string","format":"date","description":"Data de expiração"},"value":{"type":"number","format":"decimal","description":"Valor da cobrança"},"paymentMethod":{"type":"string","description":"Método de pagamento"},"status":{"type":"string","enum":["SCHEDULED","APPROVED","DECLINED","PENDING"],"description":"Status da cobrança"},"customer":{"type":"object","properties":{"document":{"type":"string"},"type":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"alternativeEmail":{"type":"string","format":"email"}}}}},"ThreeDSResponse":{"type":"object","properties":{"dataOnly":{"type":"boolean","description":"Indica se é apenas coleta de dados"},"requiresLiabilityShift":{"type":"boolean","description":"Indica se requer transferência de responsabilidade"},"redirectURL":{"type":"string","format":"uri","description":"URL de redirecionamento após Step Up Challenge"},"browser":{"$ref":"#/components/schemas/BrowserDataResponse"},"auth":{"$ref":"#/components/schemas/AuthResponse"},"challenged":{"type":"boolean","description":"Indica se é necessário Step Up Challenge"},"authenticated":{"type":"boolean","description":"Indica se foi autenticado"},"offeredType":{"type":"string","enum":["Challenge","Frictionless"],"description":"Tipo de autenticação oferecida"},"liabilityShift":{"type":"boolean","description":"Indica se houve transferência de responsabilidade"}}},"BrowserDataResponse":{"type":"object","properties":{"ip":{"type":"string","format":"ipv4","description":"Endereço IP do cliente"},"userAgent":{"type":"string","description":"User Agent do navegador"},"acceptHeader":{"type":"string","description":"Header Accept do navegador"},"language":{"type":"string","description":"Idioma do navegador"},"screenHeight":{"type":"integer","description":"Altura da tela"},"screenWidth":{"type":"integer","description":"Largura da tela"},"javaEnabled":{"type":"boolean","description":"Se Java está habilitado"},"javaScriptEnabled":{"type":"boolean","description":"Se JavaScript está habilitado"}}},"AuthResponse":{"type":"object","properties":{"action":{"type":"string","enum":["REDIRECT","APPROVE","DECLINE"],"description":"Ação a ser tomada (REDIRECT para Step Up Challenge)"},"token":{"type":"string","description":"JWT token para Step Up Challenge"},"stepUrl":{"type":"string","format":"uri","description":"URL para Step Up Challenge (quando challenged = true)"}}},"ErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetail"}},"metadata":{"$ref":"#/components/schemas/Metadata"}}},"ErrorDetail":{"type":"object","properties":{"status":{"type":"string"},"code":{"type":"string","enum":["PAYMENT-0000","PAYMENT-0500","PAYMENT-9999","BAR-7001","BAD_REQUEST","FORBIDDEN","METHOD_NOT_ALLOWED","NOT_ACCEPTABLE","UNSUPPORTED_MEDIA_TYPE","3DS-0001","3DS-0002","3DS-0003"]},"title":{"type":"string","enum":["BUSINESS_SELLER","BUSINESS_CHECKOUT","BUSINESS_COMMON","BUSINESS_SECURITY","BUSINESS_SUBSCRIPTION","INVALID_REQUEST_PARAM","BUSINESS_METRIC","BUSINESS_ACCOUNTANCY","BUSINESS_NOTIFICATION","BUSINESS_BARTE","BUSINESS_COMPANY","BUSINESS_INVOICE","BUSINESS_TRANSFER","BUSINESS_CARD","BUSINESS_ORDER","BUSINESS_3DS","card_not_supported"]},"description":{"type":"string"},"action":{"type":"string"},"additionalInfo":{"type":"object","additionalProperties":{"type":"object"}}}},"Metadata":{"type":"object","properties":{"totalRecords":{"type":"integer"},"totalPages":{"type":"integer"},"requestDatetime":{"type":"string","format":"date-time"}}}}},"paths":{"/v2/orders":{"post":{"tags":["Criação de Pagamento com 3DS"],"summary":"Criar Pagamento com 3DS","description":"Cria uma cobrança utilizando 3DS2. O objeto threeDSecure é obrigatório para transações 3DS.\n⚠️ IMPORTANTE: Caso a transação retorne como pendente (challenged = true), será necessário implementar um fluxo assíncrono com Step Up Challenge e polling para verificar o status final.","operationId":"createOrderWith3DS","parameters":[{"name":"x-idempotency-key","in":"header","description":"Chave de idempotência para evitar duplicação de transações","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Dados da ordem com informações 3DS","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderWith3DSRequest"}}}},"responses":{"201":{"description":"Ordem criada com sucesso","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderWith3DSResponse"}}}},"400":{"description":"Requisição inválida","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Não autorizado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Acesso proibido","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Erro interno do servidor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```
