Skip to main content

Overview

The Transfers API moves funds between PWS accounts. You can send to a destination by account ID, username tag, or email. Same-asset transfers settle synchronously, while transfers held for compliance review progress asynchronously. Prerequisites:
  • Payward Services API credentials (see the Authentication guide)
  • A funded PWS account with sufficient balance in the send asset
  • Base URL: https://api.services.payward.com

Workflow

A typical integration follows four steps:
1

Create a transfer

POST /v1/accounts/{account_id}/transfers
2

Poll for status

GET /v1/transfers/{transfer_id}
3

List and reconcile

GET /v1/accounts/{account_id}/transfers
4

Cancel (if needed)

POST /v1/transfers/{transfer_id}/cancel

Transfer lifecycle

Same-asset transfers between PWS accounts typically return completed immediately. Compliance-held transfers return pending and progress asynchronously.

Destination types

The to object is polymorphic: set exactly one of the following fields. Setting zero or more than one returns 400 Bad Request.

Creating a transfer

Send a POST to /v1/accounts/{account_id}/transfers. Include an Idempotency-Key header (UUIDv4) for safe retries; replayed responses include the Idempotent-Replayed: true header.

cURL example

Response (201 Created)

If the response returns status: completed, the transfer has already settled — no polling required.

Polling for status

If the create response returns status: pending, poll GET /v1/transfers/{transfer_id} until the status reaches completed, failed, or cancelled. Alternatively, subscribe to transfer webhooks for real-time updates.

Listing transfers

GET /v1/accounts/{account_id}/transfers returns results in reverse chronological order with opaque page-token pagination. next_page_token is absent on the final page.

Query parameters

Cancelling a transfer

POST /v1/transfers/{transfer_id}/cancel cancels a transfer still in pending status. Transfers that have progressed beyond pending return 409 Conflict. Include an Idempotency-Key header.

Metadata

Attach optional key/value pairs to transfers for reconciliation and reporting. Three keys have reserved behavior: Additional partner-defined keys are accepted: at most 20 entries, keys matching ^[a-zA-Z0-9_]{1,40}$, values as strings up to 500 characters.

Error handling