Skip to main content

Accrue Merchant API (1.0.0)

Download OpenAPI specification:Download

Introduction

Sandbox

Welcome to the Accrue API! Our detailed documentation will guide you through essential topics, including authentication, request formatting, and the handling of financial transactions, with a current focus on payments.

Accrue treats every client as a unique entity. This approach allows for the management of critical components such as API tokens and user access, directly through our API, ensuring that each organization can tailor its use of our services to fit its specific needs.

The introductory section aims to familiarize you with the core concepts required to effectively utilize the services offered by our platform.

Environments

Accrue offers its API across two distinct environments:

Environment Description API URL
Sandbox Environment Designed for testing and development. https://merchant-api-sandbox.accruesavings.com
Live Environment For real-time production operations. https://merchant-api.accruesavings.com/

Authentication

Accrue's API leverages the Bearer Token for request authentication. Every API call requires the inclusion of a bearer token, which is a Client Secret associated with the Client for which you are making requests.

:::caution

Any issues with the token, such as being invalid, missing, or expired, will lead to HTTP 401 Unauthorized responses.

:::

GET /payments HTTP/1.1
Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Retrying API Requests

When API requests fail due to network issues, rate limits, timeouts, or service incidents, it's a best practice to implement a retry mechanism. Guidelines for this mechanism include:

  • Retryable HTTP Status Codes:
    • 5xx: Server errors.
    • 429: Rate Limits.
    • 408: Timeouts.
  • Retry Strategy:
    • Use an exponential backoff and/or jitter for retries.
    • Implement idempotency keys where necessary.

Rate Limits

The rate limit, based on your IP address, is set at 10,000 requests per minute, applicable to both the sandbox and live environments separately. Exceeding this limit triggers HTTP 429 status codes and relevant messages in responses.

Timeouts

To ensure prompt failure and allow for retries, our APIs are designed with timeouts. It's recommended to set similar request timeouts on the client side. Timeouts are categorized as follows:

  • Short Timeout: A default timeout of 10 seconds for most APIs.
  • Long Timeout: Some APIs require up to 90 seconds for longer processes.

Refer to the specific API documentation to ascertain the timeout applicable to your request.

API Design

OpenAPI Specification

OpenAPI, a widely-recognized standard for defining RESTful APIs, enhances API usability and integration. It facilitates client library (SDK) generation, testing, and integration with various development tools. The Accrue API conforms to OpenAPI 3.1, with its specification accessible here.

The Accrue OpenAPI specification can be used in conjunction with tools like Swagger or OpenAPI generators to create Accrue API client libraries in your preferred programming language.

Please note, while SDKs can be auto-generated, their full compatibility with our API and coverage of all endpoints isn't guaranteed. Contributions, including feedback, bug reports, and pull requests from the Accrue SDKs community, are welcome to help improve and address any issues.

Pagination

List operations, like 'List Users', return a collection of resources. To navigate through a long list, use:

  • page[limit]: Limits the number of resources returned (1-200, default is 50).
  • page[offset]: Specifies the number of resources to skip (default is 0).

Idempotency

Accrue supports idempotency for certain API operations, allowing multiple requests while ensuring the operation is performed only once. Use any string up to 255 characters as an idempotency key (UUID version 4 is recommended).

Idempotency is vital for situations like network errors during sensitive operations (e.g., payment creation). It ensures that an operation, like a payment, is not duplicated despite multiple attempts.

Key Points:

  • Idempotency keys remain effective for 48 hours.
  • They are not shared across different API operations, but the same key can technically be used for different operations (not recommended).

About JSON API

Accrue's API is REST-based and adheres to the JSON:API specification.

JSON:API outlines how clients should request resources and how servers should respond. Accrue's resources encompass applications, customers, cards, accounts, transactions, among others.

Designed for efficiency, JSON:API reduces the number of requests and data transferred between clients and servers, achieving this without sacrificing readability, flexibility, or discoverability.

JSON:API mandates the use of the JSON:API media type (application/vnd.api+json) for data exchange.

Request and Response Structure

JSON:API structures all requests and responses as JSON documents. These documents must contain one of the following top-level members:

  • Data: Represents the document's "primary data". For example, in creating an application resource, the primary data includes personal information.
  • Errors: An array of error objects.

Primary data must be either:

  • A single resource object for requests targeting individual resources.
  • An array of resource objects for requests targeting resource collections.
    {
        "data": {
            "type": "User",
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "attributes": {
                // ... this users's attributes
                },
            "relationships": {
                // ... this users's relationships
            }
        }
    }
    {
        "data": [
            {
                "type": "User",
                "id": "123e4567-e89b-12d3-a456-426614174000",
                "attributes": {
                    // ... this users's attributes
                    },
                "relationships": {
                    // ... this users's relationships
                }
            },
            {
                "type": "User",
                "id": "123e4567-e89b-12d3-a456-426614174001",
                "attributes": {
                    // ... this users's attributes
                    },
                "relationships": {
                    // ... this users's relationships
                }
            }
        ]
    }

Resource Object

In JSON:API documents, resource objects are used to depict entities within the business domain, such as applications, customers, cards, accounts, transactions, etc., within Accrue's API.

Every resource object must include these two members:

  • id: The unique identifier of the resource.
  • type: The type of resource.

Note: The id member is not required for resource objects created on the client side that represent new resources to be created on the server.

Optional members of a resource object include:

  • attributes: This object represents the resource's data, like name, address, email, etc.
  • relationships: Describes connections between the current resource and other resources.
{
   "type": "User",
   "id": "123e4567-e89b-12d3-a456-426614174000",
   "attributes": {
      "disabled": false,
      "attachedProfile": {
          "referenceId": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "email": "user@email.com",
          "phoneNumber": "+12125559999"
        }
      "updatedAt":"2020-01-12T19:41:01.323Z",
      "createdAt":"2020-01-11T19:40:01.323Z"
   },
   "relationships": {
      //relationships listed here
   }
}

Relationships

The relationships object in JSON:API defines the connections between the current resource and other related resources. Each entry in this object signifies a unique reference.

For instance, the relationship between a User and UserProfile is depicted here.

Relationship Object

A "relationship object" is required to include a data member, which can be one of the following:

  • Null: Indicating an empty 'to-one' relationship.
  • Empty Array ([]): For empty 'to-many' relationships.
  • Single Resource Identifier: With 'type' and 'id', for non-empty 'to-one' relationships.
  • Array of Resource Identifiers: Each with 'type' and 'id', for non-empty 'to-many' relationships.
{
   "type": "Wallet",
   "id": "123e4567-e89b-12d3-a456-426614174000",
   "attributes": {
       //attributes here
    }
   },
   "relationships":{
      "User":{
         "data":{
            "type": "User",
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
         }
      }
   }
}

Accrue's API supports the include query parameter in GET operations on specific resources like Cards. This parameter allows fetching multiple related resources in a single response. You can specify one or several relationships, separated by commas, in the query (refer to the example below). The response will include an included key containing these related resources.

Utilizing this feature simplifies the API interaction by consolidating what would typically be multiple calls into a single request. This not only streamlines your code but also addresses common data integrity concerns associated with

curl -X GET 'https://merchant-api.accruesavings.com/wallets/123e4567-e89b-12d3-a456-426614174000?include=User' \-H "Authorization: Bearer ${TOKEN}"
{
    "type": "Wallet",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "attributes": {
            //attributes here
        },
        "relationships":{
            "User":{
                "data":{
                    "type": "User",
                    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
                }
            }
        }
    },
    "included": [
        {
            "type": "User",
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "attributes":{
                //attributes here
        },
    ]
}

Errors

Accrue's API communicates the status of requests using standard HTTP Status Codes. Errors may occur at any point during processing, either as single or multiple instances. For example, schema validation issues often lead to multiple errors, while server processing problems typically result in a single error. Regardless, the response includes all identified errors.

An "error object" is required to have an HTTP status code. It may also include:

  • code: (Optional) A unique, underscored Accrue-specific code detailing the error. A comprehensive list of error codes is available in the Accrue Errors documentation.
  • detail: (Optional) A human-readable explanation providing more insights about the error.
  • Meta: (Optional) This object contains name/value pairs relevant to the error

Users

Users represent the end users and are the parent container of Wallets. A user is automatically created when the end-user signs into the Accrue product through various different methods using their phone number.

List Users

query Parameters
filter[phoneNumber]
string

Filter the list of objects by the value of the phoneNumber field.

filter[email]
string

Filter the list of objects by the value of the email field.

filter[referenceId]
string

Filter the list of objects by the value of the referenceId field.

page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/users?filter%5BphoneNumber%5D=SOME_STRING_VALUE&filter%5Bemail%5D=SOME_STRING_VALUE&filter%5BreferenceId%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "User",
      • "attributes": {
        • "disabled": true,
        • "publicId": "string",
        • "profile": {
          • "firstName": "string",
          • "lastName": "string",
          • "email": "user@example.com",
          • "phoneNumber": "string"
          },
        • "attachedProfile": {
          • "referenceId": "Any string identifier provided by you.",
          • "email": "User email address kept in your system.",
          • "phoneNumber": "User phone number kept in your system."
          },
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ],
  • "meta": {
    • "total": 1,
    • "limit": 10,
    • "offset": 0
    }
}

Create User

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (CreateUser)

Create user request

type
required
string
Value: "User"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "User",
    • "attributes": {
      • "email": "user@example.com",
      • "phoneNumber": "+12125550001",
      • "firstName": "John",
      • "lastName": "Doe"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "User",
    • "attributes": {
      • "disabled": true,
      • "publicId": "string",
      • "profile": {
        • "firstName": "string",
        • "lastName": "string",
        • "email": "user@example.com",
        • "phoneNumber": "string"
        },
      • "attachedProfile": {
        • "referenceId": "Any string identifier provided by you.",
        • "email": "User email address kept in your system.",
        • "phoneNumber": "User phone number kept in your system."
        },
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Update User

path Parameters
userReference
required
string
Example: 123e4567-e89b-12d3-a456-426614174000

User ID or Attached User Profile Reference ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
type
required
string
Value: "AttachedProfile"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "type": "AttachedProfile",
  • "attributes": {
    • "referenceId": "Any string identifier provided by you.",
    • "email": "User email address kept in your system.",
    • "phoneNumber": "User phone number kept in your system."
    }
}

Response samples

Content type
application/vnd.api+json
Example
{
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "status": 400,
  • "code": "InvalidIdentifier",
  • "title": "UserValidationException",
  • "detail": "User with ID '{userReference}' not found.",
  • "meta": {
    • "environment": "sandbox",
    • "timestamp": "2025-06-23T12:00:00.000Z",
    • "path": "/api/v1/users/123e4567-e89b-12d3-a456-426614174000/attached-profile"
    }
}

Get User

path Parameters
userId
required
string
Example: 123e4567-e89b-12d3-a456-426614174000

User ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/users/:userId \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "User",
    • "attributes": {
      • "disabled": true,
      • "profile": {
        • "firstName": "string",
        • "lastName": "string",
        • "email": "user@example.com",
        • "phoneNumber": "string"
        },
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Accept KYC Disclosure Documents

path Parameters
userId
required
string
Example: 123e4567-e89b-12d3-a456-426614174000

User ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request POST \
  --url https://merchant-api.accruesavings.com/api/v1/users/:userId/disclosures/kyc \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
Example
{
  • "id": "123e4567-e89b-12d3-a456-426614174000",
  • "status": 400,
  • "code": "UserNotFound",
  • "title": "UserNotFoundException",
  • "detail": "User with ID '{userId}' not found.",
  • "meta": {
    • "environment": "sandbox",
    • "timestamp": "2025-06-23T12:00:00.000Z",
    • "path": "/api/v1/users/123e4567-e89b-12d3-a456-426614174000/disclosures/kyc"
    }
}

LinkedAccounts

Linked Accounts represent payment methods that users have connected to their Accrue account. These accounts can be used for funding payments or topping up the wallet.

Get Linked Accounts for User

Retrieves all linked bank accounts for a specific user. These accounts can be used for funding payments by providing the linkedAccountId when creating a payment.

path Parameters
userId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The ID of the user whose linked accounts to retrieve.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/users/:userId/linked-accounts \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "LinkedAccount",
      • "attributes": {
        • "provider": "Meld",
        • "status": "Connected",
        • "accountType": "checking",
        • "accountName": "Plaid Checking",
        • "accountMask": "0000",
        • "institutionName": "Plaid Bank",
        • "institutionId": "ins_109508",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Wallets

Wallets are where users save money and collect rewards for future payments to merchants. Each wallet is linked to a specific merchant and tracks the balance of deposits and rewards. Users can contribute to their wallet's balance as part of their payment planning, while also accruing rewards.

Get Wallet

path Parameters
walletId
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

ID of the wallet to fetch.

query Parameters
include
string

Comma-separated list of resources to include. Supported resources: user

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/wallets/:walletId?include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Wallet",
    • "attributes": {
      • "status": "Active",
      • "closedAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "user": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "User"
          }
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "User",
      • "attributes": {
        • "disabled": true,
        • "publicId": "string",
        • "profile": {
          • "firstName": "string",
          • "lastName": "string",
          • "email": "user@example.com",
          • "phoneNumber": "string"
          },
        • "attachedProfile": {
          • "referenceId": "Any string identifier provided by you.",
          • "email": "User email address kept in your system.",
          • "phoneNumber": "User phone number kept in your system."
          },
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Create Wallet

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object
type
required
string
Value: "Wallet"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "Wallet",
    • "attributes": {
      • "userId": "123e4567-e89b-12d3-a456-426614174000"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Wallet",
    • "attributes": {
      • "status": "Active",
      • "closedAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Get Wallet Balance

path Parameters
walletId
string
Example: 123e4567-e89b-12d3-a456-426614174000

ID of the wallet for which the balance is being fetched.

query Parameters
include
string

Comma-separated list of resources to include. Supported resources: user

userReference
string
Example: userReference=123e4567-e89b-12d3-a456-426614174000

User ID or Attached User Profile Reference ID (alternative to walletId)

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/wallets/:walletId/balance?include=SOME_STRING_VALUE&userReference=123e4567-e89b-12d3-a456-426614174000' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Wallet",
    • "attributes": {
      • "status": "Active",
      • "closedAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z",
      • "balance": {
        • "available": {
          • "deposit": 1000,
          • "reward": {
            • "accrue": 20,
            • "merchant": 180,
            • "total": 200
            },
          • "total": 1200
          },
        • "pending": {
          • "deposit": 0,
          • "reward": {
            • "accrue": 0,
            • "merchant": 0,
            • "total": 0
            },
          • "total": 0
          },
        • "reserved": {
          • "total": 600
          },
        • "total": {
          • "deposit": 1500,
          • "reward": {
            • "accrue": 30,
            • "merchant": 270,
            • "total": 300
            },
          • "total": 1800
          }
        }
      },
    • "relationships": {
      • "user": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "User"
          }
        }
      }
    }
}

List Wallets

query Parameters
filter[phoneNumber]
string

Filter the list of objects by the value of the phoneNumber field.

filter[email]
string

Filter the list of objects by the value of the email field.

filter[referenceId]
string

Filter the list of objects by the value of the referenceId field.

page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/wallets/?filter%5BphoneNumber%5D=SOME_STRING_VALUE&filter%5Bemail%5D=SOME_STRING_VALUE&filter%5BreferenceId%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Wallet",
      • "attributes": {
        • "status": "Active",
        • "closedAt": "2019-08-24T14:15:22Z",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        },
      • "relationships": {
        • "user": {
          • "data": {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "type": "User"
            }
          }
        }
      }
    ],
  • "meta": {
    • "total": 1,
    • "limit": 10,
    • "offset": 0
    }
}

Create One-Time Deposit

Create a one-time deposit transaction for a wallet using an existing linked account.

path Parameters
walletId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The wallet ID to deposit to.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object
type
required
string
Value: "OneTimeDeposit"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "OneTimeDeposit",
    • "attributes": {
      • "amount": 1000,
      • "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
      • "linkedAccountId": "123e4567-e89b-12d3-a456-426614174000",
      • "risk": {
        • "deviceSessionId": "string"
        }
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "type": "OneTimeDeposit",
    • "attributes": {
      • "transactionId": "123e4567-e89b-12d3-a456-426614174000",
      • "status": "Pending"
      }
    }
}

List Transactions

List all transactions for a wallet

path Parameters
walletId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The wallet ID to list transactions for.

query Parameters
page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

type
string
Example: type=NonRecurring

Transaction type filter. Currently only "NonRecurring" transactions are returned; other values will return an empty list.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/wallets/:walletId/transactions?page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&type=NonRecurring' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Transaction",
      • "attributes": {
        • "id": "123e4567-e89b-12d3-a456-426614174000",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "type": "NonRecurring",
        • "status": "Cleared",
        • "amount": 9999,
        • "createdAt": "2024-01-15T10:30:00Z",
        • "clearedAt": "2019-08-24T14:15:22Z"
        }
      }
    ],
  • "meta": {
    • "total": 1,
    • "limit": 10,
    • "offset": 0
    }
}

Get Transaction

Get a specific transaction by ID

path Parameters
walletId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The wallet ID.

transactionId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The transaction ID.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/wallets/:walletId/transactions/:transactionId \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Transaction",
    • "attributes": {
      • "id": "123e4567-e89b-12d3-a456-426614174000",
      • "walletId": "123e4567-e89b-12d3-a456-426614174000",
      • "type": "NonRecurring",
      • "status": "Cleared",
      • "amount": 9999,
      • "createdAt": "2024-01-15T10:30:00Z",
      • "clearedAt": "2019-08-24T14:15:22Z"
      }
    }
}

PaymentIntents

Payment Intents represent a commitment to pay a specified amount, allowing for a structured process to handle payments from initiation to completion. This resource serves as a provisional step in the payment process, where the amount, payment method, and other details are specified by the initiator (e.g., a user, support staff, or merchant). Payment Intents can go through several states, such as requiring action, being canceled, or being promoted to an actual payment upon successful authorization.

Get a Payment Intent

path Parameters
paymentIntentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment Intent ID

query Parameters
include
string

Comma-separated list of resources to include. Supported resources: client,payments

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/payment-intents/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "PaymentIntent",
    • "attributes": {
      • "billingAddress": {
        • "street": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postalCode": "string",
        • "country": "string"
        },
      • "email": "user@example.com",
      • "error": "LinkedAccountUnverified",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "fullName": "string",
      • "phoneNumber": "string",
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "status": "PromotedToPayment",
      • "userId": "string",
      • "walletId": "123e4567-e89b-12d3-a456-426614174000",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "payments": {
        • "data": [
          • {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "type": "Payment"
            }
          ]
        }
      }
    },
  • "included": []
}

List Payment Intents

query Parameters
filter[initiator]
string

Filter the list of objects by the value of the initiator field.

filter[status]
string

Filter the list of objects by the value of the status field.

filter[paymentMethod]
string

Filter the list of objects by the value of the paymentMethod field.

page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

sort
string
Default: "sort=-createdAt"

Sorts the list of objects by the given criteria. The sort parameter value is a comma separated list of sort criteria. Each sort criteria is a field name optionally followed by a minus sign (-) to indicate descending order. Ascending order is assumed if no minus sign is present. The sort criteria are applied in the order in which they appear in the sort parameter.

include
required
string

Comma-separated list of resources to include. Supported resources: client,payments

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/payment-intents?filter%5Binitiator%5D=SOME_STRING_VALUE&filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentMethod%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "RequiresAction",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        },
      • "relationships": {
        • "payments": {
          • "data": [
            • {
              • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              • "type": "Payment"
              }
            ]
          }
        }
      }
    ],
  • "meta": {
    • "total": 1,
    • "limit": 10,
    • "offset": 0
    }
}

Cancel Payment Intent

path Parameters
paymentIntentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment Intent ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request POST \
  --url https://merchant-api.accruesavings.com/api/v1/payment-intents/123e4567-e89b-12d3-a456-426614174000/cancel \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "PaymentIntent",
    • "attributes": {
      • "billingAddress": {
        • "street": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postalCode": "string",
        • "country": "string"
        },
      • "email": "user@example.com",
      • "error": "LinkedAccountUnverified",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "fullName": "string",
      • "phoneNumber": "string",
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "status": "Canceled",
      • "userId": "string",
      • "walletId": "123e4567-e89b-12d3-a456-426614174000",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Authorize Payment

path Parameters
paymentIntentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment Intent ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (AuthorizePaymentIntent)

AuthorizePaymentIntent

type
required
string
Value: "AuthorizePaymentIntent"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "AuthorizePaymentIntent",
    • "attributes": {
      • "amount": 0,
      • "reference": "string"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "PaymentIntent",
    • "attributes": {
      • "billingAddress": {
        • "street": "string",
        • "street2": "string",
        • "city": "string",
        • "state": "string",
        • "postalCode": "string",
        • "country": "string"
        },
      • "email": "user@example.com",
      • "error": "LinkedAccountUnverified",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "fullName": "string",
      • "phoneNumber": "string",
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "status": "PromotedToPayment",
      • "userId": "string",
      • "walletId": "123e4567-e89b-12d3-a456-426614174000",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "payments": {
        • "data": [
          • {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "type": "Payment"
            }
          ]
        }
      }
    },
  • "included": []
}

Payments

Payments are the realization of payment intents, representing the actual transfer or authorization of funds. This resource encapsulates the details of completed transactions, including the payment status, amount, and any adjustments or refunds that have occurred post-initial authorization. Payments can have various statuses reflecting their current state, from pending to refunded, providing a comprehensive view of the transaction lifecycle.

Create Payment

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (CreatePayment)

CreatePayment

type
required
string
Value: "CreatePayment"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "CreatePayment",
    • "attributes": {
      • "walletId": "123e4567-e89b-12d3-a456-426614174000",
      • "amount": 1000,
      • "linkedAccountId": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
      • "channel": "ORG-1",
      • "reference": "cart-123",
      • "externalPayments": [
        • {
          • "method": "Cash",
          • "amount": 100
          }
        ],
      • "disbursement": [
        • {
          • "counterpartyId": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
          • "amount": 800
          },
        • {
          • "counterpartyId": "4cf95060-dd01-42ac-9020-8ca42004920d",
          • "amount": 200,
          • "remit": true
          }
        ]
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Processing",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

List Payments

query Parameters
filter[status]
string

Filter the list of objects by the value of the status field.

filter[channel]
string

Filter the list of objects by the value of the channel field.

page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

sort
string
Default: "sort=-createdAt"

Sorts the list of objects by the given criteria. The sort parameter value is a comma separated list of sort criteria. Each sort criteria is a field name optionally followed by a minus sign (-) to indicate descending order. Ascending order is assumed if no minus sign is present. The sort criteria are applied in the order in which they appear in the sort parameter.

include
required
string

Comma-separated list of resources to include. Supported resources: paymentIntent,captures,refunds

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [],
  • "meta": {
    • "total": 1,
    • "limit": 10,
    • "offset": 0
    }
}

Get a Payment

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

query Parameters
include
string

Comma-separated list of resources to include. Supported resources: paymentIntent,refunds

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Sent",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        }
      },
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Update a payment

path Parameters
paymentId
required
string <uuid>

Payment id

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Payment id

type
required
string
Value: "Payment"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "Payment",
  • "attributes": {
    • "reference": "MERCHANT-GENERATED-TOKEN"
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Sent",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        }
      },
    }
}

Get Virtual Debit Card

The get virtual debit card endpoint can be used to fetch the card details for a payment.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to the Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "VirtualDebitCard",
    • "attributes": {
      • "number": "card_12a3b45cdefghi",
      • "expirationMonth": "6",
      • "expirationYear": "2028",
      • "cvc": "123",
      • "billingAddress": {
        • "street": "123 Main St.",
        • "street2": "Apt. 1",
        • "city": "San Francisco",
        • "state": "CA",
        • "postalCode": "94107",
        • "country": "US"
        }
      },
    • "relationships": {
      • "payment": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "Payment"
          }
        },
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          }
        }
      }
    }
}

Capture Payment

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (CapturePayment)

CapturePayment

type
required
string
Value: "CapturePayment"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "CapturePayment",
    • "attributes": {
      • "amount": 0
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Sent",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        }
      },
    },
  • "links": {
    • "self": "/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/capture"
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Increase Authorization Amount

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (IncreaseAuthorization)

IncreaseAuthorization

type
required
string
Value: "IncreaseAuthorization"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "IncreaseAuthorization",
    • "attributes": {
      • "increase": 0
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Authorized",
      • "amount": 10500,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        }
      }
    },
  • "links": {
    • "self": "/api/v1/payments/4cf95060-dd01-42ac-9020-8ca42004920d/increase-authorization"
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Cancel Payment

The cancel endpoint can be called on a Payment that is in the Created or Waiting status, otherwise it will return an error.

A Payment will be in the Waiting status if you the capture endpoint has been called but the capture is in the waiting period before it is actually committed. Cancelling is always the full amount so there’s no support for partial amounts with cancel. The status of the payment will transition to Canceled ONLY after successfully calling the cancel endpoint.

For Card Rails (Virtual Debit Cards), this endpoint should only be called if the manual capture on your payment processor fails.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

query Parameters
include
string

Comma-separated list of resources to include. Supported resources: paymentIntent

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request POST \
  --url 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Canceled",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        }
      },
    },
  • "links": {
    • "self": "/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel"
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Complete Payment

Once you have capture all the funds from the Virtual Debit Card, you can call this endpoint to complete the payment.

That will mark the payment as complete and remaining funds will be released back to the user.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

query Parameters
include
string

Comma-separated list of resources to include. Supported resources: paymentIntent

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request POST \
  --url 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Payment",
    • "attributes": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "status": "Complete",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        }
      },
    },
  • "links": {
    • "self": "/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/complete"
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Refund Payment

The refund endpoint can be called at any point after the capture endpoint has been called for that payment.

It supports partial refunds regardless of whether the payment status is Processing or Waiting.

Calling the refund endpoint will never change the status of the payment so the status of the payment cannot be used to determine if it has been refunded.

When a Payment is refunded, an associated Refund object is created. The Refund object has an independent status representing the the refund. The refund endpoint returns the Refund object created and can be included in the get payment endpoint.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (RefundPayment)

RefundPayment

type
required
string
Value: "RefundPayment"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "RefundPayment",
    • "attributes": {
      • "amount": 0
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "type": "Payment",
    • "relationships": {
      • "paymentIntent": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "PaymentIntent"
          },
        • "links": {
          • "self": "/api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08"
          }
        },
      • "refunds": {
        • "data": [
          • {
            • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
            • "type": "Refund"
            }
          ]
        }
      },
    • "attributes": {
      • "id": "123e4567-e89b-12d3-a456-426614174000",
      • "status": "Sent",
      • "amount": 9999,
      • "reference": "MERCHANT-GENERATED-TOKEN",
      • "expiresAt": "2019-08-24T14:15:22Z",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    },
  • "links": {
    • "self": "/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/refund"
    },
  • "included": [
    • {
      • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
      • "type": "Refund",
      • "attributes": {
        • "status": "Pending",
        • "amount": 1000,
        • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "createdAt": "2024-06-19T12:19:17.031Z",
        • "updatedAt": "2024-06-19T12:19:17.064Z"
        }
      },
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "status": "PromotedToPayment",
        • "amount": 9999,
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "expiresAt": "2024-12-19T10:39:59.447Z",
        • "createdAt": "2024-06-19T10:39:59.452Z",
        • "updatedAt": "2024-06-19T10:43:59.337Z"
        }
      }
    ],
  • "meta": {
    • "message": "Full refund will be initiated after the original payment is successfully received."
    }
}

ExternalTransactions

External transactions are records of transfers that happened outside the Accrue system. E.g. purchases in an online shop using a non-Accrue payment method.

Add External Transactions

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
Array of objects (CreateExternalTransaction)
Array
type
required
string
Value: "ExternalTransaction"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "type": "ExternalTransaction",
      • "attributes": {
        • "type": "Purchase",
        • "source": {
          • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
          • "createdAt": "2019-08-24T14:15:22Z",
          • "customerId": "607329"
          },
        • "channel": "nyc-store-1",
        • "payments": [
          • {
            • "method": "Cash",
            • "amount": 10000
            },
          • {
            • "method": "DebitCard",
            • "amount": 5000
            }
          ],
        • "payload": { }
        }
      }
    ]
}

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "ExternalTransaction",
      • "attributes": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "sourceId": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        },
      • "relationships": {
        • "linkedExternalTransaction": {
          • "data": [
            • {
              • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
              • "type": "ExternalTransaction"
              }
            ]
          },
        • "user": {
          • "data": [
            • {
              • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              • "type": "User"
              }
            ]
          }
        }
      }
    ]
}

List External Transactions

query Parameters
filter[phoneNumber]
string

Filter the list of objects by the value of the phoneNumber field.

filter[userId]
string

Filter the list of objects by the value of the userId field.

filter[sourceId]
string

Filter the list of objects by the value of the sourceId field.

page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/external-transactions?filter%5BphoneNumber%5D=SOME_STRING_VALUE&filter%5BuserId%5D=SOME_STRING_VALUE&filter%5BsourceId%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "ExternalTransaction",
      • "attributes": {
        • "type": "Purchase",
        • "linkedExternalTransactionId": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "source": {
          • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
          • "createdAt": "2019-08-24T14:15:22Z",
          • "customerId": "607329"
          },
        • "channel": "nyc-store-1",
        • "payments": [
          • {
            • "method": "Cash",
            • "amount": 10000
            },
          • {
            • "method": "DebitCard",
            • "amount": 5000
            }
          ],
        • "payload": { },
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        },
      • "relationships": {
        • "linkedExternalTransaction": {
          • "data": [
            • {
              • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
              • "type": "ExternalTransaction"
              }
            ]
          },
        • "user": {
          • "data": [
            • {
              • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              • "type": "User"
              }
            ]
          }
        }
      }
    ],
  • "meta": {
    • "total": 1,
    • "limit": 10,
    • "offset": 0
    }
}

Get an External Transaction

path Parameters
externalTransactionId
required
string <uuid>

External Transaction ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/external-transactions/%7BexternalTransactionId%7D \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "ExternalTransaction",
    • "attributes": {
      • "type": "ExternalTransaction",
      • "linkedExternalTransactionId": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
      • "source": {
        • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "createdAt": "2019-08-24T14:15:22Z",
        • "customerId": "607329"
        },
      • "channel": "nyc-store-1",
      • "payments": [
        • {
          • "method": "Cash",
          • "amount": 10000
          },
        • {
          • "method": "DebitCard",
          • "amount": 5000
          }
        ],
      • "payload": { },
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z",
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "attributes": {
        • "type": "Purchase",
        • "linkedExternalTransactionId": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "source": {
          • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
          • "createdAt": "2019-08-24T14:15:22Z",
          • "customerId": "607329"
          },
        • "channel": "nyc-store-1",
        • "payments": [
          • {
            • "method": "Cash",
            • "amount": 10000
            },
          • {
            • "method": "DebitCard",
            • "amount": 5000
            }
          ],
        • "payload": { },
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        },
      • "relationships": {
        • "linkedExternalTransaction": {
          • "data": [
            • {
              • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
              • "type": "ExternalTransaction"
              }
            ]
          },
        • "user": {
          • "data": [
            • {
              • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              • "type": "User"
              }
            ]
          }
        }
      },
    • "relationships": {
      • "linkedExternalTransaction": {
        • "data": [
          • {
            • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
            • "type": "ExternalTransaction"
            }
          ]
        },
      • "user": {
        • "data": [
          • {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "type": "User"
            }
          ]
        }
      }
    }
}

Simulations

Simulations are used to simulate payments authorizations and captures for Card Rails (Virtual Debit Cards).

Simulate Card Authorization

Simulate a card authorization request.

This endpoint will call our bank simulation service to authorize the amount specified.

After the request is received, system will create a Authorization Request resource, asynchronously, and it's authorizationRequestId will be required to capture the funds using the Simulate Card Capture endpoint.

This Authorization Request resource can be fetched using the Get Authorization Request List endpoint.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (SimulateCardAuthorization)

SimulateCardAuthorization

type
required
string
Value: "SimulateCardAuthorization"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "SimulateCardAuthorization",
    • "attributes": {
      • "amount": 0
      }
    }
}

Response samples

Content type
application/vnd.api+json
{ }

Get Authorization Request List

Get a list of all the Authorization Requests for a given payment.

The Authorization Requests are created as a result of the Simulate Card Authorization endpoint.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/simulation/123e4567-e89b-12d3-a456-426614174000/card/auth \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "AuthorizationRequest",
      • "attributes": {
        • "paymentId": "123e4567-e89b-12d3-a456-426614174000",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "status": "Approved",
        • "amount": 9999,
        • "createdAt": "2019-08-24T14:15:22Z",
        • "updatedAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Simulate Card Capture

Simulate a card capture request.

This endpoint will call our bank simulation service to capture the funds specified.

The authorizationRequestId is required to be passed in the request body.

The authorizationRequestId can be found in the Authorization Request resource, that was created as a result of the Simulate Card Authorization endpoint.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (SimulateCardCapture)

SimulateCardCapture

type
required
string
Value: "SimulateCardCapture"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "SimulateCardCapture",
    • "attributes": {
      • "authorizationRequestId": "4fe684a6-c2f3-4e6b-8bf5-d8dc75b1209c",
      • "amount": 0
      }
    }
}

Response samples

Content type
application/vnd.api+json
{ }

Get Captures List

Get a list of all the Captures for a given payment.

The Captures are created as a result of the Simulate Card Authorization endpoint.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

query Parameters
filter[method]
string

Filter the list of objects by the value of the method field.

filter[success]
string
Example: filter[success]=true
page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

sort
string
Default: "sort=-createdAt"

Sorts the list of objects by the given criteria. The sort parameter value is a comma separated list of sort criteria. Each sort criteria is a field name optionally followed by a minus sign (-) to indicate descending order. Ascending order is assumed if no minus sign is present. The sort criteria are applied in the order in which they appear in the sort parameter.

include
string

Comma-separated list of resources to include. Supported resources: payments

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/simulation/123e4567-e89b-12d3-a456-426614174000/card/capture?filter%5Bmethod%5D=SOME_STRING_VALUE&filter%5Bsuccess%5D=true&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Capture",
      • "attributes": {
        • "id": "123e4567-e89b-12d3-a456-426614174000",
        • "amount": 9999,
        • "success": true,
        • "method": "VirtualDebitCard",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Simulate Card Authorization/Capture

Simulate a card authorization/capture request.

This endpoint aggregates the Simulate Card Authorization and Simulate Card Capture endpoints.

This endpoint is available for Card Rails (Virtual Debit Cards) only.

Refer to Merchant API Guide for more information.

path Parameters
paymentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (SimulateCardAuthorizationCapture)

SimulateCardAuthorizationCapture

type
required
string
Value: "SimulateCardAuthorizationCapture"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "SimulateCardAuthorizationCapture",
    • "attributes": {
      • "amount": 0
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "success": true,
  • "error": "Error message"
}

Create Demo Backup Payment Method

Create a demo backup payment method (linked account) for a wallet in testing environments.

This endpoint simulates linking a bank account to a wallet for backup payment purposes without requiring actual bank account credentials or Plaid integration.

The created linked account can be used as a backup payment method for transactions when the primary funding source is insufficient.

This endpoint is only available in development, sandbox, and local testing environments.

The testCardType parameter is optional and allows you to specify which type of test card to simulate. If not provided, a default test card type will be used.

path Parameters
walletId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Wallet ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/json
optional
testCardType
string
Enum: "visa-us-credit" "visa-gb-credit" "visa-gb-debit" "mastercard-mu-credit" "mastercard-de-debit"

Test card type from Checkout.com that returns response code 10000 (successful transaction)

Responses

Request samples

Content type
application/json
{
  • "testCardType": "visa-us-credit"
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "DemoBackupPaymentMethod",
    • "attributes": {
      • "linkedAccountId": "123e4567-e89b-12d3-a456-426614174000",
      • "accountMask": "1234",
      • "institutionName": "Test Bank",
      • "accountType": "checking",
      • "status": "active",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Banking

Banking APIs provide KYC (Know Your Customer) verification functionality to enable users to comply with financial regulations when using banking features. These endpoints manage identity verification through document submission, status tracking, and automated compliance checks.

Create KYC Application

Creates a new KYC (Know Your Customer) application for a user with their personal information. This initiates the identity verification process required for banking features. The application will be processed through automated checks and may require additional document verification depending on the verification outcome.

path Parameters
userId
required
string <uuid>
Example: 550e8400-e29b-41d4-a716-446655440000

The unique identifier for the user

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object
type
required
string
Value: "Kyc"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "Kyc",
    • "attributes": {
      • "ipAddress": "192.168.1.1",
      • "firstName": "John",
      • "lastName": "Doe",
      • "phone": "5551234567",
      • "dateOfBirth": "1990-01-15",
      • "email": "john.doe@example.com",
      • "street": "123 Main Street",
      • "street2": "Apt 4B",
      • "city": "New York",
      • "state": "NY",
      • "postalCode": "10001"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Kyc",
    • "attributes": {
      • "status": "Approved",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Get KYC Status

Retrieves the current KYC verification status for a user. Returns null if no KYC application has been submitted for the user. Use this endpoint to check the progress of a user's identity verification.

path Parameters
userId
required
string <uuid>
Example: 550e8400-e29b-41d4-a716-446655440000

The unique identifier for the user

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/users/:userId/kyc/status \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Kyc",
    • "attributes": {
      • "status": "Approved",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Complete Document Verification

Marks the document verification process as complete and retrieves the updated KYC status. Call this endpoint after the user has finished uploading documents through the portal. The response will contain the updated verification status, which may be Approved, ManualReview, or Denied based on the document review.

path Parameters
userId
required
string <uuid>
Example: 550e8400-e29b-41d4-a716-446655440000

The unique identifier for the user

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request POST \
  --url https://merchant-api.accruesavings.com/api/v1/users/:userId/kyc/document-verification/complete \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Kyc",
    • "attributes": {
      • "status": "Approved",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Counterparties

Counterparties define bank accounts where funds are settled for captured payments. Counterparties include bank account details (account number, routing number) and there can be multiple counterparties.

Create Counterparty

Create a new counterparty. Counterparties define bank accounts where funds will be settled.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object
type
required
string
Value: "CreateCounterparty"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "CreateCounterparty",
    • "attributes": {
      • "label": "Primary Business Account",
      • "accountNumber": "1234567890",
      • "routingNumber": "021000021",
      • "accountType": "Checking"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Counterparty",
    • "attributes": {
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z",
      • "label": "string",
      • "accountNumber": "1234567890",
      • "routingNumber": "021000021",
      • "accountType": "Checking"
      }
    }
}

List Counterparties

List all counterparties.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/counterparties/ \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Counterparty",
      • "attributes": {
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z",
        • "label": "string",
        • "accountNumber": "1234567890",
        • "routingNumber": "021000021",
        • "accountType": "Checking"
        }
      }
    ]
}

Get Counterparty

Get a specific counterparty by ID.

path Parameters
counterpartyId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

ID of the counterparty to fetch.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/counterparties/:counterpartyId \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Counterparty",
    • "attributes": {
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z",
      • "label": "string",
      • "accountNumber": "1234567890",
      • "routingNumber": "021000021",
      • "accountType": "Checking"
      }
    }
}

Update Counterparty

Update a counterparty. Use this endpoint to update editable fields. Some fields, like account number and routing number, can't be edited.

path Parameters
counterpartyId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

ID of the counterparty to update.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object
type
required
string
Value: "UpdateCounterparty"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "UpdateCounterparty",
    • "attributes": {
      • "label": "Updated Business Account"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Counterparty",
    • "attributes": {
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z",
      • "label": "string",
      • "accountNumber": "1234567890",
      • "routingNumber": "021000021",
      • "accountType": "Checking"
      }
    }
}

Delete Counterparty

Soft-delete a counterparty. The counterparty will be marked as deleted but not permanently removed from the system.

path Parameters
counterpartyId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

ID of the counterparty to delete.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request DELETE \
  --url https://merchant-api.accruesavings.com/api/v1/counterparties/:counterpartyId \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Sweepstakes

Sweepstakes campaigns give users the chance to win prizes by participating in merchant-sponsored promotions. Each campaign is linked to a specific merchant and tracks user entries. Users can earn entries through actions like purchases, and winners are selected based on campaign rules. Sweepstakes add an engaging layer of excitement and reward to the user experience.

Add Sweepstakes Results

path Parameters
sweepstakesId
required
string

Sweepstakes ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (SweepstakesResults)

SweepstakesResults

type
required
string
Value: "SweepstakesResults"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "SweepstakesResults",
    • "attributes": {
      • "customer": {
        • "idType": "PhoneNumber",
        • "id": "+12125550001"
        }
      }
    }
}

Widgets

Widgets are components that are embedded into applications to enrich the user experience. Some of those require additional data loaded through API endpoints.

Learn more about the different widget types here.

Get Wallet Widget Data

path Parameters
walletId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Wallet ID for which widgets are loaded

query Parameters
includeDto
boolean

Include the Data Transfer Object field, containing widget data in a structured format.

purchaseAmount
integer <int32>
Example: purchaseAmount=1000

Purchase amount (in cents)

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/widgets/wallet/123e4567-e89b-12d3-a456-426614174000?includeDto=SOME_BOOLEAN_VALUE&purchaseAmount=1000' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{}

Find Wallet Widget Data

query Parameters
includeDto
boolean

Include the Data Transfer Object field, containing widget data in a structured format.

purchaseAmount
integer <int32>
Example: purchaseAmount=1000

Purchase amount (in cents)

filter[userReference]
string

Filter the list of objects by the value of the userReference field.

filter[phoneNumber]
string

Filter the list of objects by the value of the phoneNumber field.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/widgets/wallet?includeDto=SOME_BOOLEAN_VALUE&purchaseAmount=1000&filter%5BuserReference%5D=SOME_STRING_VALUE&filter%5BphoneNumber%5D=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{}

Get Linked Account Widget Data

This endpoint returns data for the Linked Account Widget.

If you prefer to build your own widget, you can use the dto field to get the data in a structured format.

path Parameters
paymentIntentId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Payment Intent ID

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/widgets/payment-intent/123e4567-e89b-12d3-a456-426614174000/linked-account \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "LinkedAccountWidgetData",
    • "attributes": {
      • "payload": "YmFzZTY0IGVuY29kZWQgZGF0YQ==",
      • "dto": {
        • "institutionName": "Visa",
        • "accountMask": "1234"
        },
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Get Wallet Widget Data (V2)

This endpoint returns data: null instead of 400 error when no wallet is found

path Parameters
walletId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Wallet ID for which widgets are loaded

query Parameters
includeDto
boolean

Include the Data Transfer Object field, containing widget data in a structured format.

purchaseAmount
integer <int32>
Example: purchaseAmount=1000

Purchase amount (in cents)

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v2/widgets/wallet/123e4567-e89b-12d3-a456-426614174000?includeDto=SOME_BOOLEAN_VALUE&purchaseAmount=1000' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{}

Find Wallet Widget Data (V2)

This endpoint returns data: null instead of 400 error when no wallet is found

query Parameters
includeDto
boolean

Include the Data Transfer Object field, containing widget data in a structured format.

purchaseAmount
integer <int32>
Example: purchaseAmount=1000

Purchase amount (in cents)

filter[userReference]
string

Filter the list of objects by the value of the userReference field.

filter[phoneNumber]
string

Filter the list of objects by the value of the phoneNumber field.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v2/widgets/wallet?includeDto=SOME_BOOLEAN_VALUE&purchaseAmount=1000&filter%5BuserReference%5D=SOME_STRING_VALUE&filter%5BphoneNumber%5D=SOME_STRING_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{}

Create Widget Session

Creates a new widget session that can be used to authenticate and interact with Accrue widgets. The session token returned should be passed to the widget for authentication.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
object
type
required
string
Value: "CreateWidgetSession"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "CreateWidgetSession",
    • "attributes": {
      • "widgetType": "PaymentMethods"
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "WidgetSession",
    • "attributes": {
      • "sessionToken": "wgt_session_1234567890abcdef",
      • "createdAt": "2025-01-15T10:30:00.000Z"
      }
    }
}

Webhooks

Webhook management APIs

Create a webhook

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object (CreateWebhook)

Create webhook request

type
required
string
Value: "Webhook"
required
object

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "Webhook",
    • "attributes": {
      • "enabled": true,
      • "name": "string",
      • "url": "string",
      • "topics": [
        • "string"
        ]
      }
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Webhook",
    • "attributes": {
      • "enabled": true,
      • "name": "string",
      • "url": "string",
      • "secret": "string",
      • "topics": [
        • "string"
        ],
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Get webhooks

query Parameters
page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/webhooks?page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Webhook",
    • "attributes": {
      • "enabled": true,
      • "name": "string",
      • "url": "string",
      • "secret": "string",
      • "topics": [
        • "string"
        ],
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Get a webhook

path Parameters
webhookId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

Webhook id

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/webhooks/123e4567-e89b-12d3-a456-426614174000 \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Webhook",
    • "attributes": {
      • "enabled": true,
      • "name": "string",
      • "url": "string",
      • "secret": "string",
      • "topics": [
        • "string"
        ],
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Update a webhook

path Parameters
webhookId
required
string <uuid>

Webhook id

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Request Body schema: application/vnd.api+json
required
required
object

Update webhook request

type
required
string
Value: "Webhook"
required
object
id
required
string <uuid>

Webhook id

Responses

Request samples

Content type
application/vnd.api+json
{
  • "data": {
    • "type": "Webhook",
    • "attributes": {
      • "enabled": true,
      • "name": "string",
      • "url": "string",
      • "topics": [
        • "string"
        ]
      },
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    }
}

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "Webhook",
    • "attributes": {
      • "enabled": true,
      • "name": "string",
      • "url": "string",
      • "secret": "string",
      • "topics": [
        • "string"
        ],
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    }
}

Delete a webhook

path Parameters
webhookId
required
string <uuid>

Webhook id

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request DELETE \
  --url https://merchant-api.accruesavings.com/api/v1/webhooks/%7BwebhookId%7D \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

WebhookEvents

Webhook Event management APIs

List Webhook Events

query Parameters
filter[since]
string
Example: filter[since]=2021-01-01T00:00:00Z

Filter webhook events at or after the provided date

filter[until]
string
Example: filter[until]=2021-01-01T00:00:00Z

Filter webhook events at or before the provided date

page[limit]
number [ 1 .. 50 ]
Default: 10

Maximum number of objects that will be returned. Can not be greater than 50.

page[offset]
number >= 0
Default: 0

Offset from the beginning of the list of objects. Can not be negative.

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url 'https://merchant-api.accruesavings.com/api/v1/webhook-events?filter%5Bsince%5D=2021-01-01T00%3A00%3A00Z&filter%5Buntil%5D=2021-01-01T00%3A00%3A00Z&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE' \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "WebhookEvent",
      • "attributes": {
        • "id": "123e4567-e89b-12d3-a456-426614174000",
        • "topic": "string",
        • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
        • "responseCode": 0,
        • "failReason": "string",
        • "userId": "123e4567-e89b-12d3-a456-426614174000",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        },
      • "relationships": {
        • "event": {
          • "data": {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "type": "string"
            }
          }
        }
      }
    ],
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "status": "Promotable",
        • "error": "LinkedAccountUnverified",
        • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
        • "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",
        • "fullName": "string",
        • "email": "user@example.com",
        • "phoneNumber": "string",
        • "billingAddress": {
          • "property1": null,
          • "property2": null
          },
        • "reference": "string",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z",
        • "updatedAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Get a webhook event

path Parameters
webhookEventId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

WebhookEvent id

header Parameters
Client-ID
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions.

Authorization
required
string <uuid>
Example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef

Secure secret to access privileged endpoints.

Responses

Request samples

curl --request GET \
  --url https://merchant-api.accruesavings.com/api/v1/webhook-events/123e4567-e89b-12d3-a456-426614174000 \
  --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \
  --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'

Response samples

Content type
application/vnd.api+json
{
  • "data": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "type": "WebhookEvent",
    • "attributes": {
      • "id": "123e4567-e89b-12d3-a456-426614174000",
      • "topic": "string",
      • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
      • "responseCode": 0,
      • "failReason": "string",
      • "userId": "123e4567-e89b-12d3-a456-426614174000",
      • "walletId": "123e4567-e89b-12d3-a456-426614174000",
      • "updatedAt": "2019-08-24T14:15:22Z",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "relationships": {
      • "event": {
        • "data": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "type": "string"
          }
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "status": "Promotable",
        • "error": "LinkedAccountUnverified",
        • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
        • "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",
        • "fullName": "string",
        • "email": "user@example.com",
        • "phoneNumber": "string",
        • "billingAddress": {
          • "property1": null,
          • "property2": null
          },
        • "reference": "string",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z",
        • "updatedAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Webhook Topics

Webhook Topics

PaymentIntentCreated Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

PaymentIntentUpdated Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "PaymentIntent",
      • "attributes": {
        • "billingAddress": {
          • "street": "string",
          • "street2": "string",
          • "city": "string",
          • "state": "string",
          • "postalCode": "string",
          • "country": "string"
          },
        • "email": "user@example.com",
        • "error": "LinkedAccountUnverified",
        • "expiresAt": "2019-08-24T14:15:22Z",
        • "fullName": "string",
        • "phoneNumber": "string",
        • "reference": "MERCHANT-GENERATED-TOKEN",
        • "status": "Promotable",
        • "userId": "string",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

PaymentCreated Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": []
}

PaymentUpdated Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": []
}

PaymentCaptured Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Capture",
      • "attributes": {
        • "id": "123e4567-e89b-12d3-a456-426614174000",
        • "amount": 9999,
        • "success": true,
        • "method": "VirtualDebitCard",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

RefundCreated Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Refund",
      • "attributes": {
        • "status": "Failed",
        • "amount": 9999,
        • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

RefundUpdated Webhook

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Refund",
      • "attributes": {
        • "status": "Failed",
        • "amount": 9999,
        • "id": "9f755746-13cb-4d0b-81f2-3b4f1b44f6d8",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

KycCreated Webhook

Fired when a KYC application is created for a user. This event is triggered when a user initiates the identity verification process.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Kyc",
      • "attributes": {
        • "status": "Approved",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

KycApproved Webhook

Fired when a KYC application is approved. This event indicates that the user has successfully passed identity verification and can access banking features.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Kyc",
      • "attributes": {
        • "status": "Approved",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

KycDeclined Webhook

Fired when a KYC application is declined. This event indicates that the user did not pass identity verification and cannot access banking features.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Kyc",
      • "attributes": {
        • "status": "Approved",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

KycAwaitingDocuments Webhook

Fired when a KYC application requires additional document verification. This event indicates that the user needs to upload identity documents (such as a driver's license or passport) to complete verification.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Kyc",
      • "attributes": {
        • "status": "Approved",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

KycPending Webhook

Fired when a KYC application is pending review. This event indicates that the application is being processed through automated verification checks.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Kyc",
      • "attributes": {
        • "status": "Approved",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

KycManualReview Webhook

Fired when a KYC application requires manual review. This event indicates that automated verification could not make a determination and the application needs human review.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Kyc",
      • "attributes": {
        • "status": "Approved",
        • "updatedAt": "2019-08-24T14:15:22Z",
        • "createdAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Transaction Cleared Webhook

Fired when a transaction is cleared. This event indicates that the transaction has been successfully processed and funds are available.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Transaction",
      • "attributes": {
        • "id": "123e4567-e89b-12d3-a456-426614174000",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "type": "NonRecurring",
        • "status": "Cleared",
        • "amount": 9999,
        • "createdAt": "2024-01-15T10:30:00Z",
        • "clearedAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}

Transaction Failed Webhook

Fired when a transaction fails. This event indicates that the transaction could not be processed successfully.

Request Body schema: application/vnd.api+json
required
id
required
string <uuid>

Unique identifier for the object.

type
required
string
Value: "WebhookEvent"
required
object
required
object
required
Array of objects

Responses

Request samples

Content type
application/vnd.api+json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "type": "WebhookEvent",
  • "attributes": {
    • "id": "123e4567-e89b-12d3-a456-426614174000",
    • "topic": "string",
    • "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
    • "responseCode": 0,
    • "failReason": "string",
    • "userId": "123e4567-e89b-12d3-a456-426614174000",
    • "walletId": "123e4567-e89b-12d3-a456-426614174000",
    • "updatedAt": "2019-08-24T14:15:22Z",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "relationships": {
    • "event": {
      • "data": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "type": "string"
        }
      }
    },
  • "included": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "type": "Transaction",
      • "attributes": {
        • "id": "123e4567-e89b-12d3-a456-426614174000",
        • "walletId": "123e4567-e89b-12d3-a456-426614174000",
        • "type": "NonRecurring",
        • "status": "Cleared",
        • "amount": 9999,
        • "createdAt": "2024-01-15T10:30:00Z",
        • "clearedAt": "2019-08-24T14:15:22Z"
        }
      }
    ]
}