Pular para o conteúdo principal
Nesta página

Visão geral#

AstroPay é uma carteira digital que permite aos usuários pagar, enviar e receber dinheiro em todo o mundo por meio de contas em várias moedas. DEUNA integra AstroPay como forma de pagamento em carteira.

O fluxo de checkout do AstroPay funciona da seguinte forma:

  1. O usuário seleciona AstroPay como forma de pagamento e insere seu número de celular.
  2. O usuário é redirecionado para a página de autorização do AstroPay, que exibe um código QR (e uma opção “Copiar link”) do pedido.
  3. O usuário abre o aplicativo AstroPay — seja escaneando o código QR ou através do link copiado — e confirma o pagamento lá.
  4. O pagamento é confirmado em tempo real assim que o usuário aprova no app.

Requisitos:

  • AstroPay via DEUNA está atualmente disponível para Argentina.
  • O usuário deve ter uma conta AstroPay ativa.
  • Ambientes:
    • Caixa de areia: https://api.sandbox.deuna.io
    • Produção: https://api.deuna.io

Integrar AstroPay por API#

Etapa 1: crie o pedido — POST /merchants/orders

Cria o pedido contra o qual o pagamento será iniciado.

Exemplo de solicitação

JSON
{
  "order": {
    "billingAddress": {
      "address1": "Jose Luis Lagrange 123, Piso 12",
      "address2": "Polanco I Sección",
      "addressType": "home",
      "city": "Buenos Aires",
      "countryCode": "ARG",
      "email": "jean.doe@example.com",
      "firstName": "Jean",
      "identityDocument": "205973330",
      "identityDocumentType": "CC",
      "lastName": "Doe",
      "lat": -23.555425,
      "lng": -46.677048,
      "phone": "+5491100000000",
      "stateName": "Buenos Aires",
      "zipcode": "7521"
    },
    "browserDetails": {
      "screenHeight": 1000,
      "screenWidth": 2000
    },
    "currency": "ARS",
    "items": [
      {
        "description": "Item description",
        "id": "daed042a-4002-4144-850f-0797dcdfe833",
        "imageUrl": "https://example.com/product.jpg",
        "name": "Item #1",
        "quantity": 2,
        "taxAmount": {
          "amount": 50,
          "currency": "ARS",
          "currencySymbol": "$"
        },
        "taxable": true,
        "totalAmount": {
          "amount": 2050,
          "currency": "ARS",
          "currencySymbol": "$",
          "originalAmount": 2100,
          "totalDiscount": 100
        },
        "unitPrice": {
          "amount": 1050,
          "currency": "ARS",
          "currencySymbol": "$"
        }
      }
    ],
    "orderId": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
    "paymentMethod": "wallet",
    "redirectUrls": {
      "success": "https://example.com/success"
    },
    "shippingAddress": {
      "additionalDescription": "confirm",
      "address1": "Rua Exemplo 123",
      "address2": "Bairro Exemplo",
      "addressType": "home",
      "city": "Buenos Aires",
      "countryCode": "BRA",
      "email": "jean.doe@example.com",
      "firstName": "Jean",
      "identityDocument": "205973330",
      "identityDocumentType": "CC",
      "lastName": "Doe",
      "lat": -22.943934,
      "lng": -43.182984,
      "phone": "+5491100000000",
      "stateName": "Buenos Aires",
      "zipcode": "1406"
    },
    "shippingMethods": [
      {
        "code": "12345JR",
        "cost": 250,
        "name": "Standard shipping"
      }
    ],
    "storeCode": "all",
    "subTotal": 5000000,
    "totalAmount": 5000000,
    "userInstructions": "Optional notes for the merchant",
    "webhookUrls": {
      "notifyOrder": "https://example.com/webhooks/order-status"
    }
  },
  "orderType": "DEUNA_CHECKOUT"
}

Etapa 2: iniciar o pagamento — POST /v2/merchants/orders/purchase

Usando o pedido/token da Etapa 1, esta chamada inicia a autorização do AstroPay.

Exemplo de solicitação

JSON
{
  "order_token": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
  "order_type": "DEUNA_CHECKOUT",
  "payer_info": {
    "email": "jean.doe@example.com",
    "person_type": "UNKNOWN_PERSON"
  },
  "payment_source": {
    "method_type": "wallet",
    "processor": "astropay"
  },
  "anti_fraud_info": {
    "device": {
      "id": "0cddd683-12ba-4fca-9a5f-9d98c24d7312"
    },
    "session_id": "aa23e46d-edf0-4b2c-aa5d-10dc80070bf8",
    "browser": {
      "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      "color_depth": 24,
      "language": "es",
      "screen_height": 1440,
      "screen_width": 2560
    }
  }
}

Resposta

JSON
{
  "order": {
    "order_id": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
    "transaction_id": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
    "status": "pending",
    "currency": "ARS",
    "total_amount": 5000000,
    "payment": {
      "data": {
        "method_type": "wallet",
        "processor": "astropay",
        "status": "pending",
        "external_transaction_id": "92nAZK3PJQ4lrY3ln43CmV6Tbr8YqKXw5ykCpYwE",
        "next_action": {
          "action": "authorization_wallet",
          "authorization_wallet": {
            "redirect_url": "https://checkout-sandbox.astropay.com/payment/92nAZK3PJQ4lrY3ln43CmV6Tbr8YqKXw5ykCpYwE?data=..."
          }
        }
      }
    }
  }
}

3. Redirecione o usuário

  1. Pegue o URL de payment.data.next_action.authorization_wallet.redirect_url.
  2. Redirecione o usuário para esse URL. O AstroPay exibe uma página com um código QR e uma opção “Copiar link” para o pedido — o usuário escaneia o código (ou abre o link copiado) com o aplicativo AstroPay e confirma o pagamento lá.
  3. Assim que o usuário aprova o pagamento no aplicativo, o AstroPay redireciona o usuário de volta através dos URLs de retorno de chamada da DEUNA.
  4. Logo após a Etapa 2, o status fica em pending — o usuário ainda precisa confirmar o pagamento no app AstroPay. Depois que eles aprovarem, o status se tornará succeeded ou denied.
  5. Ouça o webhook configurado em order.webhookUrls.notifyOrder (Etapa 1) para confirmar o status do pagamento final.

Webhooks:

  • Para registrar webhooks, entre em contato com DEUNA.

Testes:

Aplicativos de links:

https://appdistribution.firebase.dev/i/1f9f7f6e5a7df8ba

https://testflight.apple.com/join/1WwzwYfz

Use o número 12345678910 (qualquer código de país)
Código SMS: 000000