Download OpenAPI specification:Download
API for managing global payments to and from UMA addresses. This service facilitates cross-currency financial transactions using simple human-readable UMA addresses.
Platform configuration endpoints for managing global settings. You can also configure these settings in the UMAaas dashboard.
Retrieve the current platform configuration
{- "id": "PlatformConfig:019542f5-b3e7-1d02-0000-000000000003",
- "umaDomain": "platform.uma.domain",
- "proxyUmaaasSubdomain": "platform",
- "supportedCurrencies": [
- {
- "currencyCode": "USD",
- "minAmount": 100,
- "maxAmount": 1000000,
- "requiredCounterpartyFields": [
- {
- "name": "FULL_NAME",
- "mandatory": true
}, - {
- "name": "BIRTH_DATE",
- "mandatory": true
}, - {
- "name": "NATIONALITY",
- "mandatory": true
}
], - "umaProviderRequiredUserFields": [
- "NATIONALITY",
- "BIRTH_DATE"
], - "umaProviderRequiredCounterpartyUserFields": [
- "FULL_NAME",
- "COUNTRY_OF_RESIDENCE"
], - "enabledTransactionTypes": [
- "OUTGOING",
- "INCOMING"
]
}
], - "createdAt": "2023-06-15T12:30:45Z",
- "updatedAt": "2023-06-15T12:30:45Z"
}
Update the platform configuration settings
umaDomain | string |
webhookEndpoint | string |
Array of objects (PlatformCurrencyConfig) |
{- "umaDomain": "mycompany.com",
- "supportedCurrencies": [
- {
- "currencyCode": "USD",
- "minAmount": 100,
- "maxAmount": 1000000,
- "enabledTransactionTypes": [
- "OUTGOING",
- "INCOMING"
], - "requiredCounterpartyFields": [
- {
- "name": "FULL_NAME",
- "mandatory": true
}, - {
- "name": "NATIONALITY",
- "mandatory": true
}, - {
- "name": "BIRTH_DATE",
- "mandatory": true
}
]
}
]
}
{- "id": "PlatformConfig:019542f5-b3e7-1d02-0000-000000000003",
- "umaDomain": "platform.uma.domain",
- "proxyUmaaasSubdomain": "platform",
- "supportedCurrencies": [
- {
- "currencyCode": "USD",
- "minAmount": 100,
- "maxAmount": 1000000,
- "requiredCounterpartyFields": [
- {
- "name": "FULL_NAME",
- "mandatory": true
}, - {
- "name": "BIRTH_DATE",
- "mandatory": true
}, - {
- "name": "NATIONALITY",
- "mandatory": true
}
], - "umaProviderRequiredUserFields": [
- "NATIONALITY",
- "BIRTH_DATE"
], - "umaProviderRequiredCounterpartyUserFields": [
- "FULL_NAME",
- "COUNTRY_OF_RESIDENCE"
], - "enabledTransactionTypes": [
- "OUTGOING",
- "INCOMING"
]
}
], - "createdAt": "2023-06-15T12:30:45Z",
- "updatedAt": "2023-06-15T12:30:45Z"
}
Register a new user in the system with UMA address and bank account information
umaAddress required | string full UMA address |
platformUserId required | string Platform-specific user identifier |
userType required | string (UserType) Whether the user is an individual or a business entity |
fullName | string Individual's full name |
birthDate | string <date> Date of birth in ISO 8601 format (YYYY-MM-DD) |
nationality | string Country code (ISO 3166-1 alpha-2) |
object (Address) | |
required | UserClabeAccountInfo (object) or UserUsAccountInfo (object) or UserPixAccountInfo (object) or UserIbanAccountInfo (object) or UserFboAccountInfo (object) or UserUpiAccountInfo (object) (UserBankAccountInfo) |
{- "umaAddress": "$jane.doe@uma.domain.com",
- "platformUserId": "7b3c5a89d2f1e0",
- "userType": "INDIVIDUAL",
- "fullName": "Jane Doe",
- "birthDate": "1992-03-25",
- "address": {
- "line1": "123 Pine Street",
- "line2": "Unit 501",
- "city": "Seattle",
- "state": "WA",
- "postalCode": "98101",
- "country": "US"
}, - "bankAccountInfo": {
- "accountType": "US_ACCOUNT",
- "accountNumber": "12345678901",
- "routingNumber": "123456789",
- "accountCategory": "CHECKING",
- "bankName": "Chase Bank",
- "platformAccountId": "chase_primary_1234"
}
}
{- "id": "User:019542f5-b3e7-1d02-0000-000000000001",
- "umaAddress": "$john.doe@uma.domain.com",
- "platformUserId": "9f84e0c2a72c4fa",
- "userType": "INDIVIDUAL",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z",
- "isDeleted": false,
- "fullName": "John Michael Doe",
- "birthDate": "1990-01-15",
- "nationality": "US",
- "address": {
- "line1": "123 Main Street",
- "line2": "Apt 4B",
- "city": "San Francisco",
- "state": "CA",
- "postalCode": "94105",
- "country": "US"
}, - "bankAccountInfo": {
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe",
- "platformAccountId": "acc_123456789",
- "accountType": "CLABE"
}
}
Retrieve a list of users with optional filtering parameters. Returns all users that match the specified filters. If no filters are provided, returns all users (paginated).
platformUserId | string Filter by platform-specific user identifier |
umaAddress | string Filter by UMA address |
userType | string (UserType) Enum: "INDIVIDUAL" "BUSINESS" Example: userType=INDIVIDUAL Filter by user type |
createdAfter | string <date-time> Filter users created after this timestamp (inclusive) |
createdBefore | string <date-time> Filter users created before this timestamp (inclusive) |
updatedAfter | string <date-time> Filter users updated after this timestamp (inclusive) |
updatedBefore | string <date-time> Filter users updated before this timestamp (inclusive) |
limit | integer [ 1 .. 100 ] Default: 20 Maximum number of results to return (default 20, max 100) |
cursor | string Cursor for pagination (returned from previous request) |
isIncludingDeleted | boolean Whether to include deleted users in the results. Default is false. |
{- "data": [
- {
- "id": "User:019542f5-b3e7-1d02-0000-000000000001",
- "umaAddress": "$john.doe@uma.domain.com",
- "platformUserId": "9f84e0c2a72c4fa",
- "userType": "INDIVIDUAL",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z",
- "isDeleted": false,
- "fullName": "John Michael Doe",
- "birthDate": "1990-01-15",
- "nationality": "US",
- "address": {
- "line1": "123 Main Street",
- "line2": "Apt 4B",
- "city": "San Francisco",
- "state": "CA",
- "postalCode": "94105",
- "country": "US"
}, - "bankAccountInfo": {
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe",
- "platformAccountId": "acc_123456789",
- "accountType": "CLABE"
}
}
], - "hasMore": true,
- "nextCursor": "string",
- "totalCount": 0
}
Retrieve a user by their system-generated ID
userId required | string System-generated unique user identifier |
{- "id": "User:019542f5-b3e7-1d02-0000-000000000001",
- "umaAddress": "$john.doe@uma.domain.com",
- "platformUserId": "9f84e0c2a72c4fa",
- "userType": "INDIVIDUAL",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z",
- "isDeleted": false,
- "fullName": "John Michael Doe",
- "birthDate": "1990-01-15",
- "nationality": "US",
- "address": {
- "line1": "123 Main Street",
- "line2": "Apt 4B",
- "city": "San Francisco",
- "state": "CA",
- "postalCode": "94105",
- "country": "US"
}, - "bankAccountInfo": {
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe",
- "platformAccountId": "acc_123456789",
- "accountType": "CLABE"
}
}
Update a user's metadata by their system-generated ID
userId required | string System-generated unique user identifier |
umaAddress | string Full UMA address |
fullName | string Individual's full name |
birthDate | string <date> Date of birth in ISO 8601 format (YYYY-MM-DD) |
nationality | string Country code (ISO 3166-1 alpha-2) |
object (Address) | |
UserClabeAccountInfo (object) or UserUsAccountInfo (object) or UserPixAccountInfo (object) or UserIbanAccountInfo (object) or UserFboAccountInfo (object) or UserUpiAccountInfo (object) (UserBankAccountInfo) |
{- "userType": "INDIVIDUAL",
- "fullName": "John Smith",
- "birthDate": "1985-06-15",
- "address": {
- "line1": "456 Market St",
- "city": "San Francisco",
- "state": "CA",
- "postalCode": "94103",
- "country": "US"
}, - "bankAccountInfo": {
- "accountType": "US_ACCOUNT",
- "accountNumber": "11122233344",
- "routingNumber": "111222333",
- "accountCategory": "CHECKING",
- "bankName": "Wells Fargo",
- "platformAccountId": "wf_checking_9012"
}
}
{- "id": "User:019542f5-b3e7-1d02-0000-000000000001",
- "umaAddress": "$john.doe@uma.domain.com",
- "platformUserId": "9f84e0c2a72c4fa",
- "userType": "INDIVIDUAL",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z",
- "isDeleted": false,
- "fullName": "John Michael Doe",
- "birthDate": "1990-01-15",
- "nationality": "US",
- "address": {
- "line1": "123 Main Street",
- "line2": "Apt 4B",
- "city": "San Francisco",
- "state": "CA",
- "postalCode": "94105",
- "country": "US"
}, - "bankAccountInfo": {
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe",
- "platformAccountId": "acc_123456789",
- "accountType": "CLABE"
}
}
Delete a user by their system-generated ID
userId required | string System-generated unique user identifier |
{- "id": "User:019542f5-b3e7-1d02-0000-000000000001",
- "umaAddress": "$john.doe@uma.domain.com",
- "platformUserId": "9f84e0c2a72c4fa",
- "userType": "INDIVIDUAL",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z",
- "isDeleted": false,
- "fullName": "John Michael Doe",
- "birthDate": "1990-01-15",
- "nationality": "US",
- "address": {
- "line1": "123 Main Street",
- "line2": "Apt 4B",
- "city": "San Francisco",
- "state": "CA",
- "postalCode": "94105",
- "country": "US"
}, - "bankAccountInfo": {
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe",
- "platformAccountId": "acc_123456789",
- "accountType": "CLABE"
}
}
Upload a CSV file containing user information for bulk creation. The CSV file should follow a specific format with required and optional columns based on user type.
The CSV file should have the following columns:
Required columns for all users:
Required columns for individual users:
Required columns for business users:
Optional columns for all users:
Optional columns for individual users:
Optional columns for business users:
Additional required columns based on account type:
For US_ACCOUNT:
For CLABE:
For PIX:
For IBAN:
See the UserBankAccountInfo and UserInfo schemas for more details on the required and optional fields.
umaAddress,platformUserId,userType,fullName,birthDate,addressLine1,city,state,postalCode,country,accountType,accountNumber,bankName,platformAccountId,businessLegalName,routingNumber,accountCategory
john.doe@uma.domain.com,user123,INDIVIDUAL,John Doe,1990-01-15,123 Main St,San Francisco,CA,94105,US,US_ACCOUNT,123456789,Chase Bank,chase_primary_1234,,222888888,SAVINGS
acme@uma.domain.com,biz456,BUSINESS,,,400 Commerce Way,Austin,TX,78701,US,US_ACCOUNT,987654321,Bank of America,boa_business_5678,Acme Corp,121212121,CHECKING
The upload process is asynchronous and will return a job ID that can be used to track progress.
You can monitor the job status using the /users/bulk/jobs/{jobId}
endpoint.
file required | string <binary> CSV file containing user information |
{- "jobId": "Job:019542f5-b3e7-1d02-0000-000000000006",
- "status": "PENDING"
}
Retrieve the current status and results of a bulk user import job. This endpoint can be used to track the progress of both CSV uploads.
The response includes:
jobId required | string ID of the bulk import job to retrieve |
{- "jobId": "Job:019542f5-b3e7-1d02-0000-000000000006",
- "status": "PROCESSING",
- "progress": {
- "total": 5000,
- "processed": 2500,
- "successful": 2450,
- "failed": 50
}, - "errors": [
- {
- "correlationId": "biz456",
- "error": {
- "code": "string",
- "message": "string",
- "details": { }
}
}
], - "completedAt": "2023-08-15T14:32:00Z"
}
Retrieve detailed information about a specific transaction
transactionId required | string Unique identifier of the transaction |
{- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}, - "receivedAmount": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "reconciliationInstructions": {
- "reference": "UMA-Q12345-REF"
}, - "rateDetails": {
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}, - "failureReason": "LNURLP_FAILED"
}
Retrieve a paginated list of transactions with optional filtering. The transactions can be filtered by user ID, platform user ID, UMA address, date range, status, and transaction type.
userId | string Filter by system user ID |
platformUserId | string Filter by platform-specific user ID |
umaAddress | string Filter by UMA address (either sender or receiver) |
senderUmaAddress | string Filter by sender UMA address |
receiverUmaAddress | string Filter by receiver UMA address |
status | string (TransactionStatus) Enum: "CREATED" "PENDING" "PROCESSING" "COMPLETED" "REJECTED" "FAILED" "REFUNDED" "EXPIRED" Filter by transaction status |
type | string (TransactionType) Enum: "INCOMING" "OUTGOING" Filter by transaction type |
reference | string Filter by reference |
startDate | string <date-time> Filter by start date (inclusive) in ISO 8601 format |
endDate | string <date-time> Filter by end date (inclusive) in ISO 8601 format |
limit | integer [ 1 .. 100 ] Default: 20 Maximum number of results to return (default 20, max 100) |
cursor | string Cursor for pagination (returned from previous request) |
sortOrder | string Default: "desc" Enum: "asc" "desc" Order to sort results in |
{- "data": [
- {
- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}
}
], - "hasMore": true,
- "nextCursor": "string",
- "totalCount": 0
}
Approve a pending incoming payment that was previously acknowledged with a 202 response. This endpoint allows platforms to asynchronously approve payments after async processing.
transactionId required | string Unique identifier of the transaction to approve |
object Information about the recipient, provided by the platform if requested in the original webhook via | |||
|
{- "receiverUserInfo": { }
}
{- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}, - "receivedAmount": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "reconciliationInstructions": {
- "reference": "UMA-Q12345-REF"
}, - "rateDetails": {
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}, - "failureReason": "LNURLP_FAILED"
}
Reject a pending incoming payment that was previously acknowledged with a 202 response. This endpoint allows platforms to asynchronously reject payments after additional processing.
transactionId required | string Unique identifier of the transaction to reject |
reason | string Optional reason for rejecting the payment. This is just for debugging purposes or can be used for a platform's own purposes. |
{- "reason": "RESTRICTED_JURISDICTION"
}
{- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}, - "receivedAmount": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "reconciliationInstructions": {
- "reference": "UMA-Q12345-REF"
}, - "rateDetails": {
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}, - "failureReason": "LNURLP_FAILED"
}
Lookup a receiving UMA address to determine supported currencies and exchange rates. This endpoint helps platforms determine what currencies they can send to a given UMA address.
receiverUmaAddress required | string UMA address of the intended recipient |
senderUmaAddress | string UMA address of the sender (optional if userId is provided) |
userId | string System ID of the sender (optional if senderUmaAddress is provided) |
{- "receiverUmaAddress": "$receiver@uma.domain",
- "supportedCurrencies": [
- {
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "estimatedExchangeRate": 1.08,
- "min": 1,
- "max": 1000000
}
], - "requiredPayerDataFields": [
- {
- "name": "FULL_NAME",
- "mandatory": true
}
], - "lookupId": "Lookup:019542f5-b3e7-1d02-0000-000000000009"
}
Generate a quote for a payment from one UMA address to another. The quote locks in exchange rates and fees for a set period of time and provides payment instructions that can be used to execute the payment.
Depending on the lockedCurrencySide
parameter, either the sending amount or
receiving amount will be locked.
The returned quote includes payment instructions with the banking details needed to execute the payment and fulfill the quote. These instructions must be followed precisely, including any reference codes provided.
lookupId required | string Unique identifier for the prior receiver uma address lookup request. |
sendingCurrencyCode required | string Currency code for the sending amount |
receivingCurrencyCode required | string Currency code for the receiving amount |
lockedCurrencySide required | string (QuoteLockSide) Enum: "SENDING" "RECEIVING" The side of the quote which should be locked and specified in the |
lockedCurrencyAmount required | integer <int64> > 0 The amount to send/receive in the smallest unit of the locked currency (eg. cents). See |
description | string Optional description/memo for the payment |
object Key-value pairs of information about the sender which was requested by the counterparty (recipient) institution.
Any fields specified in |
{- "lookupId": "LookupRequest:019542f5-b3e7-1d02-0000-000000000009",
- "sendingCurrencyCode": "USD",
- "receivingCurrencyCode": "EUR",
- "lockedCurrencySide": "SENDING",
- "lockedCurrencyAmount": 1000,
- "description": "Payment for invoice #1234"
}
{- "quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
- "sendingCurrency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "receivingCurrency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "totalSendingAmount": 123010,
- "totalReceivingAmount": 1000,
- "exchangeRate": 0,
- "expiresAt": "2023-09-01T14:30:00Z",
- "feesIncluded": 10,
- "counterpartyInformation": {
- "FULL_NAME": "Jane Receiver",
- "BIRTH_DATE": "1990-01-01",
- "NATIONALITY": "FR"
}, - "paymentInstructions": {
- "reference": "UMA-Q12345-REF",
- "instructionsNotes": "Please ensure the reference code is included in the payment memo/description field",
- "bankAccountInfo": {
- "accountType": "CLABE",
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe"
}
}, - "status": "PENDING",
- "transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
- "originalQuoteId": "Quote:019542f5-b3e7-1d02-0000-000000000001",
- "rateDetails": {
- "counterpartyMultiplier": 1.08,
- "counterpartyFixedFee": 10,
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}
}
Retrieve a quote by its ID. If the quote has been settled, it will include the transaction ID. This allows clients to track the full lifecycle of a payment from quote creation to settlement.
quoteId required | string ID of the quote to retrieve |
{- "quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
- "sendingCurrency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "receivingCurrency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "totalSendingAmount": 123010,
- "totalReceivingAmount": 1000,
- "exchangeRate": 0,
- "expiresAt": "2023-09-01T14:30:00Z",
- "feesIncluded": 10,
- "counterpartyInformation": {
- "FULL_NAME": "Jane Receiver",
- "BIRTH_DATE": "1990-01-01",
- "NATIONALITY": "FR"
}, - "paymentInstructions": {
- "reference": "UMA-Q12345-REF",
- "instructionsNotes": "Please ensure the reference code is included in the payment memo/description field",
- "bankAccountInfo": {
- "accountType": "CLABE",
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe"
}
}, - "status": "PENDING",
- "transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
- "originalQuoteId": "Quote:019542f5-b3e7-1d02-0000-000000000001",
- "rateDetails": {
- "counterpartyMultiplier": 1.08,
- "counterpartyFixedFee": 10,
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}
}
In the case where a customer is debited but the Lightning payment fails to complete, integrators can retry the payment using this endpoint.
Payments retried with this endpoint will debit from the sender and deliver to the recipient the same amount as the original quote.
As UMA as a service does not persist customer PII, retries need to start with a lookup request to retrieve the original quote's recipient counter party data requirements then pass that sender information in the request body.
Before calling this endpoint, you should reach out to the UMA as a service team to investigate the underlying issue. As part of resolution, they'll update the transaction to the appropriate state. The quote / transaction to retry must be in a FAILED
or REFUNDED
state.
quoteId required | string ID of the quote to retry |
lookupId required | string Unique identifier for the prior receiver uma address lookup request. |
object Key-value pairs of information about the sender which was requested by the counterparty (recipient) institution.
Any fields specified in |
{- "lookupId": "Lookup:019542f5-b3e7-1d02-0000-000000000009",
- "senderUserInfo": {
- "FULL_NAME": "Jane Receiver",
- "NATIONALITY": "FR"
}
}
{- "quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
- "sendingCurrency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "receivingCurrency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}, - "totalSendingAmount": 123010,
- "totalReceivingAmount": 1000,
- "exchangeRate": 0,
- "expiresAt": "2023-09-01T14:30:00Z",
- "feesIncluded": 10,
- "counterpartyInformation": {
- "FULL_NAME": "Jane Receiver",
- "BIRTH_DATE": "1990-01-01",
- "NATIONALITY": "FR"
}, - "paymentInstructions": {
- "reference": "UMA-Q12345-REF",
- "instructionsNotes": "Please ensure the reference code is included in the payment memo/description field",
- "bankAccountInfo": {
- "accountType": "CLABE",
- "clabeNumber": "123456789012345678",
- "bankName": "BBVA Mexico",
- "accountHolderName": "John Doe"
}
}, - "status": "PENDING",
- "transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
- "originalQuoteId": "Quote:019542f5-b3e7-1d02-0000-000000000001",
- "rateDetails": {
- "counterpartyMultiplier": 1.08,
- "counterpartyFixedFee": 10,
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}
}
This endpoint should only be used for when your account is configured for FBO payments. It triggers funding a quote from your FBO account to initiate payment.
quoteId required | string ID of the quote to pay from FBO |
{- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}, - "receivedAmount": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "reconciliationInstructions": {
- "reference": "UMA-Q12345-REF"
}, - "rateDetails": {
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}, - "failureReason": "LNURLP_FAILED"
}
Webhook that is called when an incoming payment is received by a user's UMA address. This endpoint should be implemented by clients of the UMAaas API.
The webhook includes a signature in the X-UMAaas-Signature
header that allows you to verify that the webhook was sent by UMAaas.
To verify the signature:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
When a transaction has status: "PENDING"
, this webhook serves as an approval mechanism:
counterpartyInformation
against their requirements/transactions/{transactionId}/approve
or /transactions/{transactionId}/reject
endpoint within 5 seconds. Note that synchronous approval/rejection is preferred where possible.The UMAaas system will proceed or cancel the payment based on your response.
For transactions with other statuses (COMPLETED, FAILED, REFUNDED), this webhook is purely informational.
timestamp required | string <date-time> ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) |
webhookId required | string Unique identifier for this webhook delivery (can be used for idempotency) |
type required | string Type of webhook event |
required | object (IncomingTransaction) |
Array of objects (CounterpartyFieldDefinition) Information required by the sender's VASP about the recipient. Platform must provide these in the 200 OK response if approving. Note that this only includes fields which UMAaaS does not already have from initial user registration. |
{- "transaction": {
- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
- "status": "PENDING",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "receivedAmount": {
- "amount": 50000,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "reconciliationInstructions": {
- "reference": "REF-123456789"
}, - "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "US"
}
}, - "requestedReceiverUserInfoFields": [
- {
- "name": "NATIONALITY",
- "mandatory": true
}, - {
- "name": "ADDRESS",
- "mandatory": false
}
], - "timestamp": "2023-08-15T14:32:00Z",
- "webhookId": "Webhook:019542f5-b3e7-1d02-0000-000000000007",
- "type": "INCOMING_PAYMENT"
}
{- "receiverUserInfo": { }
}
Webhook that is called when an outgoing payment's status changes. This endpoint should be implemented by clients of the UMAaas API.
The webhook includes a signature in the X-UMAaas-Signature
header that allows you to verify that the webhook was sent by UMAaas.
To verify the signature:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
This webhook is informational only and is sent when an outgoing payment completes successfully or fails.
timestamp required | string <date-time> ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) |
webhookId required | string Unique identifier for this webhook delivery (can be used for idempotency) |
type required | string Type of webhook event |
required | object (IncomingTransaction) |
Array of objects (CounterpartyFieldDefinition) Information required by the sender's VASP about the recipient. Platform must provide these in the 200 OK response if approving. Note that this only includes fields which UMAaaS does not already have from initial user registration. |
{- "transaction": {
- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
- "status": "COMPLETED",
- "type": "OUTGOING",
- "senderUmaAddress": "$sender@uma.domain",
- "receiverUmaAddress": "$recipient@external.domain",
- "sentAmount": {
- "amount": 10550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "receivedAmount": {
- "amount": 9706,
- "currency": {
- "code": "EUR",
- "name": "Euro",
- "symbol": "€",
- "decimals": 2
}
}, - "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settlementTime": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "exchangeRate": 0.92,
- "quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
- "paymentInstructions": {
- "reference": "UMA-Q12345-REF",
- "bankAccountInfo": {
- "accountType": "US_ACCOUNT",
- "accountNumber": 987654321,
- "routingNumber": 123456789,
- "accountCategory": "CHECKING",
- "bankName": "Chase Bank"
}
}
}, - "timestamp": "2023-08-15T14:32:00Z",
- "webhookId": "Webhook:019542f5-b3e7-1d02-0000-000000000007",
- "type": "OUTGOING_PAYMENT"
}
{- "status": 400,
- "code": "INVALID_INPUT",
- "message": "string",
- "details": { }
}
Webhook that is sent once to verify your webhook endpoint is correctly set up. This is sent when you configure or update your platform settings with a webhook URL.
The webhook includes a signature in the X-UMAaas-Signature
header that allows you to verify that the webhook was sent by UMAaas.
To verify the signature:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
This webhook is purely for testing your endpoint integration and signature verification.
timestamp required | string <date-time> ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) |
webhookId required | string Unique identifier for this webhook delivery (can be used for idempotency) |
type required | string Type of webhook event |
required | object (IncomingTransaction) |
Array of objects (CounterpartyFieldDefinition) Information required by the sender's VASP about the recipient. Platform must provide these in the 200 OK response if approving. Note that this only includes fields which UMAaaS does not already have from initial user registration. |
{- "timestamp": "2023-08-15T14:32:00Z",
- "webhookId": "Webhook:019542f5-b3e7-1d02-0000-000000000001",
- "type": "TEST"
}
{- "status": 400,
- "code": "INVALID_INPUT",
- "message": "string",
- "details": { }
}
Webhook that is called when a bulk user upload job completes or fails. This endpoint should be implemented by clients of the UMAaas API.
The webhook includes a signature in the X-UMAaas-Signature
header that allows you to verify that the webhook was sent by UMAaas.
To verify the signature:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
This webhook is sent when a bulk upload job completes or fails, providing detailed information about the results.
timestamp required | string <date-time> ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) |
webhookId required | string Unique identifier for this webhook delivery (can be used for idempotency) |
type required | string Type of webhook event |
required | object (IncomingTransaction) |
Array of objects (CounterpartyFieldDefinition) Information required by the sender's VASP about the recipient. Platform must provide these in the 200 OK response if approving. Note that this only includes fields which UMAaaS does not already have from initial user registration. |
{- "bulkUserImportJob": {
- "jobId": "Job:019542f5-b3e7-1d02-0000-000000000006",
- "status": "COMPLETED",
- "progress": {
- "total": 5000,
- "processed": 5000,
- "successful": 5000,
- "failed": 0
}, - "errors": [ ]
}, - "webhookId": "Webhook:019542f5-b3e7-1d02-0000-000000000008",
- "type": "BULK_UPLOAD",
- "timestamp": "2023-08-15T14:32:00Z"
}
{- "status": 400,
- "code": "INVALID_INPUT",
- "message": "string",
- "details": { }
}
Webhook that is called when an invitation is claimed by a user. This endpoint should be implemented by platform clients of the UMAaaS API.
When a user claims an invitation, this webhook is triggered to notify the platform that:
This allows platforms to:
The webhook includes a signature in the X-UMAaas-Signature
header that allows you to verify that the webhook was sent by UMAaas.
To verify the signature:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
timestamp required | string <date-time> ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) |
webhookId required | string Unique identifier for this webhook delivery (can be used for idempotency) |
type required | string Type of webhook event |
required | object (IncomingTransaction) |
Array of objects (CounterpartyFieldDefinition) Information required by the sender's VASP about the recipient. Platform must provide these in the 200 OK response if approving. Note that this only includes fields which UMAaaS does not already have from initial user registration. |
{- "invitation": {
- "code": "019542f5",
- "createdAt": "2023-09-01T14:30:00Z",
- "claimedAt": "2023-09-01T15:45:00Z",
- "inviterUma": "$inviter@uma.domain",
- "inviteeUma": "$invitee@uma.domain",
- "status": "CLAIMED",
}, - "timestamp": "2023-09-01T15:45:00Z",
- "webhookId": "Webhook:019542f5-b3e7-1d02-0000-000000000008",
- "type": "INVITATION_CLAIMED"
}
{- "status": 400,
- "code": "INVALID_INPUT",
- "message": "string",
- "details": { }
}
Create an UMA invitation from a given platform user.
inviterUma required | string The UMA address of the user creating the invitation |
firstName | string First name of the invitee to show as part of the invite |
amountToSend | integer <int64> An amount to send (in the smallest unit of the user's currency) to the invitee when the invitation is claimed. This is optional and if not provided, the invitee will not receive any amount. Note that the actual sending of the amount must be done by the inviter platform once the INVITATION_CLAIMED webhook is received. If the inviter platform either does not send the payment or the payment fails, the invitee will not receive this amount. This field is primarily used for display purposes on the claiming side of the invitation. |
expiresAt | string <date-time> When the invitation expires (if at all) |
{- "inviterUma": "$inviter@uma.domain",
- "firstName": "Alice",
- "amountToSend": 12550,
- "expiresAt": "2023-09-01T14:30:00Z"
}
{- "code": "019542f5",
- "createdAt": "2023-09-01T14:30:00Z",
- "claimedAt": "2023-09-01T14:30:00Z",
- "expiresAt": "2023-09-01T14:30:00Z",
- "inviterUma": "$inviter@uma.domain",
- "inviteeUma": "$invitee@uma.domain",
- "status": "PENDING",
- "firstName": "Jane",
- "amountToSend": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}
}
Get a specific UMA invitation by code.
invitationCode required | string The code of the invitation to get |
{- "code": "019542f5",
- "createdAt": "2023-09-01T14:30:00Z",
- "claimedAt": "2023-09-01T14:30:00Z",
- "expiresAt": "2023-09-01T14:30:00Z",
- "inviterUma": "$inviter@uma.domain",
- "inviteeUma": "$invitee@uma.domain",
- "status": "PENDING",
- "firstName": "Jane",
- "amountToSend": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}
}
Claim an UMA invitation by associating it with an invitee UMA address.
When an invitation is successfully claimed:
This endpoint allows users to accept invitations sent to them by other UMA users.
invitationCode required | string The code of the invitation to claim |
inviteeUma required | string The UMA address of the user claiming the invitation |
{- "inviteeUma": "$invitee@uma.domain"
}
{- "code": "019542f5",
- "createdAt": "2023-09-01T14:30:00Z",
- "claimedAt": "2023-09-01T14:30:00Z",
- "expiresAt": "2023-09-01T14:30:00Z",
- "inviterUma": "$inviter@uma.domain",
- "inviteeUma": "$invitee@uma.domain",
- "status": "PENDING",
- "firstName": "Jane",
- "amountToSend": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}
}
Cancel a pending UMA invitation. Only the inviter or platform can cancel an invitation.
When an invitation is cancelled:
Only pending invitations can be cancelled. Attempting to cancel an invitation that is already claimed, expired, or cancelled will result in an error.
invitationCode required | string The code of the invitation to cancel |
{- "code": "019542f5",
- "createdAt": "2023-09-01T14:30:00Z",
- "claimedAt": "2023-09-01T14:30:00Z",
- "expiresAt": "2023-09-01T14:30:00Z",
- "inviterUma": "$inviter@uma.domain",
- "inviteeUma": "$invitee@uma.domain",
- "status": "PENDING",
- "firstName": "Jane",
- "amountToSend": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}
}
Simulate sending funds to the bank account as instructed in the quote. This endpoint is only for the sandbox environment and will fail for production platforms/keys.
reference required | string The unique reference code that was in the payment instructions |
currencyCode required | string Currency code for the funds to be sent |
currencyAmount required | integer <int64> > 0 The amount to send in the smallest unit of the currency (eg. cents) |
{- "reference": "UMA-Q12345-REF",
- "currencyCode": "USD",
- "currencyAmount": 1000
}
{- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}, - "receivedAmount": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "reconciliationInstructions": {
- "reference": "UMA-Q12345-REF"
}, - "rateDetails": {
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}, - "failureReason": "LNURLP_FAILED"
}
Simulate sending payment from an sandbox uma address to a platform user to test payment receive. This endpoint is only for the sandbox environment and will fail for production platforms/keys.
senderUmaAddress required | string UMA address of the sender from the sandbox |
receiverUmaAddress | string UMA address of the receiver (optional if userId is provided) |
userId | string System ID of the receiver (optional if receiverUmaAddress is provided) |
receivingCurrencyCode required | string The currency code for the receiving amount |
receivingCurrencyAmount required | integer <int64> > 0 The amount to be received in the smallest unit of the currency (eg. cents) |
{- "senderUmaAddress": "$success.usd@sandbox.umaaas.uma.money",
- "receiverUmaAddress": "$receiver@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "receivingCurrencyCode": "USD",
- "receivingCurrencyAmount": 1000
}
{- "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
- "status": "CREATED",
- "type": "INCOMING",
- "senderUmaAddress": "$sender@external.domain",
- "receiverUmaAddress": "$recipient@uma.domain",
- "userId": "User:019542f5-b3e7-1d02-0000-000000000001",
- "platformUserId": "18d3e5f7b4a9c2",
- "settledAt": "2023-08-15T14:30:00Z",
- "createdAt": "2023-08-15T14:25:18Z",
- "description": "Payment for invoice #1234",
- "counterpartyInformation": {
- "FULL_NAME": "John Sender",
- "BIRTH_DATE": "1985-06-15",
- "NATIONALITY": "DE"
}, - "receivedAmount": {
- "amount": 12550,
- "currency": {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
}, - "reconciliationInstructions": {
- "reference": "UMA-Q12345-REF"
}, - "rateDetails": {
- "umaaasMultiplier": 0.925,
- "umaaasFixedFee": 10,
- "umaaasVariableFeeRate": 0.003,
- "umaaasVariableFeeAmount": 30
}, - "failureReason": "LNURLP_FAILED"
}
Create a new API token to access the UMAaaS APIs.
name required | string Name of the token to help identify it |
permissions required | Array of strings (Permission) Items Enum: "VIEW" "TRANSACT" "MANAGE" A list of permissions to grant to the token |
{- "name": "Sandbox read-only",
- "permissions": [
- "VIEW"
]
}
{- "id": "Token:019542f5-b3e7-1d02-0000-000000000001",
- "name": "Sandbox read-only token",
- "permissions": [
- "VIEW"
], - "clientId": "01947d2284054f890000e63bca4810df",
- "clientSecret": "ed0ad25881e234cc28fb2dec0a4fe64e4172",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z"
}
Retrieve a list of API tokens with optional filtering parameters. Returns all tokens that match the specified filters. If no filters are provided, returns all tokens (paginated).
name | string Filter by name of the token |
createdAfter | string <date-time> Filter users created after this timestamp (inclusive) |
createdBefore | string <date-time> Filter users created before this timestamp (inclusive) |
updatedAfter | string <date-time> Filter users updated after this timestamp (inclusive) |
updatedBefore | string <date-time> Filter users updated before this timestamp (inclusive) |
limit | integer [ 1 .. 100 ] Default: 20 Maximum number of results to return (default 20, max 100) |
cursor | string Cursor for pagination (returned from previous request) |
{- "data": [
- {
- "id": "Token:019542f5-b3e7-1d02-0000-000000000001",
- "name": "Sandbox read-only token",
- "permissions": [
- "VIEW"
], - "clientId": "01947d2284054f890000e63bca4810df",
- "clientSecret": "ed0ad25881e234cc28fb2dec0a4fe64e4172",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z"
}
], - "hasMore": true,
- "nextCursor": "string",
- "totalCount": 0
}
Retrieve an API token by their system-generated ID
tokenId required | string System-generated unique token identifier |
{- "id": "Token:019542f5-b3e7-1d02-0000-000000000001",
- "name": "Sandbox read-only token",
- "permissions": [
- "VIEW"
], - "clientId": "01947d2284054f890000e63bca4810df",
- "clientSecret": "ed0ad25881e234cc28fb2dec0a4fe64e4172",
- "createdAt": "2023-07-21T17:32:28Z",
- "updatedAt": "2023-07-21T17:32:28Z"
}
Delete an API token by their system-generated ID
tokenId required | string System-generated unique token identifier |
{- "status": 400,
- "code": "INVALID_INPUT",
- "message": "string",
- "details": { }
}
This endpoint provides a list of counterparties that are available.
The response includes basic information about each provider, such as its UMA address, name, and supported currencies. This can be used to determine which providers are available for sending or receiving payments.
countryCode | string Example: countryCode=US The alpha-2 representation of a country, as defined by the ISO 3166-1 standard. |
currencyCode | string Example: currencyCode=USD The ISO 4217 currency code to filter providers by supported currency. |
hasBlockedProviders | boolean Whether to include providers which are not on your allowlist in the response. By default the response will include blocked providers. |
limit | integer [ 1 .. 100 ] Default: 20 Maximum number of results to return (default 20, max 100) |
cursor | string Cursor for pagination (returned from previous request) |
sortOrder | string Default: "desc" Enum: "asc" "desc" Order to sort results in |
{- "data": [
- {
- "name": "Lightspark Group",
- "supportedRegions": [
- "US"
], - "domain": "uma.me",
- "supportedCurrencies": [
- {
- "code": "USD",
- "name": "United States Dollar",
- "symbol": "$",
- "decimals": 2
}
], - "lei": "5493001KJTIIGC8Y1R12",
- "allowListStatus": true
}
], - "hasMore": true,
- "nextCursor": "string",
- "totalCount": 0
}