Histórico de mensagens sobre card em assinaturas

EXIBINDO CONVERSAS RECENTES:

Texto: card
Canal: assinaturas
Avatar discord do usuario jwesleylima

jwesleylima

Ver Respostas

Bom dia, pessoal. Beleza? Tenho duas dúvidas. Está grande, mas tentei exemplificar para ficar mais claro

Contexto da minha integração: Uso Assinaturas por link, apenas "credit_card", em NodeJS.

-> DÚVIDA 1:

é possível eliminar a necessidade do meu cliente preencher o "Endereço de Cobrança"?

Já crio a subscription com "request_delivery_address" como false, mas esse é o de entrega apenas. Há um parecido para endereço de cobrança?

Isso otimizaria a quantidade de campos para o cliente preencher. Além disso, como esse endereço geralmente não é exigido na maioria dos formulários de assinatura de outras plataformas de pagamento, alguns clientes podem se perguntar por que algum "endereço" é necessário para um produto digital como o meu. O "porque" não fica exatamente claro para o cliente na página de checkout.

---

-> DÚVIDA 2

É possível gerar um link de assinatura que "lembra" dos dados do cliente?

Exemplo: inicialmente um cliente escolhe o plano mensal. Porém, 3 meses depois, ele decide mudar para o plano anual para economizar.

Talvez não seja possível fazer uma mudança dinâmica de planos. Nesse caso, seria necessário cancelar a assinatura atual e iniciar uma nova?

A questão é:

Como fazer uma mudança de planos suave para o cliente? Há uma forma de criar essa nova assinatura/link de assinatura, agora com o plano "anual", sem que o cliente precisa preencher todos os campos novamente?

Agradeço desde já 🤔🤝

Avatar discord do usuario jwesleylima

jwesleylima

Ver Respostas

Bom dia, pessoal.

Estou com dúvida sobre o comportamento do "expire_at" quando o método de pagamento da assinatura é apenas cartão de crédito (payment_method: 'credit_card')

Vi que esse valor é para o vencimento do boleto. Então, se uso credit_card apenas, a data nesse campo é irrelevante?

Se bem que essa data aparece no checkout como "Vencimento", mesmo com credit_card como método de pagamento.

Aproveitando o gancho, outra dúvida: o link de pagamento de assinatura é permanente? No sentido de não expirar? Dá pra adicionar um tempo limite em um link?

Avatar discord do usuario joaovicto

joaovicto

Ver Respostas

Olá bom dia. utilizei o endpoint para efetuar um estorno. /v1/charge/card/:id/refund
na aplicação da efi mostra que foi devolvido. porém no banco ainda não consta. já havia feito esse mesmo teste antes e tudo ok.
fiz o teste na aplicação ontem e hj ainda não consta. há alguma chance de ser com o banco que eu efeituei a compra com o cartão ?

Avatar discord do usuario gil.brandao0067

gil.brandao0067

E antes que pergunte, o 'SubscriptionID' está sendo preenchido na 'ViewPayPlanCreditCard'

Avatar discord do usuario palloma_efi

palloma_efi

Bom dia @carolineballes ! A notification_url também serve para assinaturas. Neste sentido, qualquer alteração no status das cobranças vinculadas à assinatura, você é notificada automaticamente. Caso o usuário queira alterar os dados do cartão de crédito, basta utilizar o campo update_card no endpoint de retentativa da cobrança (POST /v1/charge/:id/retry). https://sejaefi.link/Hyldf6Hae0
https://dev.efipay.com.br/docs/api-cobrancas/assinatura#retentativa-de-pagamento-de-assinatura-via-cart%C3%A3o-de-cr%C3%A9dito

Avatar discord do usuario lirousme

lirousme

Ver Respostas

tem como gerar esse token sem fazer uma cobrança no cartão do cliente? Pois a cobrança vai ser feita nesse arquivo 'sdk-php-apis-efi/examples/charges/subscription/createOneStepCardSubscription.php', mas para executar esse arquivo eu já tenho que ter o payment token

Avatar discord do usuario lirousme

lirousme

Ver Respostas

'https://efipay.github.io/js-payment-token-efi/' Estava configurando o layout desse exemplo, para usar ele para gerar payment token, e então usar esse paymente token para executar esse arquivo 'sdk-php-apis-efi/examples/charges/subscription/createOneStepCardSubscription.php', entretando se o usuário preencher esse formulário e depois o programa chamar 'OneStepCardSubscription.php', me parece que vão haver duas cobranças no cartão do cliente, pois os dois arquivo solicitam um valor, alguém pode me ajudar a resolver isso? Obs: Ao envia esse formulário 'https://efipay.github.io/js-payment-token-efi/' vai haver uma cobranaça não relacionada com a assinatura, mas eu preciso apenas do paymente token, pois esse arquivo aqui exige o paymente token 'OneStepCardSubscription.php', que de fato é o arquivo que vai fazer uma cobrança e a assinatura do cliente no plano.

Avatar discord do usuario lirousme

lirousme

Ver Respostas

Ao executar esse aquivo 'sdk-php-apis-efi/examples/charges/subscription/createOneStepCardSubscription.php' dá esse erro: "3500010
property_does_not_exists
Propriedade: "id". A propriedade [id] informada não existe." Já coloquei o id do plano, conferi e está certinho o número do id, alguém pode me ajudar a resolver?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @vitorsenna. Bom dia! Tudo bem e com você?
Os possíveis retornos do método que identifica a bandeira, são: "undefined", "unsupported", "visa", "mastercard", "amex", "elo", "hipercard".
Estes e outros detalhes você encontra no repositório GitHub da biblioteca.
https://github.com/efipay/js-payment-token-efi?tab=readme-ov-file#identificar-a-bandeira

Avatar discord do usuario vitorsenna

vitorsenna

Ver Respostas

Olá boa noite! Tudo bem?

Gostaria de tirar uma dúvida com relação a parte de cartão de crédito da API.

Os tipos de cartões aceitos são "Visa", "Master", "AmericanExpress", "Elo" e "HiperCard".

Ao usar o método da API de identificar a bandeira do cartão automaticamente, ele me retorna a string referente a cada bandeira, mas não necessáriamente é igual aos nomes que eu listei acima.

Por exemplo, quando é identificado um cartão "Master", a API me retorna "mastercard", "Visa" é "visa".

1ª Dúvida: Como é a string de retorno das demais bandeiras?
2ª Dúvida: ainda sobre o método que identifica automaticamente a bandeira do cartão, quais são as responses possíveis quando ocorre um erro nessa consulta?

Fico no aguardo, obrigado!

Avatar discord do usuario yasmin_efi

yasmin_efi

Boa tarde @brcard81! Você pode verificar com a propria plataforma uma possivel integração conosco ou desenvolver/ contratar algum desenvolvedor que consiga criar esta integração entre a plataforma e a Efi, utilizando a nossa documentação técnica.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @brcard81. Bom dia! Tudo bem?
Verificamos que este site não possui integração com nossas APIs. Neste caso teria que ser desenvolvido dentro da plataforma este plug-in.

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

Para utilizar o reuse bastar utilizar da seguinte forma:

window.getPaymentToken(
{
brand: data.brand,
number: data.cardNumber,
cvv: data.cvv,
expiration_month: data.month,
expiration_year: data.year,
reuse: true
},
checkPayment,
);

Avatar discord do usuario antoniofernandes

antoniofernandes

Ver Respostas

Considerando que essa é a funcao que gera o payment

js

window.getPaymentToken(
{
brand: data.brand,
number: data.cardNumber,
cvv: data.cvv,
expiration_month: data.month,
expiration_year: data.year,
},
checkPayment,
);


onde seria setado reuse = true?

Avatar discord do usuario antoniofernandes

antoniofernandes

Ver Respostas

O payment_token está sendo gerado via frontend via javascript conforme a documentacao

js
window.getPaymentToken(
{
brand: data.brand,
number: data.cardNumber,
cvv: data.cvv,
expiration_month: data.month,
expiration_year: data.year,
},
checkPayment,
);
Vale ressaltar que o mesmo está retornando certinho.

conforme ja informei, o erro informa que
js
{
"code": 3500010,
"error": "property_does_not_exists",
"error_description": {
"property": "payment_token",
"message": "A propriedade [payment_token] informada não existe."
}
}
ou seja como se a propriedade payment_token nao fizesse parte do objeto de configuração....

Avatar discord do usuario antoniofernandes

antoniofernandes

@guilherme_efi Bom ia amigo. Tinha feito uma integração (Testada em sandbox) que estava funcionando e ja validado certinho meu fluxo. Agora voltei a testar e estou recebendo um erro:
Minha integração de assinatura tem mais ou menos o seguinte código:

js


const bodySubscriptionSignature = {
items: [
{
name: Assinatura: ${plan.title},
value: parseInt(convertPriceGateway(plan.price)),
amount: 1,
},
],
metadata: {
custom_id: ${companyId} - ${Date.now()},
notification_url: process.env.GN_NOTIFICATION_URL,
},
};

const paramsSignature = {
id: plan.planId,
};

const signature = await this.gn.createSubscription(
paramsSignature,
bodySubscriptionSignature,
);

const paramsPayment = {
id: signature.subscription_id,
};

const bodyPayment = {
payment: {
credit_card: {
payment_token: paymentToken,
billing_address: {
street: user.company.address.street,
number: user.company.address.streetNumber,
neighborhood: user.company.address.district,
zipcode: cep,
city: user.company.address.city,
state: user.company.address.state,
},
customer: {
name: ${user.firstName} ${user.lastName},
email: user.email,
cpf: cpf,
birth: birthDate,
phone_number: phone,
},
},
},
};

const associatePayment = await this.gn.paySubscription(
paramsPayment,
bodyPayment,
);

return { associatePayment };



E estou recebendo o seguinte erro:
js
{
"code": 3500010,
"error": "property_does_not_exists",
"error_description": {
"property": "payment_token",
"message": "A propriedade [payment_token] informada não existe."
}
}
Mudou alguma coisa?

Avatar discord do usuario clovisdaniel

clovisdaniel

Gente, tudo bom. Tava brincando com a API de vocês. Tentando fazer uma assinatura usando cartão de crédito. E aí eu mandei o seguinte payload

{
"items": [
{
"name": "Meu Produto",
"value": 24990,
"amount": 1
}
],
"payment": {
"credit_card": {
"customer": {
"name": "Gorbadoc Oldbuck",
"cpf": "94271564656",
"email": "[email protected]",
"birth": "1990-08-29",
"phone_number": "5144916523"
},
"payment_token": "3472999817ccf2846841820350543d02ffa75fd7",
"billing_address": {
"street": "Avenida Juscelino Kubitschek",
"number": "909",
"neighborhood": "Bauxita",
"zipcode": "35400000",
"city": "Ouro Preto",
"complement": "",
"state": "MG"
}
}
}
}
Mas a mensagem de erro retornada foi a seguinte:
{
"code": 3500072,
"error": "request_not_allowed",
"error_description": "Não foi possível finalizar sua solicitação. Por favor, entre em contato com o suporte Gerencianet."
}

Avatar discord do usuario marcio.pensadorweb

marcio.pensadorweb

@palloma_efi sim usando cred_card

Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Bom dia @marcio.pensadorweb ! Tudo bem? A API oferece o atributo trial_days, que permite definir um período de teste gratuito para assinaturas do tipo cartão de crédito. Esse atributo está disponível somente quando o pagamento é realizado com credit_card. Você utilizou neste método de pagamento?