All APIs (latest)

Introduction

The Rebilly API is built on HTTP and is RESTful. It has predictable resource URLs and returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. Use your favorite HTTP/REST library in your programming language when using this API, or use one of the Rebilly SDKs, which are available in PHP and JavaScript.

Every action in the Rebilly UI is supported by an API which is documented and available for use, so that you may automate any necessary workflows or processes. This API reference documentation contains the most commonly integrated resources.

Authentication

This topic describes the different forms of authentication that are available in the Rebilly API, and how to use them.

Rebilly offers four forms of authentication: secret key, publishable key, JSON Web Tokens, and public signature key.

  • Secret API key: Use to make requests from the server side. Never share these keys. Keep them guarded and secure.
  • Publishable API key: Use in your client-side code to tokenize payment information.
  • JWT: Use to make short-life tokens that expire after a set period of time.

Manage API keys

To create or manage API keys, select one of the following:

For more information on API keys, see API keys.

Errors

Rebilly follows the error response format proposed in RFC 9457, which is also known as Problem Details for HTTP APIs. As with any API responses, your client must be prepared to gracefully handle additional members of the response.

SDKs

Rebilly provides a JavaScript SDK and a PHP SDK to help interact with the Rebilly API. However, no SDK is required to use the API.

Rebilly also provides FramePay, a client-side iFrame-based solution, to help create payment tokens while minimizing PCI DSS compliance burdens and maximizing your customization ability. FramePay interacts with the payment tokens creation operation.

JavaScript SDK

For installation and usage instructions, see SDKs. All JavaScript SDK code examples are included in the API reference documentation.

PHP SDK

For installation and usage instructions, see SDKs. All SDK code examples are included in the API reference documentation. To use them, you must configure the $client as follows:

$client = new Rebilly\Client([
    'apiKey' => 'YourApiKeyHere',
    'baseUrl' => 'https://api.rebilly.com',
]);

Get started

The full Rebilly API has over 500 operations. This is likely more than you may need to implement your use cases. If you would like to implement a particular use case, contact Rebilly for guidance and feedback on the best API operations to use for the task.

To integrate Rebilly, and learn about related resources and concepts, see Get started.

Rate limits

Rebilly enforces rate limits on the API to ensure that no single organization consumes too many resources. Rate limits are applied to the organization, and not to the API key. In sandbox environment, rate limits are enforced for non-GET endpoints and are set at 3000 requests per 10 minutes. You can find the exact number of consumed requests in the X-RateLimit-Limit and X-RateLimit-Remaining headers in the response. If the rate limit is exceeded, the API returns a 429 Too Many Requests response and a X-RateLimit-Retry-After header that includes a UTC timestamp of when the rate limit resets.

Download OpenAPI description
Languages
Servers
Mock server
https://www.rebilly.com/_mock/catalog/all/
Sandbox server
https://api-sandbox.rebilly.com/organizations/{organizationId}/
Live server
https://api.rebilly.com/organizations/{organizationId}/

Allowlists

Use allowlists to exclude specific customer attribute data from risk score checks.

Allowlists are lists of data that are excluded from risk score checks. Allowlists prevent specific data from being added to a blocklist record when a risk score threshold reached.

Operations

AML

Use Anti-Money Laundering (AML) operations to screen customers and help prevent your business from becoming directly or indirectly involved in criminal activity.

Use AML operations during customer creation, and some transaction processing, to help determine if a potential customer (lead), or customer, has political or economic sanctions against them.

AML operations search the following for screening purposes: Politically Exposed Persons (PEPs) lists, sanction lists, and adverse media lists.

OperationsWebhooks

API keys

Use API keys to identify and authenticate applications and users. Always keep your API keys private. When creating API keys, you can restrict them to a given set of permissions. For information on how to create and manage API keys, see API keys.

Operations

Application owners

Use these operations to register applications to the Rebilly Apps Store and manage application instances. An application owner is a person or organization that has submitted an app to the Rebilly App Store. For more information, see Submit an app.

OperationsWebhooks

Application users

Use these operations to install or uninstall apps from the Rebilly App Store to your Rebilly account, and to manage application instances. An application user is a person or organization that uses an app that is installed from the Rebilly App Store. For more information, see Install or uninstall an app.

Operations

Balance transactions

Use these operations to view and manage balance transactions.

Important: These operations are experimental and may change.

OperationsWebhooks

Billing portals

Use these operations to create and manage billing portals. Rebilly hosted billing portals provide secure, Rebilly hosted pages, where customers can: view invoices, cancel subscriptions, update payment instruments, and update their address.

Operations

Blocklists

Use blocklists to prevent fraud and criminal activity.

Blocklists are lists of customer attribute values that are blocked from buying from you. For example, if a customer attempts to make a purchase from you with a credit card that is in a blocklist, the transaction is blocked and is not processed.

Before a new transaction is processed in Rebilly, blocklists are examined to check for attributes related to the entity. If a match is detected, the operation is aborted. A blocklist that expires after a period of time is called a greylist.

Operations

Broadcast messages

Use broadcast messages to notify customers and leads about upcoming promotions, service updates, and events. Broadcast messages are emails that are sent to a specific group of customers, or all customers. For more information, see Create a broadcast message.

Operations

Checkout forms

Use these operations to create and manage checkout forms. Rebilly hosted checkout forms provide secure and compliant checkouts. Checkout forms are customizable, and use fully responsive design, built-in error messaging, validation, and expedited checkout for returning customers.

Operations

Coupons

Use coupons to reward customers, generate sales, or to test new pricing strategies. Coupons enable you to apply different types of discounts to invoices, subscriptions, and pricing plans.

Redeemed coupons are attached to a customer's account. Depending on the coupon restrictions, the redeemed coupons are then applied from the customer's account to subsequent invoices or subscriptions. Redeemed coupons can only be applied to invoices of the same currency.

Once a coupon is redeemed it cannot be modified. You may deactivate a coupon or create a new coupon, but you cannot reuse the same coupon code. If you have a use case where you must reuse the same code, contact Rebilly.

Operations

Credit memos

Use credit memos to provide a customer with store credit. A common use case for using a credit memo is to provide a customer with store credit, rather than a refund, if the customer pays more than they owe or returns a product. For information on the credit memo resource, see Resources.

OperationsWebhooks

Credit memos timeline

Use credit memo timelines to maintain an audit trail of changes and activity for each credit memo. Credit memos are a means of providing a customer with store credit.

Operations

Custom domains

Use custom domains to configure and use your own domain for forms and billing portals, instead of the default Rebilly domain: portal.secure-payments.app. For more information, see Configure a custom domain.

Operations

Custom fields

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. Depending on the resource on which the custom field is added, it may be available in the Rebilly UI.

Example: A custom field called preferredCommunicationChannel is added to the customer resource. It has two allowed values, which are 'email' and 'phone'.

{
  "customFields": {
      "preferredCommunicationChannel": "email"
  }
}

For detailed information on Rebilly resources, see Resources.

Operations

Customer authentication

Use these operations to validate the identity of users and manage authentication credentials.

Operations

Customers

Use these operations to manage customers. A customer is an entity that purchases goods or services from you (a merchant), and is the payee in any transaction that is credited to you. Customers are associated with payment instruments, subscriptions, invoices, and other related resources.

In other systems, customers may be referred to as accounts, clients, members, patrons, or players. For information on the customer resource, see Resources.

Operations

Customers timeline

Use customer timelines to maintain an audit trail of changes and activity for each customer.

Operations

Data exports

Use data export operations to manage the export of resource data, such as: transactions, customers, subscriptions, invoices, invoice item data, or revenue audit. Common data export use cases are: accounting, data analysis, reporting, or importing into other databases.

For detailed information on Rebilly resources, see Resources.

For information on how manage reconciliation, see Transaction reconciliation.

OperationsWebhooks

Deposits

Create and manage deposit requests and manage strategies that determine the deposit amounts to display on the page. Rebilly hosted deposit form provides a secure and compliant way to deposit funds. Deposit forms are customizable, and use fully responsive design, built-in error messaging and validation.

Important: These operations are experimental and may change.

Operations

Disputes

Use these operations to manage disputes. A dispute occurs when a customer contests a charge to their account. The dispute and related information is made available to the merchant by the bank or credit card company. The merchant then has the option to represent the charge and win the case. This process is called dispute resolution. If the merchant is unable to represent the charge, the card issuer typically reverses the sale and adds fees on top of the charge. This process is called a chargeback.

OperationsWebhooks

Email delivery settings

Use email delivery settings to configure from which email address notifications and broadcast message are sent. In Rebilly, this email address is referred to as a "From address". Supported email service providers are: SMTP, Mailgun, SendGrid, AWS SES, Postmark, and Rebilly.

Operations

Email messages

Use email messages to email customers directly.

Operations

Email notifications

Use email notifications to keep customers informed on events, and to inform them of events that may require action on their end. Email notifications are targeted email messages that can be plain text or HTML.

Email notifications can also be used to notify teammates about new customers, blocklist matches, risk score changes, and more. For more information, see Email notifications.

Operations

External identifiers

Use external identifier operations to associate entities such as customers, invoices, transactions, journal accounts, journal entries, and more with external services.

To use external identifiers, you must use an active service credential.

Operations

Fees

Use fees to reconcile transactions with applicable fees and discount rates. Fees are not applied directly to transaction amounts, they do not modify the transaction amount. Fees help to describe each part of the transaction amount.

Important: These operations are experimental and may change.

Operations

Files

Use the file entity to store files and related metadata. Files can be sorted by size, MIME-type, user-defined tags, and description.

The following methods are available to upload files: multipart/form-data encoded form, RAW POST — by sending the file contents as the POST body, and fetching from URL — by providing the file URL using the 'url' parameter.

Use the attachments entity to link a file to one or multiple objects, such as: customer, dispute, transaction, order, plan, product, invoice, or timeline comment. Attachments enable you to quickly find and use files related to specific entities.

Operations

Gateway accounts

Use these operations to manage payment gateway accounts. A payment gateway is a service which enables merchants to receive payments from their customers to their merchant account. A merchant account is a bank account that enables businesses to receive payments. Use payment gateway accounts to connect payment requests to third party networks and platforms.

Operations

Gateway accounts timeline

Use gateway account timelines to maintain an audit trail of changes and activity for each gateway account.

Operations

Histograms

Use histograms operations to generate transaction histogram reports with cohorts and periods. For information on the invoice resource, see Resources.

Operations

Integrations

Use these operations to manage third-party apps that are integrated to your Rebilly account. For more information on third-party apps, and how to integrate them, see App store.

Operations

Invoices

Use invoices to bill for the goods or services that you provide. If your invoice includes subscription items, it also includes the corresponding service periods and prices.

Operations

Invoices timeline

Use invoice timelines to maintain an audit trail of changes and activity for each invoice.

Operations

Journal

Use journal accounts, entries and records to track and recognize revenue.

Operations

KYC documents

Use Know Your Customer (KYC) documents to verify your customers identity. The KYC document operations generate a signed link to the Rebilly KYC document gatherer.

Document types:

  • identity-proof: Validates a customer's identity.
  • address-proof: Validates a customer's address.
  • purchase-proof: Validates a customer's purchase.
  • funds-proof: Validates that a customer has funds.
  • credit-file-proof: Verifies that there is an existing credit file with two sources that match the customer's name, DOB, and address.

Rebilly parses and analyzes the documents and accepts or rejects them according to a configurable scoring algorithm. When all document types in a KYC request are accepted, the status is fulfilled, and the KYC request fulfilled webhook is sent.

Operations

Lists

Use lists to create and maintain sets of values that may be referenced in rule conditions. Commonly used lists contain values related to conditions that target specific properties such as: customers, transactions, or BINs.

You may grant list edit permissions to members of your team without enabling them to edit rules. This may be useful if your workflow involves frequent updates to value sets that are used in rule or bind conditions. List order may not be maintained and duplicates may be removed.

For more information, see Value lists.

Operations

Memberships

Use these operations to manage user membership within your organizations. Membership describes the relationship between organizations and users. For example, one user could be a member of more than one organization.

Operations

Metadata

Use these operations to retrieve and manage metadata. Metadata is structured information on other data.

Operations

Orders

Use these operations to manage customer orders. An order is a customer's request to purchase items. It can contain subscription and one-time sale items. When an order contains one or more subscription items, it is a subscription order.

An order generates an invoice. A subscription order generates an invoice for each service period. For more information, see Orders.

Operations

Orders timeline

Use order timelines to maintain an audit trail of changes and activity for each order.

Operations

Organization data exports

Use organization data exports to export your organization data which you may want to do as a business continuity practice. These may also be used to to export data if you decide to migrate to a different payments solution.

Operations

Organizations

Use these operations to manage your organizations in Rebilly. An organization is an entity that represents you, or your company, as a merchant. You can have multiple organizations. For more information, see My organizations and websites.

Note: No data, including organizations, is shared between the live and sandbox environments.

Operations

Payment instruments

Use these operations to manage payment instruments. Payment instrument is a term which describes any means of making a digital payment, such as: credit cards, debit cards, direct debits, payment service providers, and digital wallets.

For more information on payment instruments, see Payment instruments.

OperationsWebhooks

Payment tokens

Use payment tokens to reduce the scope of PCI DSS compliance.

A payment token can be made using a different authentication scheme (public key authentication), which enables you to create a payment token directly from the browser. This bypasses the need to send sensitive cardholder info to your servers. We recommend using this with the FramePay library, which helps you integrate a form into this API resource and create payment tokens.

Operations

Plans

Use pricing plans to describe how the customer must pay for products.

Rebilly provides the following plan types:

  • Trial only: Use this plan to create and offer a free or discounted trial period for your product. For example, a free 2 week trial of an internet service. After the trial, the customer can choose to sign up for a paid subscription, or stop using the service.
  • Recurring: Use this plan to create and offer a subscription for your product. For example, a monthly subscription to an internet service that is charged at 20 USD per month.
  • One time sale: Use this plan to create and offer a one-off sale for your products. For example, a one time purchase of two bags of coffee.

For information on the plans resource, see Plans.

For information on plan pricing, see Pricing formulas.

Operations

Products

Use products to describe the goods and services that your business sells. A product also describes sales items on invoices and receipts. Product pricing is defined in plans. A product may have one or many plans.

For information on the product resource, see Product.

Operations

Profile

Use these operations to manage user profiles. A profile represents the person that is signed in to Rebilly.

Operations

Quotes

Use quote operations to create and manage quotations. Quotations describe the cost of goods or services to potential customers before they commit to a purchase. A quote contains an initial invoice preview that can be accepted to become an order.

A quote can contain subscription and one-time sale items. When a quote contains one or more subscription items, it is a subscription order quote.

Operations

Quotes timeline

Use quote timelines to maintain an audit trail of changes and activity for each quote.

Operations

Reports

Use reports operations to retrieve summary information about your customers, subscriptions, transactions, and more.

Operations

Reset password

Use these operations to manage password resets. When a password reset is requested, an email with a token is sent. In the email the user must press a reset link, and then create a new password.

Operations

Risk score

Use risk score operations to configure blocklists based on transaction risk factors.

Operations

Roles

Use these operations to manage user roles within your team or organization. Roles are an implementation of the general hierarchical (Role Based Access Control) RBAC. A senior role inherits all of its juniors' Access Control Lists (ACLs) and its own ACL. Junior roles are not influenced by the senior role.

Operations

Rules

Use rules to automate. In the Rebilly rules engine, an action is an operation that executes when an event occurs. Action and event conditions are defined in rules. Rulesets are collections of rules that are associated with an event. The order in which the rules are placed within a ruleset specifies the execution order.

For a list of events and related actions, see Events.

Operations

Rules timeline

Use rule timelines to maintain an audit trail of changes and activity for each rule.

Operations

Segments

Use these operations to manage UI segments. A segment is a filtered view of a data set that can be shared with other users. For example, you may create a transactions segment that displays specific columns that are filtered and sorted based on certain criteria, and share it with others in your organization.

Operations

Service credentials

Use these operations to get, create, and manage credentials for third-party services.

Operations

Shipping rates

Use these operations to manage shipping rates. A shipping rate contains a filter and a pricing for a specific shipping destination.

Operations

Status

Use this operation to check the status of the Rebilly API. No authentication is required.

Operations

Storefront account

Use these operations to manage Storefront accounts. A Storefront account is an account that the customer is subscribed to in order to use the Rebilly product.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token.

Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront billing portals

Use these operations to access Storefront billing portals.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront checkout forms

Use these operations to access Storefront checkout forms.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront custom fields

Use these operations to access Storefront custom fields.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront deposits

Use these operations to access Storefront deposits.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Retrieve a deposit strategyExperimental

Request

Retrieves a deposit strategy with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

curl -i -X GET \
  'https://www.rebilly.com/_mock/catalog/all/storefront/deposit-strategies/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Deposit strategy retrieved.

Bodyapplication/json
idstring<= 50 charactersread-only

ID of the deposit strategy.

Example: "dep_str_0YVJ64MAHTDPA97H8S7R5MYR1M"
namestringrequired

Name of the strategy.

filterstring

Filter that uses deposit request properties to determine if a deposit strategy is applicable for the request. If this field is empty, the strategy is applicable for any request.

Default ""
Example: "depositRequest.currency:USD"
amountsobjectrequired

Deposit strategy amounts configuration.

amounts.​calculatorstringrequired

Deposit amounts calculator. This field specifies if amounts are calculated using an absolute or percentage calculation.

Amounts are specified in baseAmount, and increments are specified in increments.

Example: baseAmount: 10 and increments: [20, 50, 100].

  • If the calculator is set to absolute: the amounts displayed to the customer are [10, 30, 60, 110].
  • If the calculator is set to percent: the amounts displayed to the customer are [10, 12, 15, 20].
Enum"absolute""percent"
amounts.​baseAmountnumber(double)>= 0.01required

First amount that is displayed to customer.

amounts.​incrementsArray of numbers(double)required

List of incremental amounts that are displayed to customer.

For more information, see the calculator property.

amounts.​adjustBaseToLastDepositboolean

Specifies if the base amount must be adjusted based on the last deposit. If this value is true, the baseAmount is changed to the last successful deposit amount made using Create a deposit request.

If the customer has no successful deposits, baseAmount is not adjusted.

Default false
customAmountobject or nullrequired

Custom amount restrictions. If this value is null, custom amounts are prohibited. If customAmount is not specified when a deposit request is created, amount restrictions are determined from the chosen strategy. For more information, see the strategyId property.

customAmount.​minimumnumber(double)>= 0.01required

Minimum custom amount.

customAmount.​multipleOfnumber(double)>= 0.01required

Multiple by which the custom amount increases.

For example, if minimum is equal to 5.30, and multipleOf is 0.50, the valid custom amount is 5.30, 5.80, 6.30, 6.80 and so on until the maximum value is reached.

A valid custom amount must be equal to minimum + X * multipleOf, where X is any non negative integer.

customAmount.​maximumnumber(double)>= 0.01required

Maximum custom amount. This value must be equal to minimum + X * multipleOf, where X is any positive integer.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

_linksArray of objects(SelfLink)read-only

Related links.

Response
application/json
{ "id": "dep_str_0YVJ64MAHTDPA97H8S7R5MYR1M", "name": "string", "filter": "depositRequest.currency:USD", "amounts": { "calculator": "absolute", "baseAmount": 0.01, "increments": [], "adjustBaseToLastDeposit": false }, "customAmount": { "minimum": 0.01, "multipleOf": 0.01, "maximum": 0.01 }, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [ {} ] }

Retrieve a deposit requestExperimental

Request

Retrieves a deposit request with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Query
expandstring

Expands a request to include embedded objects within the _embedded property of the response. This field accepts a comma-separated list of objects.

For more information, see Expand to include embedded objects.

curl -i -X GET \
  'https://www.rebilly.com/_mock/catalog/all/storefront/deposit-requests/{id}?expand=string' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Deposit request retrieved.

Bodyapplication/json
idstring<= 50 charactersread-only

ID of the deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
websiteIdstring<= 50 charactersrequired

Website ID of the deposit. This value specifies the website with which the deposit is associated.

Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer resource.

transactionIdsArray of strings

List of transaction IDs that are associated with the deposit request. This list includes transactions that are created from the deposit request. There is a maximum of one approved transaction in the list.

statusstringread-only

Status of the request.

Enum ValueDescription
created

Request is created, but it has not been visited by a customer. This is a temporary state.

pending

Request has been visited by a customer, but no funds have been deposited yet. This is a temporary state.

initiated

A funds deposit transaction has been initiated. This is a temporary state.

attempted

A funds deposit transaction was attempted and declined. This is a temporary state.

completed

A funds deposit transaction has been approved and completed. This is a permanent state.

expired

Request expired without an approved deposit transaction. This is a permanent state.

currencystring(CurrencyCode)= 3 charactersrequired

Currency code in ISO 4217 format.

amountsArray of numbers(double)

List of available deposit amounts.

If amounts is not specified when a deposit is created, amounts are determined from the chosen strategy. For more information, see the strategyId property.

customAmountobject or null

Custom amount restrictions. If this value is null, custom amounts are prohibited. If customAmount is not specified when a deposit request is created, amount restrictions are determined from the chosen strategy. For more information, see the strategyId property.

redirectUrlstring(uri)

URL to redirect the customer to when a deposit is completed. The default value is the website URL.

expirationTimestring(date-time)

Date and time at which the deposit request expires. The default expiration time is one hour from the time the request is created.

propertiesSchemaobject or nullread-only

Defines properties the user can complete when they use the hosted deposit form. This field accepts JSON-schema drafts 4, 6, and 7.

Example: {"type":"object","properties":{"email":{"type":"string"},"max":{"type":"integer","minimum":0,"exclusiveMaximum":100}},"required":["email"]}
propertiesobject or nullread-only

Properties that are available for the user to complete when they use the hosted deposit form. Use this object to describe fields that are rendered and completed on the hosted deposit form.

Example: {"email":"email@example.com","max":"33"}
notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

cashierTokenstring or nullread-only

JSON Web Token (JWT) used to complete the deposit request. This value is null if the deposit request is expired or completed.

customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

transactionIdstring or null<= 50 charactersDeprecatedread-only

ID of the transaction that is used in the deposit request.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
Response
application/json
{ "id": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "transactionIds": [ "string" ], "status": "created", "currency": "USD", "amounts": [ 0.01 ], "customAmount": { "minimum": 0.01, "multipleOf": 0.01, "maximum": 0.01 }, "redirectUrl": "http://example.com", "expirationTime": "2019-08-24T14:15:22Z", "propertiesSchema": { "type": "object", "properties": {}, "required": [] }, "properties": { "email": "email@example.com", "max": "33" }, "notificationUrl": "http://example.com", "cashierToken": "string", "customFields": { "foo": "bar" }, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [ {} ], "_embedded": { "customer": {}, "website": {}, "transactions": [] } }

Create a depositExperimental

Request

Creates a deposit transaction.

Bodyapplication/jsonrequired
depositRequestIdstring<= 50 charactersrequired

ID of the deposit request. The created transaction is based on the properties of this deposit request.

Example: "4f6cf35x-2c4y-483z-a0a9-158621f77a21"
amountnumber(double)required

Deposit amount.

Example: 97.97
propertiesobject

Properties completed by the user in the deposit form.

Example: {"email":"email@example.com","max":"33"}
curl -i -X POST \
  https://www.rebilly.com/_mock/catalog/all/storefront/deposit \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "depositRequestId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
    "amount": 97.97,
    "properties": {
      "email": "email@example.com",
      "max": "33"
    }
  }'

Responses

Transaction created.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
orderIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Contact's information.

redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
gatewayobjectread-only

Related gateway information.

customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Read-only timestamp in ISO 8601 date-time format.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

paymentInstrumentobject

Default payment instrument information.

approvalUrlstring(uri)

URL to redirect the end-customer when transaction status is waiting-approval or offsite.

tokenstringread-only

Session token that is used for authentication. This token provides access to created orders, invoices, and transactions.

depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
_linksArray of objectsread-only

Related links.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "orderIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "approvalUrl": "http://example.com", "token": "string", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "_links": [ {} ] }

Storefront invoices

Use these operations to access Storefront invoices.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront KYC documents

Use these operations to access Storefront KYC documents.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront orders

Use these operations to access Storefront orders.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront payment instruments

Use these operations to access Storefront payment instruments.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront plans

Use these operations to access Storefront plans.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront products

Use these operations to access Storefront products.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront purchases

Use these operations to manage Storefront purchases. Purchases are transactions that have been executed related to the purchase of goods or services.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront quotes

Use these operations to access Storefront quotes.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront transactions

Use these operations to access Storefront transactions.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Storefront websites

Use these operations to access Storefront websites.

Storefront operations interact directly with the customer, and provide the customer with access to their own data.

To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see Create a session with username and password and Exchange an authentication token. Storefront operations are intended to be used directly from an untrusted browser.

Operations

Tags

Use tags to organize and categorize customers or KYC documents based on keywords.

Operations

Tracking

Use tracking when debugging and auditing issues. Tracking is a layer for accessing all activity such as: API requests, subscriptions, webhooks, events, and more.

Operations

Transactions

Use these operations to:

  • set up payment instruments for payments
  • authorize and hold funds
  • capture funds
  • make payments
  • make payouts
  • refund transactions.
Operations

Transactions timeline

Use transaction timelines to maintain an audit trail of changes and activity for each transaction.

Operations

Usage

Use these operations to manage the product usage of a subscription item for metered billing purposes.

Use metered billing when product quantity is unknown to the customer at the moment of creating a subscription. Metered billing is based on reported usage records. Every reported usage updates the quantity of an upcoming invoice item for a specified subscription and a plan. To create a metered billing plan, see Plans.

Operations

Users

Use these operations to manage users. A user is a person who can login to Rebilly, and take actions based on their granted permissions.

Operations

Webhooks

Use these operations to manage webhooks. Webhooks notify your systems in real-time when certain events occur. For example, when a new transaction occurs or a new subscription is created. Webhooks enable you to collect information about events. Rebilly can send this information by HTTP POST request to a defined URL of your choice.

Operations

Websites

Use these operations to manage websites. A website is where your organization obtains a customer. It is also the processor account and billing descriptor used for payment transactions. You can create multiple websites.

Websites are related to each invoice and each payment gateway account. This enables you to associate gateway accounts with multiple websites, or make them exclusive to particular websites. For more information, see My organizations and websites.

Operations