You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _transactions.md
+139-1Lines changed: 139 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -167,7 +167,7 @@ An optional parameter `message` can also be sent which will overwrite the value
167
167
Once the transaction is committed, its status will change to `processing`.
168
168
169
169
<asideclass="notice">
170
-
This must be done within the time window specified (in miliseconds) by the <ahref="#parameters"><code>params.ttl</code></a> field of the transaction object.
170
+
This must be done within the time window specified (in milliseconds) by the <ahref="#parameters"><code>params.ttl</code></a> field of the transaction object.
171
171
Attempting to commit a transaction past this timeframe results in a <ahref="#errors">404 HTTP error</a>.
172
172
</aside>
173
173
<asideclass="notice">
@@ -267,6 +267,144 @@ url | The URL of the 3DSecure confirmation request.
267
267
268
268
A webpage for 3DSecure confirmation for the user to interact with.
269
269
270
+
## Beneficiary Information
271
+
272
+
> Example of a transaction creation payload including `beneficiary` and `purpose` fields:
When creating a transaction, it may be required to send additional information
297
+
regarding the beneficiary and purpose of the transaction.
298
+
This is required if **both** the following conditions are met:
299
+
300
+
- The transaction is either a withdrawal to an external account (crypto networks, SEPA bank accounts, etc.) or a transfer to another user; and
301
+
- The transaction amount is over _$3000 USD_ (or over $1000 USD, if the origin user is from Arizona, United States).
302
+
303
+
<asideclass="notice">
304
+
The threshold value is calculated from the <ahref="#normalized">normalized</a> USD amount of the transaction,
305
+
which can differ from the amount specified in the <code>denomination.amount</code> field
306
+
if the transaction implies a currency conversion.
307
+
</aside>
308
+
<asideclass="notice">
309
+
Note: ACH withdrawals are <b>not required</b> to send beneficiary information,
310
+
since we only support personal bank accounts, so the beneficiary (ACH account holder)
311
+
is assumed to be the Uphold user who added that account.
312
+
</aside>
313
+
314
+
The beneficiary information should be provided in the `beneficiary` object of the request payload.
315
+
The `beneficiary.relationship` field must always be filled whenever beneficiary information is required.
316
+
The other fields can be omitted if the data is already present in the Uphold platform
317
+
(e.g. if the transaction is to an existing Uphold user, or the `beneficiary.relationship` is set to "myself").
318
+
319
+
The `relationship` field is a string reflecting the beneficiary's relationship to the transaction originator.
320
+
Two particular types of transactions are recognized by the platform:
321
+
business transactions (indicated by a `relationship` field with the value `business`)
322
+
and personal transactions (indicated by the values `child`, `co_worker`, `friend`, `parent`, or `sibling`).
323
+
The value `myself` can also be used when applicable.
324
+
325
+
Depending on the conditions of the transaction, additional fields may be required — namely, the beneficiary `name` and `address` (with subfields `city`, `country`, `line1`, `line2`, `state`, `zipCode`),
326
+
as well as a `purpose` object indicating the reason for the transaction.
327
+
328
+
To obtain the beneficiary requirements (or validate the `beneficiary` object) when preparing a transaction,
329
+
use the `?validate=true` parameter in the query string of the request to create a transaction.
330
+
This will generate a validation error if any required beneficiary information is missing.
331
+
Otherwise, the transaction will fail at the commit step with a similar error message.
332
+
333
+
<asideclass="notice">
334
+
Please note that at this moment, even with the <code>validate=true</code> parameter,
335
+
the validation is only performed if a <code>beneficiary</code> object is passed.
336
+
</aside>
337
+
338
+
> Example of including the beneficiary information when creating an uncommitted transaction (i.e. quote), alongside the remaining transaction data:
0 commit comments