Skip to main content
POST
/
api
/
v1
/
transfers
curl -X POST 'https://app.plowf.com/api/v1/transfers' \
  -H 'Authorization: Bearer seu_token_aqui' \
  -H 'Content-Type: application/json' \
  -d '{
    "value": 100.50,
    "pix_key": "12345678900",
    "document": "98765432100",
    "external_ref": "REF-001",
    "final_beneficiary": {
      "name": "João Silva",
      "document": "12345678900"
    }
  }'
{
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "value": 100.5,
    "fees": 0.5,
    "currency": "BRL",
    "status": "PROCESSING",
    "type": "PIX",
    "external_ref": "REF-001",
    "final_beneficiary": {
      "name": "João Silva",
      "document": "12345678900"
    },
    "transfer": {
      "uuid": "660e8400-e29b-41d4-a716-446655440001",
      "initiation": {
        "sender": {
          "name": "Empresa Exemplo Ltda",
          "document": "00000000000100",
          "account_number": "0000001",
          "account_agency": "0001",
          "bank": {
            "code": "",
            "name": "BANCO EXEMPLO IP LTDA.",
            "ispb": "00000000"
          },
          "account_type": "CHECKING"
        },
        "receiver": {
          "name": "João Silva",
          "document": "123.***.***-00",
          "account_number": "********************",
          "account_agency": "****",
          "bank": {
            "code": "260",
            "name": "BANCO EXEMPLO - IP",
            "ispb": "00000001"
          },
          "account_type": "CHECKING"
        },
        "txid": null,
        "value": 100.5,
        "type": "KEY",
        "pix_key": "12345678900",
        "status": "COMPLETED",
        "expires_at": null,
        "created_at": "2024-01-01T11:59:00Z",
        "updated_at": "2024-01-01T11:59:01Z"
      },
      "value": 100.5,
      "movement_type": "OUT",
      "type": "EXTERNAL_TRANSFER",
      "status": "PROCESSING",
      "end_to_end": "E000000002024010111590000000000",
      "settled_at": null,
      "created_at": "2024-01-01T11:59:00Z",
      "updated_at": "2024-01-01T11:59:01Z"
    },
    "history": [
      {
        "status": "PENDING",
        "created_at": "2024-01-01T11:59:00Z"
      },
      {
        "status": "PROCESSING",
        "created_at": "2024-01-01T11:59:01Z"
      }
    ],
    "created_at": "2024-01-01T11:59:00Z"
  }
}
Cria uma nova transferência PIX Out (envio de dinheiro).
curl -X POST 'https://app.plowf.com/api/v1/transfers' \
  -H 'Authorization: Bearer seu_token_aqui' \
  -H 'Content-Type: application/json' \
  -d '{
    "value": 100.50,
    "pix_key": "12345678900",
    "document": "98765432100",
    "external_ref": "REF-001",
    "final_beneficiary": {
      "name": "João Silva",
      "document": "12345678900"
    }
  }'

Body Parameters

value
number
required
Valor da transferência. Mínimo: 0.01
pix_key
string
required
Chave PIX do destinatário. Formatos aceitos:
  • CPF: 11 dígitos sem formatação (ex: 52998224725)
  • CNPJ: 14 dígitos sem formatação (ex: 12345678000100)
  • E-mail: endereço válido (ex: [email protected])
  • Telefone: número com código do país (ex: +5511999999999)
  • Chave aleatória: UUID (ex: 550e8400-e29b-41d4-a716-446655440000)
document
string
Documento do destinatário (CPF ou CNPJ). Deve ser válido se informado.
external_ref
string
Referência externa para identificação da transferência
provider_uuid
string
UUID do provedor a ser usado como origem da transferência. Quando omitido, a Plowf escolhe o provedor padrão da conta para PIX (configurável em PUT /providers/defaults). Liste os UUIDs disponíveis em GET /providers.Ignorado quando o token está vinculado a um provedor — neste caso, o provedor do token sempre prevalece.
final_beneficiary
object
required
Dados do beneficiário final (seller)

Validações

  • value deve ser maior que 0.01
  • Se final_beneficiary for enviado, ambos name e document são obrigatórios
  • document deve ser um CPF ou CNPJ válido se informado
  • pix_key deve ter no máximo 255 caracteres
  • provider_uuid, se informado, deve referenciar um provedor existente na conta. Se omitido, o provedor padrão de PIX da conta é usado.

Resposta de Sucesso

A resposta retorna o objeto da transferência criada com a mesma estrutura do endpoint de listagem, mas sem paginação.
{
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "value": 100.5,
    "fees": 0.5,
    "currency": "BRL",
    "status": "PROCESSING",
    "type": "PIX",
    "external_ref": "REF-001",
    "final_beneficiary": {
      "name": "João Silva",
      "document": "12345678900"
    },
    "transfer": {
      "uuid": "660e8400-e29b-41d4-a716-446655440001",
      "initiation": {
        "sender": {
          "name": "Empresa Exemplo Ltda",
          "document": "00000000000100",
          "account_number": "0000001",
          "account_agency": "0001",
          "bank": {
            "code": "",
            "name": "BANCO EXEMPLO IP LTDA.",
            "ispb": "00000000"
          },
          "account_type": "CHECKING"
        },
        "receiver": {
          "name": "João Silva",
          "document": "123.***.***-00",
          "account_number": "********************",
          "account_agency": "****",
          "bank": {
            "code": "260",
            "name": "BANCO EXEMPLO - IP",
            "ispb": "00000001"
          },
          "account_type": "CHECKING"
        },
        "txid": null,
        "value": 100.5,
        "type": "KEY",
        "pix_key": "12345678900",
        "status": "COMPLETED",
        "expires_at": null,
        "created_at": "2024-01-01T11:59:00Z",
        "updated_at": "2024-01-01T11:59:01Z"
      },
      "value": 100.5,
      "movement_type": "OUT",
      "type": "EXTERNAL_TRANSFER",
      "status": "PROCESSING",
      "end_to_end": "E000000002024010111590000000000",
      "settled_at": null,
      "created_at": "2024-01-01T11:59:00Z",
      "updated_at": "2024-01-01T11:59:01Z"
    },
    "history": [
      {
        "status": "PENDING",
        "created_at": "2024-01-01T11:59:00Z"
      },
      {
        "status": "PROCESSING",
        "created_at": "2024-01-01T11:59:01Z"
      }
    ],
    "created_at": "2024-01-01T11:59:00Z"
  }
}
data
object
Dados da transferência criada

Resposta de Falha (transferência rejeitada pelo provedor)

Quando o provedor recusa a transferência, a API responde com HTTP 400 e o mesmo payload de sucesso, porém com status = "FAILED" e o objeto error populado. Diferente de um erro 4xx clássico, o transfer é persistido — você pode consultá-lo depois via GET /transfers/{uuid} ou pelo external_ref.
{
  "message": "Saldo insuficiente para realizar transferência",
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "value": 100.5,
    "fees": 0.5,
    "currency": "BRL",
    "status": "FAILED",
    "type": "PIX",
    "pix_key": "12345678900",
    "external_ref": "REF-001",
    "error": {
      "code": "INSUFFICIENT_FUNDS",
      "message": "Saldo insuficiente para realizar transferência"
    },
    "created_at": "2024-01-01T11:59:00Z"
  }
}

Erros Comuns