API de Integração Weepay (1.0.0)

Download OpenAPI specification:Download

Authentication

BasicAuth

A autenticação com as APIs REST do weepay devem ser realizadas por token utilizando Basic Auth.

Para autenticar, você deve utilizar o token recebido como username em seu cliente HTTP. Caso ele não tenha suporte a Basic Auth, você deverá adicionar um header HTTP, exemplo: Authorization: Basic enBrX3Rlc3RfRXpDa3pGRktpYkdRVTZIRnE3RVlWdXhJOg==.

Este token deve ser serializado da seguinte forma: base64Encode($token + ":")

Toda a comunicação deve ser criptografada via SSL/HTTPS. O header de autenticação deve ser enviado para todos os endpoints disponíveis na API.

Security Scheme Type HTTP
HTTP Authorization Scheme basic

transactions

O recurso de transações é usado para debitar um cartão ou uma conta bancária eletronicamente via ACH.

Ele retorna um identificador exclusivo que pode ser posteriormente usado para emitir um reembolso integral ou parcial.

Você precisará de um método de pagamento válido (cartão ou conta bancária). Tanto o cartão como a conta bancária devem ser um token não usado ou um ID exclusivo existente já associado a um cliente. Alternativamente, você também pode usar um ID de pré-autorização.

Criar uma transação

Cria uma transação com base nos dados informados

Authorizations:
Request Body schema: application/json
reference_id
string

Código de referência ÚNICO para esta transação (pode ser utilizado posteriormente como filtro para encontrar a transação).

Caso informado um valor duplicado não será criada uma transação nova, será retornada a transação criada anteriormente.

amount
required
integer <int32>

Valor, em centavos, da transação

description
required
string

Descritivo da transação

customer
required
Customer (object) or SavedCustomer (object)
statement_descriptor
required
string

Um descritor de declaração é o nome da empresa que aparece no extrato mensal do cartão de crédito do cliente. Permite que o cliente identifique rapidamente as transações reduzindo disputas e atendimento ao cliente

payment_method
required
any

Dados da forma de pagamento

split_rules
Array of objects (SplitRule) non-empty

Array com as regras de Split da transação

Responses

200

Transação recuperada com sucesso (TRANSAÇÃO NÃO CRIADA)

201

Transação criada com sucesso

400

Conteúdo inválido

401

Não autorizado (Autenticação não informada ou inválida)

402

Requisição falhou

408

Gateway timeout

422

Requisição inválida

post/transactions
/v1/transactions

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "reference_id": "string",
  • "amount": 0,
  • "description": "string",
  • "customer":
    {
    },
  • "statement_descriptor": "string",
  • "payment_method":
    {
    },
  • "split_rules":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "004507a3cb2f4be6af99996b5dc3d309",
  • "status": "new",
  • "created_at": "2020-05-25T21:38:29Z",
  • "updated_at": "2020-05-25T21:38:29Z",
  • "reference_id": "string",
  • "amount": 0,
  • "fees": 0,
  • "description": "string",
  • "statement_descriptor": "string",
  • "payment_method":
    {
    },
  • "split_rules":
    [
    ]
}

Listagem de transações

Lista todas as transações do Seller

Authorizations:
query Parameters
limit
integer <int32> [ 1 .. 100 ]
Default: 100

Limite de registros a serem retornados, podendo ser entre 1 e 100

sort
string
Default: "time-descending"
Enum: "time-descending" "time-ascending"

Define a ordenação da consulta, com base na data de criação das transações

offset
integer <int32>
Default: 0

Ponto de início para paginação dos registros

page
integer <int32>
Default: 1

Página da consulta a ser retornada (deve ser usado este parâmetro ou o offset)

status
string
Example: status=pending,succeeded

Status das transações (pode ser concatenado para filtrar mais de um status ao mesmo tempo)

payment_type
string
Example: payment_type=credit,boleto,debit,wallet

Tipo de pagamento (pode ser concatenado para filtrar mais de um status ao mesmo tempo)

reference_id
string

Código de referência informado na criação da transação

created_from
string <date-time>
Example: created_from=2019-10-01T00:00:00Z

Filtro para data de criação da transação (maior/igual)

created_to
string <date-time>
Example: created_to=2019-10-01T00:00:00Z

Filtro para data de criação da transação (menor/igual)

Responses

200

Listagem paginada com as transações do Lojista

400

Parâmetro(s) inválido(s)

401

Não autorizado (Autenticação não informada ou inválida)

get/transactions
/v1/transactions

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/transactions',
  qs: {limit: '10', page: '1', sort: 'time-descending'},
  headers: {
    accept: 'application/json',
    authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='
  }
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "has_more": true,
  • "limit": 100,
  • "offset": 0,
  • "page": 0,
  • "total": 0,
  • "total_pages": 0
}

Consultar transação por ID

Retorna uma única transação para o ID informado

Authorizations:
path Parameters
transactionId
required
string

ID da Transação

Responses

200

Transação recuperada com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

404

Transação não encontrada

get/transactions/{transactionId}
/v1/transactions/{transactionId}

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/transactions/04fc9b6c27014c32bb014adb0ea3ff9e',
  headers: {
    accept: 'application/json',
    authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='
  }
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "004507a3cb2f4be6af99996b5dc3d309",
  • "status": "new",
  • "created_at": "2020-05-25T21:38:29Z",
  • "updated_at": "2020-05-25T21:38:29Z",
  • "reference_id": "string",
  • "amount": 0,
  • "fees": 0,
  • "description": "string",
  • "statement_descriptor": "string",
  • "payment_method":
    {
    },
  • "split_rules":
    [
    ]
}

Capturar transação

Realiza a captura total de uma transação

Authorizations:
path Parameters
transactionId
required
string

ID da Transação

Responses

204

Transação capturada com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

402

Requisição falhou

404

Transação não encontrada

post/transactions/{transactionId}/capture
/v1/transactions/{transactionId}/capture

Request samples

Copy
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.weepay.com.br/v1/transactions/04fc9b6c27014c32bb014adb0ea3ff9e/capture',
  headers: {
    accept: 'application/json',
    authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='
  },
  json: true
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "The capture request failed. Transaction could not be captured."
}

Estornar transação

Realiza o estorno (parcial ou total) de uma transação

Authorizations:
path Parameters
transactionId
required
string

ID da Transação

Request Body schema: application/json
amount
integer <int32> (amount)

Valor da venda a ser estornado, em centavos. Caso não informado será estornado o valor total da transação

Responses

204

Transação estornada com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

402

Requisição falhou

404

Transação não encontrada

post/transactions/{transactionId}/void
/v1/transactions/{transactionId}/void

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "amount": 0
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Transactions with status canceled and with confirmed flag setted to 1 are not voidable"
}

transfers

Uma transferência (pagamento) é uma operação onde os fundos são enviados para uma conta bancária com depósito direto da ACH.

Listagem de transferências

Lista todas as transferências do Seller

Authorizations:
query Parameters
limit
integer <int32> [ 1 .. 100 ]
Default: 100

Limite de registros a serem retornados, podendo ser entre 1 e 100

sort
string
Default: "time-descending"
Enum: "time-descending" "time-ascending"

Define a ordenação da consulta, com base na data de criação das transferências

offset
integer <int32>
Default: 0

Ponto de início para paginação dos registros

status
string (TransferStatus)
Enum: "pending" "succeeded" "canceled" "failed" "paid" "scheduled"

Status das transferências

created_from
string <date-time>
Example: created_from=2019-10-01T00:00:00Z

Filtro para data de criação da transferência (maior/igual)

created_to
string <date-time>
Example: created_to=2019-10-01T00:00:00Z

Filtro para data de criação da transferência (menor/igual)

amount_from
integer <int32>
Default: 0

Filtro por valor, em centavos, da transferência (maior/igual)

amount_to
integer <int32>
Default: 0

Filtro por valor, em centavos, da transferência (menor/igual)

Responses

200

Listagem paginada com as transferências do Lojista

400

Parâmetro(s) inválido(s)

401

Não autorizado (Autenticação não informada ou inválida)

get/transfers
/v1/transfers

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/transfers',
  qs: {limit: '20', offset: '0', sort : 'time-descending'},
  headers: {
    accept: 'application/json',
    authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='
  }
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ],
  • "has_more": true,
  • "limit": 100,
  • "offset": 0,
  • "total": 0
}

Consultar transferência por ID

Retorna uma única transferência para o ID informado

Authorizations:
path Parameters
transferId
required
string

ID da transferência

Responses

200

Transferência recuperada com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

404

Transferência não encontrada

get/transfers/{transferId}
/v1/transfers/{transferId}

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/transfers/fd51ee01c1254f59a3bcb267849fe615',
  headers: {
    accept: 'application/json',
    authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='
  }
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "004507a3cb2f4be6af99996b5dc3d780",
  • "type": "payout_automatic",
  • "status": "pending",
  • "amount": 0,
  • "description": "string",
  • "statement_descriptor": "string",
  • "transfer_number": "string",
  • "bank_account":
    {
    },
  • "created_at": "2020-05-25T21:38:29Z",
  • "updated_at": "2020-05-25T21:38:29Z",
  • "transfer_date": "2020-05-25"
}

customers

O objeto cliente (customer) é usado para editar, excluir e atualizar os clientes, bem como para permitir reembolsos, assinaturas, inserir detalhes do cartão de crédito para um cliente, editar detalhes e, claro, fazer transações.

É possível incluir um customer manualmente ou informar os seus dados no momento de criação da transação, na segunda forma o customer é criado ou atualizado automaticamente com os dados enviados.

Criar um cliente

Cria um cliente com base nos dados informados

Authorizations:
Request Body schema: application/json
document_number
required
string ^\d{11,14}$

CPF/CNPJ do cliente (apenas números)

email
required
string <email>

E-mail do cliente

name
required
string

Nome completo do cliente

birthdate
string <date>

Data de nascimento do cliente

phone_number
string

Número do telefone do cliente no formato E.164. Os números E.164 podem ter um máximo de quinze dígitos e geralmente são escritos da seguinte forma [+][código do país] [número do assinante, incluindo o código de área]

address
required
object (Address)

Dados de endereço do cliente

Responses

201

Cliente criado com sucesso

400

Conteúdo inválido

401

Não autorizado (Autenticação não informada ou inválida)

post/customers
/v1/customers

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "document_number": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "birthdate": "2020-05-25",
  • "phone_number": "string",
  • "address":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "created_at": "2020-05-25T21:38:29Z",
  • "updated_at": "2020-05-25T21:38:29Z",
  • "document_number": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "birthdate": "2020-05-25",
  • "phone_number": "string",
  • "address":
    {
    }
}

Consultar cliente pelo CPF/CNPJ

Retorna um único cliente para o CPF/CNPJ informado

Authorizations:
query Parameters
document_number
required
string

CPF/CNPJ do cliente

Responses

200

Cliente recuperado com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

404

Cliente não encontrado

get/customers/search
/v1/customers/search

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/customers/search',
  qs: {document_number: '88807751038'},
  headers: {authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "created_at": "2020-05-25T21:38:29Z",
  • "updated_at": "2020-05-25T21:38:29Z",
  • "document_number": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "birthdate": "2020-05-25",
  • "phone_number": "string",
  • "address":
    {
    }
}

Consultar cliente por ID

Retorna um único cliente para o ID informado

Authorizations:
path Parameters
customerId
required
string

ID do cliente

Responses

200

Cliente recuperado com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

404

Cliente não encontrado

get/customers/{customerId}
/v1/customers/{customerId}

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/customers/b4f633962b794ab8b94108620727a686',
  headers: {authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "created_at": "2020-05-25T21:38:29Z",
  • "updated_at": "2020-05-25T21:38:29Z",
  • "document_number": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "birthdate": "2020-05-25",
  • "phone_number": "string",
  • "address":
    {
    }
}

Atualizar um cliente

Atualiza o cliente com base nos dados informados

Authorizations:
Request Body schema: application/json
document_number
required
string ^\d{11,14}$

CPF/CNPJ do cliente (apenas números)

email
required
string <email>

E-mail do cliente

name
required
string

Nome completo do cliente

birthdate
string <date>

Data de nascimento do cliente

phone_number
string

Número do telefone do cliente no formato E.164. Os números E.164 podem ter um máximo de quinze dígitos e geralmente são escritos da seguinte forma [+][código do país] [número do assinante, incluindo o código de área]

address
required
object (Address)

Dados de endereço do cliente

Responses

204

Cliente atualizado com sucesso

400

Conteúdo inválido

401

Não autorizado (Autenticação não informada ou inválida)

404

Cliente não encontrado

put/customers/{customerId}
/v1/customers/{customerId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "document_number": "string",
  • "email": "user@example.com",
  • "name": "string",
  • "birthdate": "2020-05-25",
  • "phone_number": "string",
  • "address":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "request.body should have required property 'document_number'",
  • "errors":
    [
    ]
}

Criar um token de cartão para o cliente

Cria um token de cartão para o cliente com base nos dados informados. Este token pode ser utilizado posteriormente no momento de criar a transação, informando o token ao invés de todos os dados do cartão.

Authorizations:
Request Body schema: application/json
card_number
required
string [ 13 .. 19 ] characters

Número do cartão

holder_name
required
string

Nome do titular do cartão

expiration_month
required
string ^\d{2}$

Mês de vencimento do cartão (MM)

expiration_year
required
string ^\d{4}$

Ano de expiração do cartão (YYYY)

security_code
required
string ^\d{3}$

Código de segurança do cartão (CVC)

Responses

201

Token de cartão criado com sucesso

400

Conteúdo inválido

401

Não autorizado (Autenticação não informada ou inválida)

402

Requisição falhou

404

Cliente não encontrado

post/customers/{customerId}/cards
/v1/customers/{customerId}/cards

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "card_number": "stringstrings",
  • "holder_name": "string",
  • "expiration_month": "02",
  • "expiration_year": "2014",
  • "security_code": "123"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "card_brand": "string",
  • "card_number": "string",
  • "holder_name": "string",
  • "expiration_month": "02",
  • "expiration_year": "2014"
}

Consultar um token de cartão do cliente por ID

Retorna um único token de cartão do cliente para o ID informado

Authorizations:
path Parameters
customerId
required
string

ID do cliente

cardId
required
string

ID do cartão tokenizado

Responses

200

Token de cartão do cliente recuperado com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

404

Cliente ou token de cartão não encontrado

get/customers/{customerId}/cards/{cardId}
/v1/customers/{customerId}/cards/{cardId}

Request samples

Copy
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.weepay.com.br/v1/customers/b4f633962b794ab8b94108620727a686/cards/190a3b4c46714e89bb1f735609cc49b4',
  headers: {authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "card_brand": "string",
  • "card_number": "string",
  • "holder_name": "string",
  • "expiration_month": "02",
  • "expiration_year": "2014"
}

Deletar um Token de cartão do cliente por ID

Deleta um Token de cartão do cliente com o ID informado

Authorizations:
path Parameters
customerId
required
string

ID do cliente

cardId
required
string

ID do cartão tokenizado

Responses

204

Token de cartão do cliente deletado com sucesso

401

Não autorizado (Autenticação não informada ou inválida)

404

Cliente ou token de cartão não encontrado

delete/customers/{customerId}/cards/{cardId}
/v1/customers/{customerId}/cards/{cardId}

Request samples

Copy
var request = require("request");

var options = {
  method: 'DELETE',
  url: 'https://api.weepay.com.br/v1/customers/b4f633962b794ab8b94108620727a686/cards/190a3b4c46714e89bb1f735609cc49b4',
  headers: {authorization: 'Basic YjlhOTk4OWItN2I5My00YTkwLThmZTktMGE2NWUyNzhiOTNiOg=='}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});