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

Exemplos em várias linguagens

Exemplos completos e reutilizáveis em cURL, Node.js, Python e PHP. Todos leem a URL e as chaves de variáveis de ambiente — copie, defina as variáveis e execute.

Variáveis de ambiente
export SHARKPAY_BASE_URL="https://sharkpay.com.br"
export SHARKPAY_PUBLIC_KEY="PUB-..."
export SHARKPAY_SECRET_KEY="SEC-..."
export SHARKPAY_TOKEN="..."          # resultado do exemplo "auth"

Autenticação

Obter token
#!/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

Cobranças

Criar cobrança Pix
#!/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
Emitir boleto
#!/usr/bin/env bash
# Emitir boleto
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/boleto/create" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN" \
  -H "Idempotency-Key: ${IDEMPOTENCY_KEY:-$(uuidgen)}" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 150,
  "quantity": 1,
  "discount": 0,
  "tax": 0,
  "invoice_no": "PED-1002",
  "due_date": "'"$DUE"'",
  "item_name": "Plano anual",
  "customer": '"$SHARKPAY_CUSTOMER_ID"',
  "instructions": "Não receber após o vencimento"
}'
echo
Cartão de crédito (dados fictícios)
#!/usr/bin/env bash
# Cobrar cartão de crédito
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/creditcard/create" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN" \
  -H "Idempotency-Key: ${IDEMPOTENCY_KEY:-$(uuidgen)}" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 100,
  "quantity": 1,
  "discount": 0,
  "tax": 0,
  "installments": 3,
  "invoice_no": "PED-1003",
  "due_date": "'"$DUE"'",
  "item_name": "Assinatura",
  "email": "maria@example.com",
  "creditcard_holder": "MARIA SOUZA",
  "creditcard_number": "4111111111111111",
  "creditcard_cvv": "123",
  "creditcard_month": 12,
  "creditcard_year": 2030,
  "creditcard_brand": "Visa"
}'
echo
Consultar cobrança
#!/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
Listar cobranças
#!/usr/bin/env bash
# Listar cobranças
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/invoices?page=1&limit=10" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN"
echo
Repetição segura
#!/usr/bin/env bash
# Repetir a MESMA operação com a MESMA Idempotency-Key: a 2ª chamada devolve a resposta original
# (cabeçalho Idempotent-Replayed: true) e NÃO cria um segundo registro.
set -euo pipefail
: "${SHARKPAY_BASE_URL:?}" "${SHARKPAY_TOKEN:?}"
KEY="pedido-$(date +%s)-retry-demo"
BODY='{"name":"Cliente Idempotente","document":"'$(date +%s)'","document_type":"CPF","zipcode":"01001000","country_id":30,"state":"SP","city":"São Paulo","district":"Sé","street":"Praça da Sé","number":"1","email":"idem-'$(date +%s)'@example.com","phone":"1133334444","mobilephone":"11999998888"}'
for i in 1 2; do
  curl -sS -i -X POST "$SHARKPAY_BASE_URL/api/customer" \
    -H "Authorization: Bearer $SHARKPAY_TOKEN" -H "Content-Type: application/json" \
    -H "Idempotency-Key: $KEY" -d "$BODY" | grep -iE '^(HTTP/|idempotent-replayed)'
done

Clientes

Cadastrar cliente
#!/usr/bin/env bash
# Cadastrar cliente
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 POST "$SHARKPAY_BASE_URL/api/customer" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN" \
  -H "Idempotency-Key: ${IDEMPOTENCY_KEY:-$(uuidgen)}" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Maria Souza",
  "document": "12345678909",
  "document_type": "CPF",
  "zipcode": "01001000",
  "country_id": 30,
  "state": "SP",
  "city": "São Paulo",
  "district": "Sé",
  "street": "Praça da Sé",
  "number": "100",
  "email": "maria@example.com",
  "phone": "1133334444",
  "mobilephone": "11999998888"
}'
echo

Saques Pix

Solicitar saque
#!/usr/bin/env bash
# Solicitar saque 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"}"
curl -sS --fail-with-body -X POST "$SHARKPAY_BASE_URL/api/pixout/create" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN" \
  -H "Idempotency-Key: ${IDEMPOTENCY_KEY:-$(uuidgen)}" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 50,
  "pixkey": "maria@example.com",
  "keytype": "EMAIL",
  "client": "Maria Souza",
  "document": "12345678909",
  "description": "Repasse"
}'
echo
Consultar saque
#!/usr/bin/env bash
# Consultar saque
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/pixout/withdraw/$SHARKPAY_WITHDRAW_REF" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN"
echo

Checkout hospedado

Confirmar pagamento
#!/usr/bin/env bash
# Confirmar pagamento do checkout hospedado
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/checkout/$SHARKPAY_TX_REF" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN"
echo

Webhooks

Configurar
#!/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
Enviar ping
#!/usr/bin/env bash
# Enviar evento de teste
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 POST "$SHARKPAY_BASE_URL/api/webhook/test" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN"
echo
Verificar assinatura
#!/usr/bin/env bash
# Simula localmente uma entrega assinada para testar o SEU receptor (nenhuma chamada ao SharkPay).
set -euo pipefail
: "${SHARKPAY_WEBHOOK_SECRET:?}" "${RECEIVER_URL:?ex.: http://localhost:3000}"
BODY='{"id":"evt_local_1","type":"ping","created":'$(date +%s)',"api_version":"2026-10-14","data":{"message":"hello"}}'
T=$(date +%s)
SIG=$(printf '%s.%s' "$T" "$BODY" | openssl dgst -sha256 -hmac "$SHARKPAY_WEBHOOK_SECRET" -hex | sed 's/^.* //')
curl -sS -X POST "$RECEIVER_URL" -H "Content-Type: application/json" \
  -H "SharkPay-Signature: t=$T,v1=$SIG" -H "SharkPay-Event-Id: evt_local_1" -d "$BODY"
echo
Diagnosticar entregas
#!/usr/bin/env bash
# Ver entregas recentes
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/webhook/deliveries" \
  -H "Authorization: Bearer $SHARKPAY_TOKEN"
echo