Cancelar e capturar fluxo
Ao se integrar com o Yuno, você tem várias opções para implementar operações de captura e cancelamento. Este guia descreve todas as abordagens disponíveis e explica como interagir com nossas APIs para cada cenário.
Oferecemos captura simples em tempo real para transações rápidas, bem como configurações altamente personalizáveis de captura com atraso e cancelamento para atender às suas necessidades comerciais.
Visão geral
- Modos de captura
- Cancelar modos
- Requisitos de configuração
- Exemplos de solicitações
- Quando usar cada modo
- Referência de campo
Modos de captura
A Yuno oferece três opções para a captura de pagamentos, determinadas pelo capture e o campo opcional delayed_capture_settings encontrada na configuração criar API de pagamento. A disponibilidade real do recurso ou os detalhes específicos da implementação podem variar dependendo do provedor de pagamento pelo qual você está encaminhando seus pagamentos.
Captura em tempo real
Este modo processa o pagamento e transfere os fundos sem qualquer atraso, combinando eficazmente a autorização e a captura em um único processo. compra operação. Quando payment_method.detail.card.capture é definido como true, a transação é executada como uma compra, o que significa que a autorização e a captura ocorrem simultaneamente.
Dependendo da API do provedor de pagamento, a Yuno pode executar isso como uma transação de compra direta ou como uma autorização imediatamente seguida por uma chamada de captura.
{
"payment_method": {
"detail": {
"card": {
"capture": true,
"card_data": {
// card details
}
}
}
}
}Captura manual
Com essa configuração, o Yuno não capturará o pagamento até que você chame a função API de captura ou capturá-lo manualmente em seu Painel de controle da Yuno. Definir capture: false para autorizar o pagamento sem capturá-lo.
As capturas manuais proporcionam o máximo de flexibilidade, pois dão a você controle total de quando a captura é realizada. Entretanto, é importante capturar o mais rápido possível, pois os provedores de pagamento impõem limites de tempo para que as autorizações permaneçam não capturadas, e esses limites variam de acordo com o provedor e a região.
{
"payment_method": {
"detail": {
"card": {
"capture": false,
"card_data": {
// card details
}
}
}
}
}
Captura de valores diferentesSe você precisar capturar um valor diferente do originalmente autorizado, deverá usar a captura manual. Os modos de captura em tempo real e com atraso sempre capturarão o valor autorizado inicialmente.
Captura atrasada
Configurar capture: false juntamente com delayed_capture_settings para agendar a captura do pagamento para um momento posterior, especificado no delay campo.
Capturas apenas do valor totalA captura atrasada só se aplica quando se captura o valor total da autorização. Se precisar capturar um valor parcial, você deve usar a captura manual.
simplified_modeConfiguração
simplified_modeparatruefará com que o Yuno tente novamente a operação de captura caso ocorra um erro durante a tentativa de captura programada.
{
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_capture_settings": {
"delay": "P7D",
"simplified_mode": false
},
"card_data": {
// card details
}
}
}
}
}O delay é necessário ao usar operações de captura atrasadas e deve seguir o Norma ISO 8601. Por exemplo:
"PT3H"por 3 horas"P7D"por 7 dias"P1M"por 1 mês
Se você chamar a API de captura antes do horário programado, sua chamada substituirá o atraso e executará a captura imediatamente. Essa ação cancela automaticamente o acionador Yuno programado. Como alternativa, você pode capturar o pagamento manualmente através do seu painel Yuno.
Cancelar modos
Quando você autoriza um pagamento sem capturá-lo imediatamente, esses fundos são retidos temporariamente no método de pagamento do cliente. Se você decidir não capturar o pagamento, é importante cancelar a autorização para liberar esses fundos retidos e proporcionar uma melhor experiência ao cliente. Os modos de cancelamento lhe dão controle sobre quando e como essas autorizações são anuladas.
Cancelamento manual
Com o modo de cancelamento manual, os pagamentos autorizados permanecem ativos até que você os cancele explicitamente. O Yuno não anulará automaticamente essas autorizações, dando a você controle total sobre quando liberar os fundos. Você pode cancelar autorizações usando a API de cancelamento ou por meio da interface do painel do Yuno.
É fundamental cancelar as autorizações que não serão capturadas o mais rápido possível para liberar os fundos retidos. A experiência do cliente é significativamente afetada quando as autorizações não são canceladas, pois os fundos podem permanecer reservados por períodos variáveis, dependendo da região do cliente e da rede de cartões.
Cancelamento atrasado
Configurar delayed_cancel_settings para definir um atraso no cancelamento de autorizações não capturadas, semelhante às capturas atrasadas. Esse recurso automatiza a liberação dos fundos do cliente se você decidir não capturá-los dentro de um período de tempo especificado, melhorando significativamente a experiência do cliente ao evitar retenções indefinidas em seus métodos de pagamento.
O delay é necessário ao usar operações de cancelamento atrasado e deve seguir o campo Norma ISO 8601. Por exemplo:
"PT3H"por 3 horas"P7D"por 7 dias"P30D"por 30 dias
simplified_modeConfiguração
simplified_modeparatruefará com que o Yuno tente novamente a operação de cancelamento caso ocorra um erro durante a tentativa de cancelamento programada.
{
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_cancel_settings": {
"delay": "P30D",
"simplified_mode": false
},
"card_data": {
// card details
}
}
}
}
}Se você chamar a API de captura ou cancelar a API antes do horário programado, sua chamada substituirá o atraso e executará a ação imediatamente. Essa ação cancela automaticamente o acionador Yuno programado. Alternativamente, você pode capturar ou cancelar o pagamento manualmente através do seu painel Yuno.
Configurações de captura atrasada e cancelamentoRecomendamos não usar ambos
delayed_capture_settingsedelayed_cancel_settingssimultaneamente para evitar comportamentos inesperados. Use apenas um de cada vez de acordo com suas necessidades.
Requisitos de configuração
delayed_capture_settingsedelayed_cancel_settingssão válidos apenas quandocapture = false- Se
capture = trueesses objetos devem ser omitidos ou definidos comonull - As operações manuais podem ser realizadas por meio de endpoints da API ou pelo painel do Yuno
Exemplos de solicitações
Exemplo 1: Captura em tempo real
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": true,
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Real-time capture payment",
"merchant_order_id": "000023"
}Exemplo 2: Apenas captura manual
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Authorization only - manual capture",
"merchant_order_id": "000024"
}Exemplo 3: Captura atrasada
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_capture_settings": {
"delay": "P7D",
"simplified_mode": false
},
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Authorization with delayed capture",
"merchant_order_id": "000025"
}Exemplo 4: Cancelamento atrasado
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_cancel_settings": {
"delay": "P30D",
"simplified_mode": false
},
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Authorization with delayed cancel",
"merchant_order_id": "000026"
}Exemplo 5: Captura e cancelamento combinados com validação aprimorada
Este exemplo mostra uma solicitação de pagamento completa com configurações de captura atrasada e cancelamento, juntamente com campos de validação do cliente aprimorados:
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"merchant_customer_validations": {
"account_is_verified": true,
"email_is_verified": true,
"phone_is_verified": true
},
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_capture_settings": {
"delay": "P20D",
"simplified_mode": true
},
"delayed_cancel_settings": {
"delay": "P40D",
"simplified_mode": true
},
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
},
"verify": false
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Payment with card details",
"merchant_order_id": "000023"
}
ObservaçãoEmbora este exemplo mostre ambos
delayed_capture_settingsedelayed_cancel_settingsconfigurados juntos, recomendamos usar apenas um de cada vez para evitar comportamentos inesperados.
Quando usar cada modo
Use a captura em tempo real quando:
- Você fornece bens ou serviços imediatamente
- Não é necessário validar o inventário ou as verificações de fraude após a autorização
- Você deseja o fluxo de pagamento mais simples
Use a captura manual quando:
- Você precisa verificar o inventário antes de finalizar o pagamento
- Você deseja capturar um valor diferente do autorizado
- Você tem uma lógica comercial complexa que determina se deve capturar ou cancelar
- Você precisa de controle máximo sobre o tempo de captura
Use a captura atrasada quando:
- Você deseja a captura automática após um período de tempo específico
- Você tem um processo de atendimento previsível
- Você deseja reduzir a intervenção manual e, ao mesmo tempo, manter o controle
Use o cancelamento atrasado quando:
- Você deseja liberar automaticamente os fundos do cliente se não fizer a captura dentro de um período de tempo
- Você deseja melhorar a experiência do cliente ao não reter fundos indefinidamente
- Você tem um limite máximo de tempo para seu processo de atendimento
Referência de campo
| Campo | Tipo | Descrição |
|---|---|---|
capture | boolean | Determina se o pagamento com cartão é capturado imediatamente (true, compra) ou somente autorizado (falserequer captura ou cancelamento). |
delayed_capture_settings.delay | string | Atraso antes de a Yuno capturar o pagamento. Deve seguir o formato de duração ISO 8601 (por exemplo, "P7D" para 7 dias, "PT3H" para 3 horas). |
delayed_capture_settings.simplified_mode | boolean | Se trueO Yuno tenta novamente a captura se ela falhar. |
delayed_cancel_settings.delay | string | Atraso antes que a Yuno cancele a autorização. Deve seguir o formato de duração ISO 8601 (por exemplo, "P30D" para 30 dias). |
delayed_cancel_settings.simplified_mode | boolean | Se trueYuno tenta novamente o cancelamento se ele falhar. |
Atualizado há 2 meses