Wallet Google Pay e Apple Pay
Esta documentação descreve o processo de integração para criar um fluxo de pagamento com wallets, incluindo: criação de cliente, sessão de checkout e envio de dados de pagamento.
1. Criação do customer na Barte
Para que o fluxo funcione, esta deve ser a primeira API que deve ser utilizada em usa integração.
Utilizando o método POST em /v2/buyers, você cadastra o comprador que irá realizar a compra. A seguir está um exemplo de chamada de cadastro:
POST /v2/buyers HTTP/1.1
Host: api.barte.com
X-Token-Api: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 400
{
"document": {
"documentNumber": "36880261019",
"documentType": "cpf",
"documentNation": "BR"
},
"name": "Tester",
"email": "comprador@email.com",
"countryCode": "+55",
"phone": "34999991111",
"alternativeEmail": "compradoralt@email.com",
"address": {
"street": "Rua Orleans",
"number": "100",
"complement": "Bloco A",
"district": "Jardim Europa",
"city": "Uberlândia",
"state": "Minas Gerais",
"country": "BR",
"zipCode": "38414552"
}
}
Quando o cliente for criado com sucesso, será retornado um uuid na resposta, um identificador único do cliente na Barte. Esse identificador será necessário na etapa subsequente.
Resposta de sucesso:
{
"uuid": "1ee849a4-6bb3-47f0-b32a-293a8f0e811c",
"document": "05212972130",
"name": "Christian",
"countryCode": "+55",
"phone": "34999991111",
"email": "comprador@email.com",
"alternativeEmail": "compradoralt@email.com"
}
Você também poderá recuperar o uuid do buyer através do método GET em /v2/buyers, filtrando pelo parâmetro de sua preferência, como documento, nome ou e-mail.
2. Criar customer na Yuno
Após a criação do cliente na Barte, é necessário registrar o cliente também na Yuno para sincronizar os dados entre as duas plataformas. Para isso, você pode seguir o exemplo da chamada abaixo:
curl --location --request POST '<https://api.barte.com/v2/providers/yuno/buyers/{{uuid_buyer_barte}>}' \\
--header 'X-Token-Api: {{seu_token_api}}' \\
--header 'Content-Type: application/json'
Quando o cliente for criado com sucesso, será retornado o integrationCustomerId
na resposta, um identificador único do cliente na Yuno.
Resposta de sucesso:
{
"integrationCustomerId": "98cafcac-6d3b-4863-959b-f4ceabf96cdf"
}
3. Criar sessão de checkout
Com o cliente criado, o próximo passo é iniciar uma sessão de checkout. Realize um chamada POST para /v2/providers/yuno/session
- abaixo está o exemplo do JSON que deverá ser enviado:
POST /v2/providers/yuno/session HTTP/1.1
Host: api.barte.com
X-Token-Api: YOUR_API_KEY
Accept: */*
{
"country": "BR",
"amount": {
"currency": "BRL",
"value": 349
},
"uuidBuyer": "{{uuidBuyer}}",
"merchantOrderId": "{{merchantOrderId}}",
"paymentDescription": "Teste de pagamento"
}
Parâmetros:
uuidBuyer: você deverá enviar o
uuid
do buyer criado com a Barte;merchantOrderId: UUID único gerado exclusivamente para essa transação. Salve-o para uso posterior.
Resposta de sucesso:
{
"checkoutSession": "886eb109-4149-41c3-8f2f-6c85545bda21",
"country": "BR",
"paymentDescription": "Teste erick",
"customerId": "98cafcac-6d3b-4863-959b-f4ceabf96cdf",
"amount": {
"currency": "BRL",
"value": 349
},
"createdAt": "2024-11-11T14:44:22.534439Z",
"workflow": "SDK_CHECKOUT",
"installments": {}
}
4. Listar métodos de pagamento
Com o checkout criado, você deve listar os métodos de pagamentos disponíveis. Eles deverão se mostrados no front-end para que o seu cliente possa escolher.
curl --location -g --request GET '<https://api.barte.com/v2/providers/yuno/session/{{checkoutSessionId}>}/payment-methods' \\\\
--header 'X-Token-Api: {{seu_token_api}}'
Parâmetros:
checkoutSessionId: você deverá enviar o
checkoutSession
que foi retornado na etapa anterior.
Resposta de sucesso:
[
{
"name": "Google Pay",
"description": "Google Pay",
"type": "GOOGLE_PAY",
"category": "WALLET",
"icon": "<https://icons.prod.y.uno/googlepay_logosimbolo.png>",
"lastSuccessfullyUsed": "true",
"lastSuccessfullyUsedAt": "2024-11-11T14:49:09.546983419Z",
"checkout": {
"session": "db5df2bf-62b1-4b3e-8b78-ba7c922b2fb0",
"sdkRequiredAction": false,
"conditions": {
"enabled": true
}
},
"preferred": false
}
]
🚨O parâmetro type
deverá ser enviado como paymentMethodType
na seção *Iniciando o checkout.* Possíveis types
: GOOGLE_PAY, APPLE_PAY
5. Selecionar um método de pagamento
Quando o cliente escolhe um método de pagamento, o processo de checkout deverá ser iniciado com o método selecionado.
6. Iniciando o checkout
Com o método selecionado, você conseguirá iniciar o SDK do checkout. Chame a função buildCheckout
apresentada abaixo - será gerado o OneTimeToken, esse uuid deve ser usado para iniciar o pagamento.
Exemplo abaixo:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>SDK Integration</title>
<script src="<https://sdk-web.y.uno/v1/static/js/main.min.js>"></script>
</head>
<body>
<script>
async function buildCheckout() {
const yuno = Yuno.initialize(public_key);
yuno.startCheckout({
checkoutSession: checkoutSessionId,
elementSelector: "#root",
countryCode: "BR",
language: "pt",
showLoading: true,
keepLoader: true,
issuersFormEnable: true,
renderMode: {
type: "element",
elementSelector: "#rootElement",
},
card: {
type: "extends",
cardSaveEnable: true,
},
onLoading: (args) => {
console.log(args);
},
async yunoCreatePayment(oneTimeToken) {
console.log("oneTimeToken: " + oneTimeToken)
**await createPayment();**
yuno.continuePayment({ showPaymentStatus: true });
},
yunoPaymentMethodSelected(data) {
console.log("onPaymentMethodSelected", data);
},
yunoPaymentResult(data) {
console.log("yunoPaymentResult", data);
yuno.hideLoader();
},
yunoError: (error) => {
console.log("There was an error", error);
yuno.hideLoader();
},
});
yuno.mountCheckoutLite({
paymentMethodType: "{{type}}",
});
}
</script>
</body>
</html>
🚨Nota: A função createPayment()
deve ser substituída pelo endpoint explicado na etapa seguinte.
Parâmetros:
public_key: envie a sua chave pública cadastrada na Yuno;
checkoutSessionId: você deverá enviar o
checkoutSession
que foi retornado na etapa “ Criar sessão de checkout”;paymentMethodType: você passará o
type
retornado na etapa 4.⚠️Possíveis
types
: GOOGLE_PAY, APPLE_PAY
Documentações complementares:
https://docs.y.uno/docs/lite-checkout-ios - IOS
https://docs.y.uno/docs/lite-checkout-android - Android
7. Criar ordem de pagamento
O último passo é chamar a API de orders
e, assim, iniciar o pagamento via wallet.
curl --location --request POST '<https://api.barte.com/v2/orders>' \\
--header 'X-Token-Api: {{seu_token_api}}' \\
--header 'Content-Type: application/json' \\
--data-raw '{
"startDate": "2025-09-10",
"value": 1250,
"installments": 3,
"title": "Titulo - Lili UfdeDn",
"payment": {
"method": "{{type}}",
"wallet": {
"oneTimeToken": "{{oneTimeToken}}",
"checkoutSessionUuid": "{{checkoutSessionId}}",
"integrationOrderId" : "{{merchantOrderId}}"
},
"fraudData": {
"internationalDocument": {
"documentNumber": "53824569337",
"documentType": "CPF",
"documentNation": "BR"
},
"name": "Lili",
"email": "strigus@mock.com",
"phone": "5511999994444",
"billingAddress": {
"country": "BR",
"state": "MG",
"city": "Uberlandia",
"district": "Patrimonio",
"street": "Rua de test",
"zipCode": "38411999"
}
}
},
"metadata": [
{
"key": "RegressivoVersion1",
"value": "rdjwbK"
}
],
"uuidBuyer": "{{uuidBuyer}}"
}'
Quando a requisição for processada com sucesso você terá o seguinte retorno:
{
"uuid": "435d2dbb-1253-45c7-acb8-ad70fcb8b6cc",
"status": "SENT",
"title": "Título da Ordem",
"value": 349,
"installments": 1,
"startDate": "2024-11-11",
"payment": "GOOGLE_PAY",
"customer": {
"document": "04386909079",
"type": "CPF",
"documentCountry": "BR",
"name": "João da Barte",
"email": "joao@email.com",
"phone": "34999992222",
"alternativeEmail": "alternativo@mock.com",
"integrationCustomerId": "98cafcac-6d3b-4863-959b-f4ceabf96cdf"
},
"idempotencyKey": "83ae7caf-6291-4884-977a-e4c405b3db46"
}
Atualizado
Isto foi útil?