Ir para o conteúdo
Sharkpay

Documentação da API

Integre pagamentos, saques e webhooks ao seu sistema com uma API HTTP/JSON aberta e documentada.

API 2026-10-14

Início rápido

Em cerca de 10 minutos você obtém um token, cadastra o webhook e cria sua primeira cobrança Pix. Os exemplos usam variáveis de ambiente para que nenhum segredo apareça no código.

  1. 1. Habilite os meios de pagamento

    No painel, confirme que o método desejado (Pix, boleto, cartão) está habilitado para sua conta. Sem isso a criação responde 400 informando que a forma de pagamento não está habilitada.

  2. 2. Obtenha o token

    Troque as chaves por um token Bearer. Ele vale por padrão 30 dias (expires_in informa em segundos).

    POST /api/auth
    #!/usr/bin/env bash
    # Obter token de acesso (chave pública + chave secreta em HTTP Basic)
    set -euo pipefail
    : "${SHARKPAY_BASE_URL:?}" "${SHARKPAY_PUBLIC_KEY:?}" "${SHARKPAY_SECRET_KEY:?}"
    curl -sS --fail-with-body -X POST "$SHARKPAY_BASE_URL/api/auth" \
      -u "$SHARKPAY_PUBLIC_KEY:$SHARKPAY_SECRET_KEY"
    echo
    Resposta 200
    {
      "success": {
        "token": "eyJ0eXAiOiJKV1QiLCJhbGciOi...",
        "token_type": "Bearer",
        "expires_in": 2592000
      }
    }

    Exporte o token: export SHARKPAY_TOKEN="eyJ0eXAi..."

  3. 3. Configure o webhook

    Informe a URL https pública do seu servidor. Na primeira vez a resposta traz o segredo de assinatura (whsec_…) — guarde-o: ele não é mostrado de novo.

    PUT /api/webhook
    #!/usr/bin/env bash
    # Configurar a URL do webhook
    set -euo pipefail
    : "${SHARKPAY_BASE_URL:?defina a URL base, ex.: https://pay.exemplo.com}"
    : "${SHARKPAY_TOKEN:?obtenha o token com o exemplo "auth"}"
    curl -sS --fail-with-body -X PUT "$SHARKPAY_BASE_URL/api/webhook" \
      -H "Authorization: Bearer $SHARKPAY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
      "url": "'"$WEBHOOK_URL"'"
    }'
    echo

    Depois valide o receptor com um evento de teste: POST /api/webhook/test. Veja Webhooks para verificar a assinatura.

  4. 4. Crie a cobrança Pix

    Envie sempre um Idempotency-Key único por pedido. Se a rede cair, repita a mesma chamada com a mesma chave.

    POST /api/pix/create
    #!/usr/bin/env bash
    # Criar cobrança Pix
    set -euo pipefail
    : "${SHARKPAY_BASE_URL:?defina a URL base, ex.: https://pay.exemplo.com}"
    : "${SHARKPAY_TOKEN:?obtenha o token com o exemplo "auth"}"
    DUE=$(date -d "+7 days" +%F 2>/dev/null || date -v+7d +%F)  # vencimento daqui a 7 dias
    curl -sS --fail-with-body -X POST "$SHARKPAY_BASE_URL/api/pix/create" \
      -H "Authorization: Bearer $SHARKPAY_TOKEN" \
      -H "Idempotency-Key: ${IDEMPOTENCY_KEY:-$(uuidgen)}" \
      -H "Content-Type: application/json" \
      -d '{
      "amount": 100,
      "quantity": 2,
      "discount": 10,
      "tax": 5,
      "invoice_no": "PED-1001",
      "due_date": "'"$DUE"'",
      "item_name": "Camiseta",
      "email": "maria@example.com",
      "document": "12345678909",
      "client": "Maria Souza",
      "notes": "Pedido 1001"
    }'
    echo
    Resposta 200 (exemplo ilustrativo)
    {
      "invoice": {
        "reference": "INV-A1B2C3",
        "total": "190.00",
        "txid": "7f3c9e...",
        "due_date": "2026-12-31",
        "copy": "00020126580014br.gov.bcb.pix...",
        "qrcode": "data:image/svg+xml;base64,..."
      }
    }

    O total é valor × quantidade + imposto% − desconto%. No exemplo: 200,00 + 5% (10,00) − 10% (20,00) = 190,00. Exiba o qrcode e/ou o copy (copia-e-cola) ao pagador.

  5. 5. Acompanhe o pagamento

    Quando o cliente paga, você recebe invoice.paid no webhook. Como rede de segurança, consulte pela referência:

    GET /api/invoice/ref/{ref_id}
    #!/usr/bin/env bash
    # Consultar cobrança pela referência
    set -euo pipefail
    : "${SHARKPAY_BASE_URL:?defina a URL base, ex.: https://pay.exemplo.com}"
    : "${SHARKPAY_TOKEN:?obtenha o token com o exemplo "auth"}"
    curl -sS --fail-with-body -X GET "$SHARKPAY_BASE_URL/api/invoice/ref/$SHARKPAY_REF" \
      -H "Authorization: Bearer $SHARKPAY_TOKEN"
    echo

    Libere o pedido somente quando status for PAID.