Transferência entre contas BaaS

Essa funcionalidade permite que os clientes da Celcoin consigam efetuar transferências entre contas BaaS Celcoin.


Pré requisitos para implementação:

  • Possuir uma chave API da Celcoin, para mais informações acessar esse link;

  • Ter familiaridade com o padrão REST usando o protocolo OAuth 2.0;

  • Ter o produto/solução contratado e habilitado em produção.

    • Caso queira usar a funcionalidade em ambiente produtivo, por favor entre em contato com a nossa equipe comercial através do e-mail [email protected]. Para dúvidas técnicas, basta entrar em contato com o suporte através do link;
  • Possuir duas conta no BaaS da Celcoin (Conta essa responsável por enviar e a outra por receber o valor).

🚧

IMPORTANTE

Hoje só é possível realizar transferências entre o mesmo cliente!

Transferências entre diferentes clientes em breve estarão disponíveis


Passos para Integrar

  1. Realizar autenticação na API - [API Reference]
  2. Realizar uma transferência entre contas - [API Reference]
  3. Receber o Webhook com Status da transferência
  4. Caso seja necessário você pode consultar o status da transação manualmente.

Descrição dos campos

CampoDescriçãoTipo Campo
amountValor da transação.number($double)
clientRequestIdIdentificador único gerado pelo cliente.String
debitParty{Objeto
accountNúmero da conta de origem (Quem irá pagar).String
}
creditParty {Objeto
accountNúmero da Conta de destino (Quem irá receber).String
}
descriptionCampo opcional.String

JSON de exemplo

{
  "amount": 25.55,
  "clientRequestId": "1458854",
  "debitParty": {
    "account": "444444"
  },
  "creditParty": {
    "account": "444444"
  },
  "description": "string"
}

cURL da chamada

curl --location 'https://sandbox.openfinance.celcoin.dev/baas-wallet-transactions-webservice/v1/wallet/internal/transfer' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Token}}' \
--data '{
  "amount": 25.55,
  "clientRequestId": "1458854",
  "debitParty": {
    "account": "444444"
  },
  "creditParty": {
    "account": "444444"
  },
  "description": "string"
}'

Exemplo de retorno

👍

Sucesso 200

{
  "status": "PROCESSING",
  "version": "1.0.0",
  "body": {
    "id": "34fee7bc-4d40-4605-9af8-398ed7d0d6b5",
    "amount": 0,
    "clientRequestId": "1458854",
    "endToEndId": "string",
    "debitParty": {
      "account": "444444",
      "taxId": "11122233344",
      "name": "string",
      "branch": "string",
      "bank": "string"
    },
    "creditParty": {
      "account": "10545584",
      "taxId": "11122233344",
      "name": "string",
      "branch": "string",
      "bank": "string"
    },
    "description": "transferencia para o churrasco"
  }
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "CIE999",
    "message": "Ocorreu um erro interno durante a chamada da api."
  }
}

Tabela de errorCode

CodeMessage
CBE094amount é obrigatório.
CBE095amount invalido.Favor verificar a formatação do campo e deve ser maior que 0.
CBE100Existe um lançamento idêntico pendente.Favor aguarde para realizar esta operação para evitar duplicidade.
CBE101Já existe um lançamento com o mesmo clientCode. Favor realizar uma nova operação.
CBE102Lançamento de debito não permitido.Valor ultrapassa o limite maximo permitido por operação.
CBE107debitParty é obrigatório.
CBE108debitparty.account é obrigatório.
CBE109debitparty.account invalido.
CBE110debitparty.account possui tamanho maximo de 20 caracteres.
CBE115creditParty é obrigatório.
CBE116creditparty.account é obrigatório.
CBE117creditparty.account invalido.
CBE118creditparty.account possui tamanho maximo de 20 caracteres.
CBE123Transação não permitida.Conta com saldo insuficiente.
CBE124Lançamento não permitido. debit.account esta encerrada.
CBE125Lançamento não permitido. credit.account esta encerrada.
CBE147Lançamento não permitido. debit.account esta bloqueada.
CBE148Lançamento não permitido. credit.account esta bloqueada.
CBE261clientRequestId é obrigatório.
CBE308clientRequestId possui tamanho máximo de 200 caracteres.
CBE312Não é permitido enviar TEF para a mesma conta.
CBE314debitparty.account não encontrada.
CBE315creditparty.account não encontrada.
CBE328Cliente da conta de credito não esta ativo para utilizar a Api.
CBE329É necessário informar pelo menos um dos campos: id ou clientrequestid
CBE332Parametro Id ultrapassou o limite maximo de 36 caracteres.

Webhooks de Transferências entre contas

EventoDescrição
internal-transfer-outApós uma transferência ser realizada
internal-transfer-inApós uma receber uma transferência

internal-transfer-out

{
  "entity": "internal-transfer-out",
  "createTimestamp": "2023-07-20T09:43:53.2077798",
  "status": "CONFIRMED",
  "body": {
    "id": "c4ab9f3d-2b25-4b8a-a6b2-7f277742db05",
    "amount": 0.01,
    "clientRequestId": "124eb1e5-62b9-492b-9d13-dc8a58786305",
    "creditParty": {
      "account": "123456",
      "taxId": "123456",
      "name": "nome credito",
      "branch": "0001",
      "bank": "13935893"
    },
    "debitParty": {
      "account": "123456",
      "taxId": "123456",
      "name": "nome debito",
      "branch": "0001",
      "bank": "13935893"
    },
    "endToEndId": "e25598a9-5278-4219-a278-ae5e3602dcae",
    "description": "teste TEF sucesso"
  }
}

internal-transfer-in

{
  "entity": "internal-transfer-in",
  "createTimestamp": "2023-07-20T09:43:53.2920444",
  "status": "CONFIRMED",
  "body": {
    "id": "ac5396c9-8398-40be-bdee-9a3d400e5f20",
    "amount": 0.01,
    "creditParty": {
      "account": "123456",
      "taxId": "123456",
      "name": "nome credito",
      "branch": "0001",
      "bank": "13935893"
    },
    "debitParty": {
      "account": "123456",
      "taxId": "123456",
      "name": "nome debito",
      "branch": "0001",
      "bank": "13935893"
    },
    "endToEndId": "e25598a9-5278-4219-a278-ae5e3602dcae",
    "description": "teste TEF sucesso"
  }
}