Pular para o conteúdo
CXPag - Documentação

Rotas

Criando transação

Você pode criar uma transação usando o endpoint https://api.cxpag.com/v1/transaction com o método POST.

// json enviado
{
  // moeda da transação
  "coin": "BTC",
  // valor da transação
  "products": [
    {
      "product": "produto 1",
      "price": 1000,
      "description": "produto de teste"
    }
  ],
  // link de retorno apoś a transação
  "returnLink": "http://minhaapi.example/cxpag/callback",
  // se a transação será liquidada
  "liquidation": false,
  // valor total da transação
  "amount": 1000
}

// json recebido
{
  // link de redirecionamento para a transação
  "link": "http://localhost:3000/checkout/transaction?id=101ed267-35b1-4a08-b835-4ba422fb5424&token=d21b12d7dda4e77684d408d4508e522e",
  // id da transação
  "transaction": "101ed267-35b1-4a08-b835-4ba422fb5424"
}

Nota: O parâmetro coin e liquidation são opcionais. Caso não sejam enviados, o usuário poderá escolher a coin na página de pagamento e a transação não será liquidada.

“Linkando” uma transação

Você pode “linkar” uma transação usando o endpoint https://api.cxpag.com/v1/transaction/link com o método POST. Saiba mais sobre o que é uma transação “linkada” aqui.

// json enviado
{
  // link de retorno apoś a transação
  "returnLink": "http://minhaapi.example/cxpag/callback",
}

// json recebido
{
  // link de redirecionamento para a transação
  "link": "http://localhost:3000/checkout/transaction?id=101ed267-35b1-4a08-b835-4ba422fb5424&token=d21b12d7dda4e77684d408d4508e522e",
}

Status da transação

Há duas maneiras de verificar o status de uma transação, a primeira é usando o endpoint https://api.cxpag.com/v1/transaction/status/transactionId com o método GET, onde transactionId é o id da transação.

// json recebido
{
  // link de redirecionamento para a transação

  "link": "http://localhost:3000/checkout/transaction?id=101ed267-35b1-4a08-b835-4ba422fb5424&token=d21b12d7dda4e77684d408d4508e522e"
}

A segunda maneira é usando o endpoint https://api.cxpag.com/v1/transactions/status com o método GET.

// json enviado
{
  // id das transações
  "transactions": ["101ed267-35b1-4a08-b835-4ba422fb5424"]
}

// json recebido
{
  // status das transações
  "transactions": [
    {
      "id": "101ed267-35b1-4a08-b835-4ba422fb5424",
      "status": "done"
    }
  ]
}

Nota: Para saber mais sobre os status de uma transação, clique aqui.

Confirmar uma transação

Digamos que o usuário pagou um valor menor do que o valor da transação, você pode confirmar a transação usando o endpoint https://api.cxpag.com/v1/transaction/confirm/transactionId com o método POST, onde transactionId é o id da transação. O valor da transação será atualizado para o valor que o usuário pagou. Você também pode optar por cobrar o valor restante da transação

// json recebido
{
  "msg": "Transação confirmada com sucesso"
}

Histórico do webhook

Você pode ver o histórico do webhook usando o endpoint https://api.cxpag.com/v1/webhook/history com o método POST.

const res = await fetch(`https://api.cxpag.com/v1/webhook/history`, {
  headers: {
    "Application-Type": "application/json",
    apikey: "sua-api-key",
    apisecret: "sua-api-secret",
  },
  body: JSON.stringify({
    // número da página, default: 1
    page: 1,
  }),
})

res.json() as {
  // número da página
  page: number
  // número de páginas
  pages: number
  // número total de webhooks
  total: number

  // histórico do webhook
  history: {
    // url do webhook
    url: string
    // status do webhook
    status: "success" | "error"
    // número de tentativas
    attempts: number
    // data da última tentativa
    lastAttempt: string
  }[]
}