Sends
A sendSend A transaction type that allows sending funds to another identity's instrument or to a beneficiary. Send transactions may require Strong Customer Authentication depending on the destination and whether it's a trusted beneficiary. is a transaction that moves funds between two instrumentsInstrument A financial product owned by an Identity. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases). managed by Weavr. The source and destination can be managed accounts or managed cards belonging to different corporate or consumer identities.
Prerequisites
Before your customers can submit a send, they must:
- Create a managed account or create a managed card.
- Enroll their device for Strong Customer Authentication.
Create a send
To create a single send, provide:
source- the instrumentInstrument A financial product owned by an Identity. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases). funds are taken from. This can be of typemanaged_cardsormanaged_accounts.destination- the instrumentInstrument A financial product owned by an Identity. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases). funds are transferred to. This can be amanaged_card,managed_account, or abeneficiaryId.destinationAmount- the amount to transfer.
- Request
- Response
{
"profileId": "string",
"tag": "string",
"source": {
"id": "string",
"type": "managed_cards"
},
"destination": {
"id": "string",
"type": "managed_cards"
},
"destinationAmount": {
"currency": "str",
"amount": 0
},
"description": "string",
"scheduledTimestamp": "string"
}
{
"id": "string",
"profileId": "string",
"tag": "string",
"source": {
"id": "string",
"type": "managed_cards"
},
"sourceFee": {
"currency": "str",
"amount": 0
},
"destination": {
"id": "string",
"type": "managed_cards"
},
"destinationAmount": {
"currency": "str",
"amount": 0
},
"destinationFee": {
"currency": "str",
"amount": 0
},
"transactionAmount": {
"currency": "str",
"amount": 0
},
"description": "string",
"state": "INVALID",
"challengeExemptionReason": "LOW_VALUE",
"creationTimestamp": 0,
"scheduledTimestamp": "string",
"executionTimestamp": "string",
"cancellationReason": "string"
}
After creating the send, the customer must complete a Strong Customer Authentication challenge before the transaction is processed. See Transaction confirmation.
Bulk sends
Sends can be created in bulk using the same flow as other bulk operationsBulk Operations The capability of grouping multiple individual API-based actions into a batch. Bulk operations allow you to execute hundreds or thousands of operations by making only one or two API calls, increasing throughput, accomplishing actions in a secure session, and reducing complexity in your application., executed via the Bulk ProcessBulk Process A task created when initiating a group of bulk operations. The Bulk Process has a consistent lifecycle (statuses) and management method, regardless of the type of operation being performed. It can be in states such as SUBMITTED, RUNNING, PAUSED, CANCELLED, or completed states.. Bulk sends still require transaction confirmation, but multiple challenges can be grouped and verified in a single action. See the Bulk Process and Bulk Processing Operations that require a Transaction Confirmation.
Scheduled sends
Single and bulk sends can be scheduled to execute at a future date and time. Set the scheduledTimestamp field (UTC) on the request. Once the transaction is scheduled and validations pass, you receive a webhook with the transaction state set to SCHEDULED.
Scheduled transactions can be confirmed at any point before their scheduledTimestamp.
Cancel a scheduled send
You can cancel a scheduled send at any time before its execution. Provide the transaction id and an optional cancellation reason:
- Request
- Response
{
"cancellations": [
{
"id": "string",
"cancellationReason": "string"
}
]
}
{
"cancellations": [
{
"id": "string",
"state": "SUCCESS",
"errorCode": "GENERIC"
}
]
}
Only transactions in state SCHEDULED can be canceled. Canceling a scheduled transaction does not require SCASCA Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics)..
Retrieve a send
Sends are typically executed instantly, but our risk assessment may run before execution. Retrieve the current state of a send using the API:
- Response
{
"id": "string",
"profileId": "string",
"tag": "string",
"source": {
"id": "string",
"type": "managed_cards"
},
"sourceFee": {
"currency": "str",
"amount": 0
},
"destination": {
"id": "string",
"type": "managed_cards"
},
"destinationAmount": {
"currency": "str",
"amount": 0
},
"destinationFee": {
"currency": "str",
"amount": 0
},
"transactionAmount": {
"currency": "str",
"amount": 0
},
"description": "string",
"state": "INVALID",
"challengeExemptionReason": "LOW_VALUE",
"creationTimestamp": 0,
"scheduledTimestamp": "string",
"executionTimestamp": "string",
"cancellationReason": "string"
}
| Send state | Description |
|---|---|
| INVALID | The send transaction has failed initial validation checks. |
| PENDING_CHALLENGE | The send transaction requires the completion of a transaction confirmation challenge before it can be submitted. |
| INITIALIZED | The initial state of a send transaction when SCASCA Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics). is not required. |
| PENDING | The send transaction has exceeded the destination limit and is pending treasury approval. |
| APPROVED | The send transaction that was submitted has been approved. |
| COMPLETED | The requested funds have been sent from the source instrumentInstrument A financial product owned by an Identity. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases).. |
| REJECTED | The send transaction that was submitted was rejected. |
| FAILED | There was an issue with the send transaction, and the transaction has failed. |
| RETURNED | The send transaction has been returned to the sender. |
| SCHEDULED | The send transaction will be executed at the scheduled time. |
| CANCELED | The scheduled send transaction has been canceled. |
Transaction confirmation
Under PSD2, all sends must be verified with Strong Customer Authentication (SCASCA Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics).) before they are processed. After submitting a send, verify it using the transaction confirmation guide.
The /multi/challenges/otp/{channel} endpoint can verify a single send or multiple sends at once - pass the send IDs in the resourceIds field. Use this endpoint instead of the deprecated single-OWTOWT Outgoing Wire Transfer - a transaction that moves funds from a Weavr managed account to a bank account held at a third-party financial institution. OWTs require the managed account to have an assigned IBAN and the user to complete Strong Customer Authentication. endpoint.