Skip to main content
POST
/
v1
/
transfers
Create Transfer
curl --request POST \
  --url https://api.waycore.com/v1/transfers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "<string>",
  "amount": {
    "type": "<string>",
    "value": 1,
    "currency": "<string>"
  },
  "sourceAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "destination": {
    "type": "<string>",
    "accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "transferType": "<string>",
  "clientReference": "<string>",
  "executionDate": "2023-12-25",
  "memo": "<string>",
  "skipPreflight": false
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "requestedAmount": {
    "type": "<string>",
    "value": "<string>",
    "currency": "<string>"
  },
  "sourceAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "destination": {
    "type": "<string>",
    "accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "clientReference": "<string>",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "executedAmount": {
    "currency": "USD",
    "type": "money",
    "value": "1250.00"
  },
  "memo": "<string>",
  "failureReason": {
    "message": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.waycore.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Opaque API key passed as Authorization: Bearer <key>. Keys are organization-bound, environment-bound (live or test), scope-carrying, and expiring. Create and manage keys via the console.

Headers

Idempotency-Key
string | null

Optional caller-generated key used to safely retry create and retry requests. When provided, the key is assumed to identify one request for at least 24 hours: identical retries may return a replayed response and materially different payloads with the same key should return 409 Conflict.

Required string length: 1 - 255
Pattern: ^\S(?:.*\S)?$

Body

application/json
type
string
required

Internal account transfer.

Allowed value: "internal"
amount
MoneyAmount · object
required
Example:
{
"currency": "USD",
"type": "money",
"value": "1250.00"
}
sourceAccountId
string<uuid>
required

Source connected account identifier.

destination
InternalAccountDestination · object
required
transferType
string
required

Internal transfer rail.

Allowed value: "internal"
clientReference
string
required

Integrator-supplied payment reference distinct from the idempotency key.

Required string length: 1 - 140
executionDate
string<date> | null

Requested execution date. Omit for the earliest supported date.

memo
string | null

Integrator-visible memo.

Maximum string length: 500
skipPreflight
boolean
default:false

Whether to skip optional preflight checks before attempting execution.

Response

Successful Response

id
string<uuid>
required

Stable transfer identifier.

status
enum<string>
required

Current transfer lifecycle status. pending_bank_approval means Waycore has initiated the bank flow and the integrator should direct its user to approve in the bank portal.

Available options:
queued,
executing,
pending_bank_approval,
completed,
failed,
returned,
cancelled,
unknown
type
enum<string>
required

Transfer direction.

Available options:
internal,
external
requestedAmount
MoneyAmount · object
required

Amount requested by the caller.

Example:
{
"currency": "USD",
"type": "money",
"value": "1250.00"
}
sourceAccountId
string<uuid>
required

Source connected account identifier.

destination
InternalAccountDestination · object
required

Transfer destination.

transferType
enum<string>
required

Transfer rail used or requested.

Available options:
internal,
ach,
wire,
swift,
fednow,
rtp,
sepa,
local
clientReference
string
required

Integrator-supplied payment reference distinct from the idempotency key. Where supported by the bank, this is the reference sent with the payment.

createdAt
string<date-time>
required

When the transfer was created.

updatedAt
string<date-time>
required

When the transfer last changed.

executedAmount
MoneyAmount · object

Actual amount sent once execution is known.

Example:
{
"currency": "USD",
"type": "money",
"value": "1250.00"
}
memo
string | null

Integrator-visible memo.

failureReason
TransferFailureReason · object

Failure details when status is failed, returned, or cancelled.