Our APIs provide programmatic access to the getpaid platform. This page contains a comprehensive reference for all of our public APIs. For walkthrough documentation please see our main docs site.
To get started, sign up at https://getpaid.io. This will give you access to the getpaid Dashboard where you can configure your account and retrieve your credentials needed to authenticate with our APIs.
To streamline integration we provide client libraries for a number of languages, otherwise you can integrate directly with the API using the HTTP tooling built-in to most modern frameworks.
Type | Format |
---|---|
Amount Minor | Amount in the minor currency unit (e.g. 100 cents for 1 EUR). |
Card Number | Credit/debit card numbers are formatted as a string of digits with no white spaces or dashes. The value must be between 13 and 19 digits long and must fulfill the Luhn check. |
Card Verification Value | Card Verification Value (CVV) or Card Verification Code (CVC) is formatted as a string of digits. The value must be 3 or 4 digits long. |
Country | The country code fields follow the ISO 3166-1 Alpha 2 standard in uppercase. Examples: ES , US . |
Currency | The currency code fields follow the ISO 4217 standard in uppercase. Examples: EUR , USD . |
Date | Dates are formatted using the complete date format according to the ISO 8601 standard: YYYY-MM-DD . Example: 2023-09-30 . |
Date-time | Date-time fields are formatted using the ISO 8601 standard for the combined date and time in UTC: YYYY-MM-DDThh:mm:ss.sssZ . Example: 2015-09-01T23:59:59.479Z . |
Email fields should follow the RFC 5322 standard. Example: jon.smith@acme.com |
|
Hex Color | Colors are represented as a string starting with # followed by six hexadecimal digits. Each pair of digits represents the intensity of red, green, and blue components respectively. Examples: #FFFFFF , #000000 , #FF5733 . |
Identifier | Identifiers are formatted as a string of 3 alphabetic characters (which represents the type of the identified object), one underscore and 26 alphanumeric characters. Every identifier generated in our system is globally unique. Examples: acc_44678r08jtm8zbt227tzhc4nw5 , doc_473cr1y0ghbyc3m1yfbwvn3nxx . |
IP | IP fields are formatted using the Internet Protocol version 4 (IPv4) standard: x.x.x.x where x must be a decimal value between 0 and 255 . Example: 192.158.1.38 . |
The format of the files uploaded must correspond to the MIME type in the Content-Type
header. See the supported file
formats and the corresponding MIME types:
Extensions | Kind of document | MIME Type |
---|---|---|
.csv |
Comma-separated values (CSV) | text/csv |
.doc |
Microsoft Word | application/msword |
.docx |
Microsoft Word (OpenXML) | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.jpeg , .jpg |
JPEG images | image/jpeg |
.md |
Markdown | text/markdown |
.pdf |
Adobe Portable Document Format (PDF) | application/pdf |
.png |
Portable Network Graphics | image/png |
.svg |
Scalable Vector Graphics (SVG) | image/svg+xml |
.tsv |
Tab-separated values (TSV) | text/tab-separated-values |
.txt |
Text (generally ASCII or ISO 8859-n) | text/plain |
.xls |
Microsoft Excel | application/vnd.ms-excel |
.xlsx |
Microsoft Excel (OpenXML) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
In order to authenticate with getpaid APIs you need to request an OAuth 2.0 Access Token using your Client ID and Secret available from the getpaid Dashboard:
curl --location --request POST 'https://auth.getpaid.io/oauth/token' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "{{client_id}}",
"client_secret": "{{client_secret}}",
"audience": "https://api.sandbox.getpaid.io",
"grant_type": "client_credentials"
}'
Specify the appropriate audience
, client_id
and client_secret
to switch between Sandbox and Live environments.
Full details of the access token endpoint can be found here.
This will return a Bearer access token in the JSON Web Token (JWT) format which you should use in the Authorization
header of any subsequent getpaid API requests:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"token_type": "bearer",
"expires_in": 3600
}
The access token will be valid for the length of time in seconds indicated by the expires_in
field. When it expires, you should request a new one.
If using one of our client libraries, this will be handled automatically for you.
OAuth
clientCredentials
https://auth.getpaid.io/oauth/token
accounts:read
-Allows to read accounts.
accounts:read_write
-Allows to read and/or upsert accounts.
bank_account_authorizations:read_write
-Allows to read and/or create bank account authorizations.
bank_transactions:read
-Allows to read bank transactions.
bank_transactions:read_write
-Allows to read and/or upsert bank transactions.
invoices:read
-Allows to read invoices.
invoices:read_write
-Allows to read and/or upsert invoices.
payment_terms:read
-Allows to read payment terms.
payment_terms:read_write
-Allows to read and/or upsert payment terms.
chats:read_write
-Allows to read and/or upsert chats.
Access Token
Obtain an OAuth 2.0 Access token to authenticate API requests
Request Body schema: application/jsonrequired
client_id | string Your OAuth Client ID for the environment, Live or Sandbox, you are requesting the token for. |
client_secret | string Your OAuth Client Secret for the environment, Live or Sandbox, you are requesting the token for. |
audience | string <uri> Enum: "https://api.getpaid.io" "https://api.sandbox.getpaid.io" The API you wish to integrate with. Use this to switch between Sandbox and Live. |
grant_type | string Value: "client_credentials" The OAuth grant type |
Responses
Request samples
- Payload
{- "client_id": "g6gWu46zeP0HH4jkW3i22yJ2shDrNxJ8",
- "client_secret": "S6gozTXzrS42OZ0cmxVJG133mOfuHhSfkIJkcH7FBm-0HyGrVZMLGJtyruTA4CQv",
- "grant_type": "client_credentials"
}
Response samples
- 200
- 400
{- "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImliVmVSLV...",
- "scope": "payments",
- "expires_in": 86400,
- "token_type": "Bearer"
}
An account is the business that will be onboarded to getpaid. The account is the main entity that will be used to enable the different capabilities that getpaid offers.
Create Account
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
reference | string [ 1 .. 50 ] characters Your reference for the account. |
required | object The available capabilities for the account. |
country required | string <iso-3166-alpha-2> = 2 characters The two-letter ISO country code. |
required | object The business profile details. |
intraorganizational | boolean (Intraorganizational) Indicates whether the account belongs to the requestor's organization. |
object <= 5 properties Some data to provide context for the account. Keys with a length greater than 100 characters are not supported. | |
object (AccountUrls) URLs that are used throughout the application process. | |
labels | Array of strings (LabelId) <= 10 items [ items [ 30 .. 50 ] characters ] The list of labels to apply to the account. |
Responses
Request samples
- Payload
{- "reference": "merch-001",
- "capabilities": {
- "manage_resources": {
- "enabled": true
}, - "issue_invoices": {
- "enabled": false
}, - "receive_invoices": {
- "enabled": true
}
}, - "business_profile": {
- "type": "string",
- "legal_name": "Wildcat Pumps GmbH",
- "trading_name": "string",
- "registration_number": "12345678",
- "registered_address": {
- "line_one": "Oststrabe 35",
- "line_two": "Floor 2, Unit 2",
- "city": "Düsseldorf",
- "state": "North Rhine-Westphalia",
- "zip": "18187"
}, - "phone_number": {
- "country_calling_code": "+49",
- "number": "555666698"
}, - "email": "user@example.com"
}, - "intraorganizational": true,
- "metadata": {
- "type": "buyer"
}, - "labels": [
- "lbl_44678r08jtm8zbt227tzhc4nw5"
], - "country": "DE"
}
Response samples
- 201
- 409
- 422
{- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "capabilities": {
- "manage_resources": {
- "enabled": true,
- "status": "information_due"
}, - "issue_invoices": {
- "enabled": false,
- "status": "inactive"
}, - "receive_invoices": {
- "enabled": true,
- "status": "active"
}
}, - "requirements_due": [
- {
- "field": "business_profile.registration_number",
- "requested_by": {
- "receive_invoices": {
- "reason": "required"
}
}
}
], - "version": "20240213150344583"
}
List Accounts
Authorizations:
query Parameters
sort | string Example: sort=legal_name:desc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
|
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
id | Array of strings (AccountId) [ items [ 30 .. 50 ] characters ] Example: id=acc_44678r08jtm8zbt227tzhc4nw5&id=acc_47252596b36e4004a03cfa82c5 Filtering. Exact match of a list of account IDs. |
reference | string (Reference) [ 1 .. 50 ] characters Example: reference=merch-001 Filtering. Your reference for the account. |
country | string <iso-3166-alpha-2> (Country) = 2 characters Example: country=DE Filtering. The two-letter ISO country code. |
intraorganizational | boolean (Intraorganizational) Filtering. Indicates whether the account belongs to the requestor's organization. |
legal_name | string Example: legal_name=getpaid autos S.L. Filtering. It applies |
capability | Array of strings (CapabilityName) Items Enum: "manage_resources" "issue_invoices" "receive_invoices" Example: capability=manage_resources&capability=issue_invoices Filtering. Exact match of a list of capabilities. Note: This parameter cannot be used together with |
capability_status | Array of strings (CapabilityStatus) Items Enum: "information_due" "verifying" "active" "inactive" Example: capability_status=information_due&capability_status=active Filtering. Exact match of a list of capability statuses. |
manage_resources_from | string <date-time> (DateTime) = 24 characters Example: manage_resources_from=2023-01-01T01:01:00.000Z Filtering. Initial date and time (inclusive) of the range where the account had Minimum: 2 years before the current date and time. Maximum: the date and time set in |
manage_resources_to | string <date-time> (DateTime) = 24 characters Example: manage_resources_to=2023-01-01T01:01:00.000Z Filtering. Last date and time (inclusive) of the range where the account had Minimum: the date and time set in Note: This parameter cannot be used together with |
issue_invoices_from | string <date-time> (DateTime) = 24 characters Example: issue_invoices_from=2023-01-01T01:01:00.000Z Filtering. Initial date and time (inclusive) of the range where the account had Minimum: 2 years before the current date and time. Maximum: the date and time set in |
issue_invoices_to | string <date-time> (DateTime) = 24 characters Example: issue_invoices_to=2023-01-01T01:01:00.000Z Filtering. Last date and time (inclusive) of the range where the account had Minimum: the date and time set in Note: This parameter cannot be used together with |
receive_invoices_from | string <date-time> (DateTime) = 24 characters Example: receive_invoices_from=2023-01-01T01:01:00.000Z Filtering. Initial date and time (inclusive) of the range where the account had Minimum: 2 years before the current date and time. Maximum: the date and time set in |
receive_invoices_to | string <date-time> (DateTime) = 24 characters Example: receive_invoices_to=2023-01-01T01:01:00.000Z Filtering. Last date and time (inclusive) of the range where the account had Minimum: the date and time set in Note: This parameter cannot be used together with |
label | Array of strings (LabelId) [ items [ 30 .. 50 ] characters ] Example: label=lbl_44678r08jtm8zbt227tzhc4nw5&label=lbl_31672r10jtm6zvt127vzmc3sn2 Filtering. Exact match of a list of label IDs. |
Responses
Response samples
- 200
- 422
{- "cursor": "Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==",
- "data": [
- {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "version": "20240213150344583",
- "reference": "merch-001",
- "capabilities": {
- "manage_resources": {
- "enabled": true,
- "status": "information_due",
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}, - "issue_invoices": {
- "enabled": false,
- "status": "inactive",
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}, - "receive_invoices": {
- "enabled": true,
- "status": "active",
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}
}, - "country": "DE",
- "business_profile": {
- "type": "string",
- "legal_name": "Wildcat Pumps GmbH",
- "registration_number": "12345678"
}, - "intraorganizational": true,
- "labels": [
- "lbl_44678r08jtm8zbt227tzhc4nw5"
]
}
]
}
Get Account
Gets an account associated to the owner account.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
Responses
Response samples
- 200
- 404
- 422
{- "reference": "merch-001",
- "capabilities": {
- "manage_resources": {
- "enabled": true,
- "status": "information_due",
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}, - "issue_invoices": {
- "enabled": false,
- "status": "inactive",
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}, - "receive_invoices": {
- "enabled": true,
- "status": "active",
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}
}, - "business_profile": {
- "type": "string",
- "legal_name": "Wildcat Pumps GmbH",
- "trading_name": "string",
- "registration_number": "12345678",
- "registered_address": {
- "line_one": "Oststrabe 35",
- "line_two": "Floor 2, Unit 2",
- "city": "Düsseldorf",
- "state": "North Rhine-Westphalia",
- "zip": "18187"
}, - "phone_number": {
- "country_calling_code": "+49",
- "number": "555666698"
}, - "email": "user@example.com"
}, - "intraorganizational": true,
- "metadata": {
- "type": "buyer"
}, - "labels": [
- "lbl_44678r08jtm8zbt227tzhc4nw5"
], - "country": "DE",
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "requirements_due": [
- {
- "field": "business_profile.registration_number",
- "requested_by": {
- "receive_invoices": {
- "reason": "required"
}
}
}
], - "version": "20240213150344583"
}
Update Account
It applies partial modifications to an existing account. On this way, every field that is not provided will remain unchanged, and all the provided ones would be updated in our system. Please note that some fields might require some attention and can raise some additional checks required by any capability requirement.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
Request Body schema: application/jsonrequired
reference | string (Reference) [ 1 .. 50 ] characters Your reference for the account. |
object (Capabilities) The available capabilities for the account. | |
object (BusinessProfile) The business profile details. | |
intraorganizational | boolean (Intraorganizational) Indicates whether the account belongs to the requestor's organization. |
object <= 5 properties Some data to provide context for the account. Keys with a length greater than 100 characters are not supported. | |
object (AccountUrls) URLs that are used throughout the application process. | |
labels | Array of strings (LabelId) <= 10 items [ items [ 30 .. 50 ] characters ] The list of labels to apply to the account. |
Responses
Request samples
- Payload
{- "reference": "merch-001",
- "capabilities": {
- "manage_resources": {
- "enabled": true
}, - "issue_invoices": {
- "enabled": false
}, - "receive_invoices": {
- "enabled": true
}
}, - "business_profile": {
- "type": "string",
- "legal_name": "Wildcat Pumps GmbH",
- "trading_name": "string",
- "registration_number": "12345678",
- "registered_address": {
- "line_one": "Oststrabe 35",
- "line_two": "Floor 2, Unit 2",
- "city": "Düsseldorf",
- "state": "North Rhine-Westphalia",
- "zip": "18187"
}, - "phone_number": {
- "country_calling_code": "+49",
- "number": "555666698"
}, - "email": "user@example.com"
}, - "intraorganizational": true,
- "metadata": {
- "type": "buyer"
}, - "labels": [
- "lbl_44678r08jtm8zbt227tzhc4nw5"
]
}
Response samples
- 200
- 404
- 422
{- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "capabilities": {
- "manage_resources": {
- "enabled": true,
- "status": "information_due"
}, - "issue_invoices": {
- "enabled": false,
- "status": "inactive"
}, - "receive_invoices": {
- "enabled": true,
- "status": "active"
}
}, - "requirements_due": [
- {
- "field": "business_profile.registration_number",
- "requested_by": {
- "receive_invoices": {
- "reason": "required"
}
}
}
], - "version": "20240213150344583"
}
Disable Account
It disables an existing account. Once an account is disabled, it will not be accessible anymore.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
The different relationships that accounts can have with one another. A link can define the hierarchy within the whole company and also allows the assignment of different "roles" that the current account can play in relation to each connected account.
There are several types of relationships an account can have. The possible ones are:
can_use
- Allows source account to use the resources of destination account.
Create Account Link
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
type required | string Value: "can_use" The type of the account link. |
source required | string (AccountId) [ 30 .. 50 ] characters The unique identifier that represents the account that is the source of the relationship. |
destination required | string (AccountId) [ 30 .. 50 ] characters The unique identifier that represents the account that is the destination of the relationship. |
Responses
Request samples
- Payload
{- "type": "can_use",
- "source": "acc_44678r08jtm8zbt227tzhc4nw4",
- "destination": "acc_4zjjxn0nm1tnweqbttedkvnsc8"
}
Response samples
- 201
- 404
- 409
- 422
{- "id": "alk_397a1eb5c87a4f14bdf0924044"
}
List Account Links
Authorizations:
query Parameters
sort | string Example: sort=source:asc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
By default: |
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
type | string Value: "can_use" Example: type=can_use Filtering. The type of account link. |
source | Array of strings (AccountLinkId) [ items [ 30 .. 50 ] characters ] Example: source=alk_397a1eb5c87a4f14bdf0924044&source=alk_4a874dd810c245b3bcf32f603d Filtering. Exact match of a list of account link IDs. |
destination | Array of strings (AccountLinkId) [ items [ 30 .. 50 ] characters ] Example: destination=alk_397a1eb5c87a4f14bdf0924044&destination=alk_4a874dd810c245b3bcf32f603d Filtering. Exact match of a list of account link IDs. |
Responses
Response samples
- 200
{- "cursor": "Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==",
- "data": [
- {
- "type": "can_use",
- "source": "acc_44678r08jtm8zbt227tzhc4nw4",
- "destination": "acc_4zjjxn0nm1tnweqbttedkvnsc8",
- "id": "alk_397a1eb5c87a4f14bdf0924044"
}
]
}
Get Account Link
Gets an account link associated to the owner account.
Authorizations:
path Parameters
account_link_id required | string (AccountLinkId) [ 30 .. 50 ] characters Example: alk_397a1eb5c87a4f14bdf0924044 The unique identifier of the account link. |
Responses
Response samples
- 200
- 404
{- "type": "can_use",
- "source": "acc_44678r08jtm8zbt227tzhc4nw4",
- "destination": "acc_4zjjxn0nm1tnweqbttedkvnsc8",
- "id": "alk_397a1eb5c87a4f14bdf0924044"
}
Delete Account Link
Deletes an account link associated to the owner account.
Authorizations:
path Parameters
account_link_id required | string (AccountLinkId) [ 30 .. 50 ] characters Example: alk_397a1eb5c87a4f14bdf0924044 The unique identifier of the account link. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
A bank account authorization is a permission granted by a bank account holder, allowing another person or entity to access, manage, or perform specific transactions on their account.
Bank account authorizations have a status which indicates the current state of the consent process. The possible statuses are:
completed
- The request was completed successfully.next_step_required
- The request requires additional action before it can be completed.awaiting
- The request is pending and waiting for a response or action from an external party.rejected
- The request was rejected by the user/bank.failed
- The request failed due to technical reasons.
In a bank account authorization process, there are multiple steps that need to be followed to complete the action. These
steps are defined by the next_step
block, which guides the flow of the authorization process.
Possible values for next_step.type
:
configure_redirect
- Redirection information needs to be collected by calling Configure Single Redirect Bank Account Authorization endpoint.redirect
- The user needs to be redirected to the bank's website to complete a required action.pass_credentials
- The user needs to provide their credentials (e.g., username, password) for authentication purposes by calling Pass User's Credentials Bank Account Authorization.select_sca_method
- The user must select a Strong Customer Authentication (SCA) method, such as SMS, app-based authentication, or a hardware token by calling Select SCA Method For Bank Account Authorization.pass_sca_code
- The user needs to enter an SCA code (e.g., a one-time password) that was generated from their chosen SCA method by calling Pass SCA Code For Bank Account Authorization.poll
- To poll the consent status, by calling Get Bank Account Authorization, is required in order to determine whether the user has successfully authorized the request with the bank. Because the flow occurs directly between the end user and the bank without getpaid acting as an intermediary, for example, via a secondary device such as a mobile phone.
The series are used to create invoices with auto-generated codes. Invoices series can be created only for accounts with issue_invoices
capability enabled.
The prefix
and suffix
fields are used to generate the invoice number, the padding
field is used to pad the number with zeros, the valid_from
and valid_to
fields are used to define the period in which the series is valid.
The produced invoices reference will be {prefix}{padded number}{suffix}
, the length of the reference is limited to 50 characters. So the sum of the length of prefix, suffix and the padding should be less than or equal to 50.
Create Invoices Series
Creates new invoices series for the account.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
name required | string (InvoicesSeriesName) <= 100 characters The name of the series. |
prefix required | string [ 2 .. 45 ] characters The prefix of the invoice generated number. |
suffix | string <= 43 characters The suffix of the invoice generated number. |
padding required | integer [ 5 .. 20 ] The number of digits to pad the invoice generated number with. |
valid_from required | string <date-time> = 24 characters The utc date from which the series is valid. |
valid_to required | string <date-time> = 24 characters The utc date until which the series is valid. |
type required | string Enum: "standard" "corrective" The type of the invoices supported by the series. |
Responses
Request samples
- Payload
{- "name": "Marketplace sales",
- "prefix": "INV-2024-",
- "suffix": "MARKETPLACE",
- "padding": 5,
- "valid_from": "2024-01-01T00:00:00Z",
- "valid_to": "2024-12-31T23:59:59Z",
- "type": "standard"
}
Response samples
- 201
- 404
- 409
- 422
{- "id": "ser_4ehg1mkv3mvt3256vcn8dspb4h"
}
List Invoices Series
Lists the existing invoices series.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
query Parameters
type | string (InvoiceType) Enum: "standard" "corrective" Example: type=standard Filtering. The type of the invoices series. |
Responses
Response samples
- 200
{- "data": [
- {
- "id": "ser_4ehg1mkv3mvt3256vcn8dspb4h",
- "name": "Marketplace sales"
}
]
}
Get Invoices Series
Gets the invoices series details.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
invoices_series_id required | string (InvoicesSeriesId) [ 30 .. 50 ] characters Example: ser_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the invoices series. |
Responses
Response samples
- 200
- 404
{- "id": "ser_4ehg1mkv3mvt3256vcn8dspb4h",
- "name": "Marketplace sales",
- "prefix": "INV-2024-",
- "suffix": "MARKETPLACE",
- "padding": 5,
- "valid_from": "2024-01-01T00:00:00Z",
- "valid_to": "2024-12-31T23:59:59Z",
- "type": "standard"
}
Labels are used to categorize and organize your data. They can be used to group invoices, accounts, or any other entity in the system.
Create Label
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
name required | string <= 50 characters The name of the label. |
color required | string <hex-color> The color of the label. A hexadecimal color code. |
description | string <= 250 characters The description of the label. |
Responses
Request samples
- Payload
{- "name": "Garage",
- "color": "#FF0000",
- "description": "This is a label description."
}
Response samples
- 201
- 409
- 422
{- "id": "lbl_44678r08jtm8zbt227tzhc4nw5",
- "text": "#FFFFFF"
}
List Labels
Authorizations:
query Parameters
sort | string Example: sort=name:desc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
|
Responses
Response samples
- 200
- 422
{- "data": [
- {
- "id": "lbl_44678r08jtm8zbt227tzhc4nw5",
- "name": "Garage",
- "color": "#FF0000",
- "text": "#FFFFFF",
- "description": "This is a label description."
}
]
}
Get Label
Authorizations:
path Parameters
label_id required | string (LabelId) [ 30 .. 50 ] characters Example: lbl_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the label. |
Responses
Response samples
- 200
- 404
{- "id": "lbl_44678r08jtm8zbt227tzhc4nw5",
- "name": "Garage",
- "color": "#FF0000",
- "text": "#FFFFFF",
- "description": "This is a label description."
}
Update Label
Authorizations:
path Parameters
label_id required | string (LabelId) [ 30 .. 50 ] characters Example: lbl_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the label. |
Request Body schema: application/jsonrequired
name required | string <= 50 characters The name of the label. |
color required | string <hex-color> The color of the label. A hexadecimal color code. |
description | string <= 250 characters The description of the label. |
Responses
Request samples
- Payload
{- "name": "Garage",
- "color": "#FF0000",
- "description": "This is a label description."
}
Response samples
- 200
- 409
- 422
{- "id": "lbl_44678r08jtm8zbt227tzhc4nw5",
- "text": "#FFFFFF"
}
Delete Label
Authorizations:
path Parameters
label_id required | string (LabelId) [ 30 .. 50 ] characters Example: lbl_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the label. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
A payment instrument represents a financial entity that can be used for processing payments, invoicing, and reconciliation. It contains essential details about the funding source, such as a bank account or other financial methods, and provides metadata related to its status and capabilities.
Note that every change performed on a payment instrument (create, disable, or enable) will alter the account version and can trigger some verification checks required on any capability.
Payment instruments have a status which indicates its current state. The possible statuses are:
active
- The payment instrument is active and can be used.inactive
- The payment instrument is inactive and cannot be used.
Create Payment Instument
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
required | object |
type required | string The type of payment instrument. |
required | object (BankAccountNumber) The bank account. |
Responses
Request samples
- Payload
{- "type": "bank_account",
- "account_number": {
- "type": "iban",
- "value": "DE75512108001245126199"
}
}
Response samples
- 201
- 409
- 422
{- "id": "pai_1a6po0p7zqv1q2arfsyr9548q",
- "bank": {
- "type": "aibbank",
- "name": "CaixaBank",
- "country": "DE",
}, - "open_banking": {
- "supported": true,
- "features": {
- "invoices_reconciliation": {
- "enabled": "string",
- "status": "disabled",
- "required_permissions": [
- "read_transactions"
], - "consent": {
- "bank_account_authorization_id": "baa_6f98522fe59341108bb967fa4f",
- "id": "tok_6f98522fe59341108bb967fa4f",
- "updated_at": "2023-09-01T22:05:48.479Z",
- "expires_at": "2023-09-01T22:05:48.479Z",
- "renewal_at": "2023-09-01T22:05:48.479Z",
- "permissions": [
- "read_transactions"
]
}
}
}
}, - "account": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "version": "20240213150344583",
- "legal_name": "string"
}
}
List Payment Instruments
List payment instruments associated the specified accounts.
Authorizations:
query Parameters
sort | string Example: sort=account_number_value:desc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
By default: |
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
account_id | Array of strings (AccountId) [ items [ 30 .. 50 ] characters ] Example: account_id=acc_44678r08jtm8zbt227tzhc4nw5&account_id=acc_47252596b36e4004a03cfa82c5 Filtering. Exact match of a list of account IDs. |
account_number_value | string Example: account_number_value=210031189 Filtering. It applies |
type | string Value: "bank_account" Example: type=bank_account Filtering. The type of payment instrument. |
status | string (PaymentInstrumentStatus) Enum: "active" "inactive" Example: status=active,inactive Filtering. Comma-separated list indicating the payment instrument status. |
Responses
Response samples
- 200
- 422
{- "cursor": "Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==",
- "data": [
- {
- "id": "pai_1a6po0p7zqv1q2arfsyr9548q",
- "bank": {
- "type": "aibbank",
- "name": "CaixaBank",
- "country": "DE",
}, - "open_banking": {
- "supported": true,
- "features": {
- "invoices_reconciliation": {
- "enabled": "string",
- "status": "disabled",
- "required_permissions": [
- "read_transactions"
], - "consent": {
- "bank_account_authorization_id": "baa_6f98522fe59341108bb967fa4f",
- "id": "tok_6f98522fe59341108bb967fa4f",
- "updated_at": "2023-09-01T22:05:48.479Z",
- "expires_at": "2023-09-01T22:05:48.479Z",
- "renewal_at": "2023-09-01T22:05:48.479Z",
- "permissions": [
- "read_transactions"
]
}
}
}
}, - "account": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "version": "20240213150344583",
- "legal_name": "string"
}, - "type": "string",
- "account_number": {
- "type": "iban",
- "value": "DE75512108001245126199"
}, - "status": "active"
}
]
}
Get Payment Instrument
Gets a payment instrument associated to the owner account.
Authorizations:
path Parameters
payment_instrument_id required | string (PaymentInstrumentId) [ 30 .. 50 ] characters Example: pai_1a6po0p7zqv1q2arfsyr9548q The unique identifier of the payment instrument. |
Responses
Response samples
- 200
- 404
- 422
{- "id": "pai_1a6po0p7zqv1q2arfsyr9548q",
- "bank": {
- "type": "aibbank",
- "name": "CaixaBank",
- "country": "DE",
}, - "open_banking": {
- "supported": true,
- "features": {
- "invoices_reconciliation": {
- "enabled": "string",
- "status": "disabled",
- "required_permissions": [
- "read_transactions"
], - "consent": {
- "bank_account_authorization_id": "baa_6f98522fe59341108bb967fa4f",
- "id": "tok_6f98522fe59341108bb967fa4f",
- "updated_at": "2023-09-01T22:05:48.479Z",
- "expires_at": "2023-09-01T22:05:48.479Z",
- "renewal_at": "2023-09-01T22:05:48.479Z",
- "permissions": [
- "read_transactions"
]
}
}
}
}, - "account": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "version": "20240213150344583",
- "legal_name": "string"
}, - "type": "bank_account",
- "account_number": {
- "type": "iban",
- "value": "DE75512108001245126199"
}, - "status": "active"
}
Disable Payment Instrument
It disables an existing payment instrument.
Authorizations:
path Parameters
payment_instrument_id required | string (PaymentInstrumentId) [ 30 .. 50 ] characters Example: pai_1a6po0p7zqv1q2arfsyr9548q The unique identifier of the payment instrument. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
Enable Payment Instrument
It enables a disabled payment instrument.
Authorizations:
path Parameters
payment_instrument_id required | string (PaymentInstrumentId) [ 30 .. 50 ] characters Example: pai_1a6po0p7zqv1q2arfsyr9548q The unique identifier of the payment instrument. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
List Taxes
List taxes associated to a specific account.
Authorizations:
path Parameters
account_id required | string (AccountId) [ 30 .. 50 ] characters Example: acc_44678r08jtm8zbt227tzhc4nw5 The unique identifier of the account. |
Responses
Response samples
- 200
- 404
- 422
{- "data": [
- {
- "type": "percentage",
- "reference": "iva",
- "name": "IVA",
- "percent": 21
}
]
}
An invoice is a formal contractual document dispatched from a seller to a buyer, notifying them of the purchase of goods or services and the corresponding obligation to make a payment.
Additional information regarding the rounding process applied to the calculation of totals and taxes can be found in our public documentation.
Represents the current status of an invoice.
draft
- The invoice is a draft and can suffer changes.cancelled
- The invoice has been cancelled.initiated
- The invoice has been received and is about to be issued.issued
- The invoice code has been provided or generated.
Create Invoice
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
type required | string (InvoiceType) Default: "standard" Type of invoice document subject to the requirements of the local tax regime.
|
status | |
reference | string (InvoiceReference) [ 1 .. 50 ] characters Your reference for the invoice. This is a unique identifier for the invoice provided by you. It can be used to reference the invoice in your system. We will include this value in all invoice related webhooks. |
required | object The code can be directly set or it can be generated based on a pre-defined invoices series. |
required | object (UpdateStandardSeller) The taxable entity supplying the goods or services. Note: The related account needs to have |
required | object (UpdateStandardBuyer) The legal entity receiving the goods or services. Note: The related account needs to have |
currency | string <iso-4217> (Currency) = 3 characters The processing currency code according to the ISO-4217 standard |
Array of objects List of invoice lines grouped by property representing each of the items sold to the buyer. | |
Array of objects List of invoice lines representing each of the items sold to the buyer. | |
required | object Information on when, how, and to whom the invoice should be paid. |
Array of any unique The documents associated to the invoice. It can contain both the document automatically generated from the invoice data or the attachments uploaded using the Upload Invoice Document endpoint. | |
Array of objects [ 1 .. 10 ] items unique List of links to additional information related to the invoice that are included in the invoice document. | |
object <= 5 properties Some data to provide context for the invoice. Keys with a length greater than 100 characters are not supported. This will never be displayed to end users. | |
notes | Array of strings <= 10 items [ items <= 250 characters ] Unstructured information that is relevant to the invoice, such as correction or additional legal details. |
object URLs that are used throughout the invoice process. | |
object Defines the biling cycle for an invoice. |
Responses
Request samples
- Payload
{- "type": "standard",
- "code": {
- "type": "provided",
- "value": "2023-00837"
}, - "reference": "d8732571-7945-41c1-be1d-f3a71c5a36b2",
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5"
}, - "buyer": {
- "id": "acc_4w5az89g1p9dy9st7qe3rgstm7",
- "notifications": [
- {
- "type": "email",
- "to": [
- "invoices@seller.com"
]
}
]
}, - "currency": "EUR",
- "groups": [
- {
- "reference": "pieces",
- "name": "Piezas",
- "lines": [
- {
- "item": {
- "reference": "1POC082709ABC",
- "name": "Filtro aceite",
- "amount": 1581,
- "unit": "item",
- "metadata": {
- "family": "Filtros",
- "manufacturer": "Bosch"
}
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 20
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "IVA",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Filtros Bosch"
]
}, - {
- "item": {
- "reference": "1049360",
- "name": "Aceite motor",
- "amount": 1050,
- "unit": "litre",
- "metadata": {
- "family": "Aceites",
- "manufacturer": "Wolf"
}
}, - "quantity": 3.9,
- "charges": [
- {
- "type": "fixed",
- "amount": 500,
- "reference": "URGENT",
- "name": "Entrega Urgente"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "IVA",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Aceites Wolf"
]
}
]
}, - {
- "reference": "labour_cost",
- "name": "Mano de obra",
- "lines": [
- {
- "item": {
- "name": "Sustituir Aceite motor / Sustituir Filtro aceite",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.2,
- "taxes": [
- {
- "type": "percentage",
- "name": "IVA",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Comprobar filtro aire ** Limpiar si es necesario",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.1,
- "taxes": [
- {
- "type": "percentage",
- "name": "IVA",
- "percent": 21,
- "reference": "vat"
}
]
}
]
}
], - "lines": [
- {
- "item": {
- "name": "BOLSA REGALO",
- "amount": 500,
- "unit": "item"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 100,
- "reference": "VOUCHER",
- "name": "Cupón - BLACKFRIDAY"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "IVA",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Alinear dirección",
- "amount": 4000,
- "unit": "hour"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 0
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "IVA",
- "percent": 21,
- "reference": "vat"
}
]
}
], - "payment": {
- "terms": {
- "type": "due_date",
- "due_dates": [
- {
- "due_at": "2023-10-01T22:05:48.479Z"
}
]
}, - "methods": [
- {
- "type": "external_bank_transfer",
- "payment_instrument_id": "pai_4mjfmtdf13eg5bdvsky11fyqxm"
}
]
}, - "documents": [
- {
- "format": "pdf"
}
], - "external_links": [
], - "metadata": {
- "vehicle": "ford focus",
- "plate": "1111XXX"
}, - "notes": [
- "Vehículo Ford Focus",
- "Matrícula 1111XXX"
]
}
Response samples
- 201
- 409
- 422
The code has been provided as an input and the invoice can be issued during creation.
{- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "type": "standard",
- "status": "issued",
- "groups": [
- {
- "reference": "pieces",
- "lines": [
- {
- "item": {
- "reference": "1POC082709ABC",
- "name": "Filtro aceite"
}, - "base": 1265,
- "tax": 265,
- "total": 1530
}, - {
- "item": {
- "reference": "1049360",
- "name": "Aceite motor"
}, - "base": 4595,
- "tax": 965,
- "total": 5560
}
]
}, - {
- "reference": "labour_cost",
- "lines": [
- {
- "item": {
- "name": "Sustituir Aceite motor / Sustituir Filtro aceite"
}, - "base": 605,
- "tax": 127,
- "total": 732
}, - {
- "item": {
- "name": "Comprobar filtro aire ** Limpiar si es necesario"
}, - "base": 302,
- "tax": 64,
- "total": 366
}
]
}
], - "lines": [
- {
- "item": {
- "name": "BOLSA REGALO"
}, - "base": 0,
- "tax": 0,
- "total": 0
}, - {
- "item": {
- "name": "Alinear dirección"
}, - "base": 4000,
- "tax": 840,
- "total": 4840
}
], - "payment": {
- "terms": {
- "type": "due_date",
- "due_dates": [
- {
- "due_at": "2023-10-01T22:05:48.479Z",
- "amount": 13028
}
]
}
}, - "totals": {
- "tax": 2261,
- "taxes": [
- {
- "reference": "vat",
- "percentages": [
- {
- "type": "percentage",
- "percent": 21,
- "tax": 2261,
- "base": 10767
}
], - "sum": 2261
}
], - "base": 10767,
- "total": 13028
}
}
List Invoices
Authorizations:
query Parameters
sort | string Example: sort=due_at:desc,issued_at:asc,totals_total:desc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
|
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
seller_id | string (AccountId) [ 30 .. 50 ] characters Example: seller_id=acc_44678r08jtm8zbt227tzhc4nw5 Filtering. The seller unique identifier. |
buyer_id | string (AccountId) [ 30 .. 50 ] characters Example: buyer_id=acc_44678r08jtm8zbt227tzhc4nw5 Filtering. The buyer unique identifier. |
reference | string (InvoiceReference) [ 1 .. 50 ] characters Example: reference=634533f5-1050-4f30-b2a1-4aab2401a78b Filtering. Your reference for the invoice. |
code | string (InvoiceCode) Example: code=INV-2024-0001 Filtering. The invoice code. It is usually used to identify this invoice in tax declarations. |
issued_at_from | string <date-time> (IssuedAt) = 24 characters Example: issued_at_from=2023-01-01T01:01:00.000Z Filtering. Issue date and time (inclusive) of the first invoice to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: 2 years before the current date and time. Maximum: the date and time set in |
issued_at_to | string <date-time> (IssuedAt) = 24 characters Example: issued_at_to=2024-01-01T01:01:00.000Z Filtering. Issue date and time (inclusive) of the last invoice to retrieve. Using ISO 8601 standard for the combined date and time in UTC. Minimum: the date and time set in Maximum: current date and time. |
due_at_from | string <date-time> (DateTime) = 24 characters Example: due_at_from=2023-01-01T01:01:00.000Z Filtering. Due date and time (inclusive) of the first invoice to retrieve. Using ISO 8601 standard for the combined date and time in UTC. Minimum: 2 years before the current date and time. Maximum: the date and time set in |
due_at_to | string <date-time> (DateTime) = 24 characters Example: due_at_to=2024-01-01T01:01:00.000Z Filtering. Due date and time (inclusive) of the last invoice to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: the date and time set in |
status | Array of strings (InvoiceStatus) Items Enum: "draft" "cancelled" "issued" Example: status=issued&status=cancelled Filtering. Exact match of a list of invoice statuses. |
type | string (InvoiceType) Enum: "standard" "corrective" Example: type=standard Filtering. The invoice type. |
subscription_id | string (SubscriptionId) [ 30 .. 50 ] characters Example: subscription_id=sub_4mk9y6c2v46953j37qkc0vranw Filtering. The unique identifier of the subscription associated to the invoice. |
has_payment_advices | boolean Filtering. It indicates whether this invoice has payment advices linked or not. |
Responses
Response samples
- 200
{- "cursor": "Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==",
- "data": [
- {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "code": "INV-2024-0001",
- "reference": "98f445bd-1316-4d6c-9243-f6b9d9192ef8",
- "type": "standard",
- "status": "issued",
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "getpaid autos"
}, - "buyer": {
- "id": "acc_4w5az89g1p9dy9st7qe3rgstm7",
- "legal_name": "getpaid fleets"
}, - "issued_at": "2023-09-01T22:05:48.479Z",
- "due_at": "2023-10-01T22:05:48.479Z",
- "currency": "EUR",
- "documents": [
- {
- "type": "invoice",
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "INV1000.pdf",
- "format": "pdf"
}, - {
- "type": "invoice_attachment",
- "id": "doc_4ttmf4m5hc96d6f9h93h55w3xf",
- "name": "details.xlsx",
- "format": "xlsx"
}
], - "totals": {
- "tax": 2261,
- "base": 10767,
- "total": 13028
}, - "has_subsequents": false
}
]
}
Get Invoice
Authorizations:
path Parameters
invoice_id required | string (InvoiceId) [ 30 .. 50 ] characters Example: inv_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the invoice. |
Responses
Response samples
- 200
- 404
- 409
{- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "type": "standard",
- "status": "draft",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "billing_cycle": {
- "starts_at": "2023-09-01",
- "ends_at": "2023-09-01"
}, - "code": "INV-2024-0001",
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "version": "20240213150344583",
- "legal_name": "string"
}, - "buyer": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "version": "20240213150344583",
- "legal_name": "string",
- "notifications": [
- {
- "type": "string",
- "to": [
- "user@example.com"
], - "cc": [
- "user@example.com"
], - "bcc": [
- "user@example.com"
]
}
]
}, - "issued_at": "string",
- "due_at": "2023-09-01T22:05:48.479Z",
- "currency": "EUR",
- "groups": [
- {
- "reference": "string",
- "lines": [
- {
- "item": {
- "reference": "string",
- "name": "string"
}, - "tax": 0,
- "base": 0,
- "total": 0
}
]
}
], - "lines": [
- {
- "item": {
- "reference": "string",
- "name": "string"
}, - "tax": 0,
- "base": 0,
- "total": 0
}
], - "payment": {
- "terms": {
- "type": "string"
}, - "methods": [
- {
- "type": "string",
- "payment_instrument_id": "pai_1a6po0p7zqv1q2arfsyr9548q"
}
]
}, - "documents": [
- {
- "type": "invoice",
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "string",
- "format": "string"
}
], - "metadata": {
- "property1": "string",
- "property2": "string"
}, - "notes": [
- "string"
], - "totals": {
- "tax": 1000,
- "taxes": [
- {
- "reference": "string",
- "percentages": [
- {
- "type": "percentage",
- "base": 0,
- "percent": 100,
- "tax": 0
}
], - "sum": 1000
}
], - "base": 1000,
- "total": 0
}, - "subscription": {
- "id": "sub_4mk9y6c2v46953j37qkc0vranw",
- "version": "20240213150344583",
- "name": "string"
}, - "series": {
- "name": "Marketplace sales",
- "prefix": "INV-2024-",
- "suffix": "MARKETPLACE"
}, - "subsequents": [
- {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "code": "INV-2024-0001",
- "issued_at": "string",
- "reason": "Wrong taxes calculation"
}
], - "events": [
- {
- "type": "string",
- "id": "evt_227tzhc4nw544678r08jtm8zbt01",
- "occurred_at": "2023-02-10T14:16:07.6962864Z",
- "status": "draft"
}
], - "payment_advices": [
- {
- "id": "pad_4ehg1mkv3mvt3256vcn8dspb4h"
}
]
}
Update Draft Invoice
Updates an invoice. Only invoices on status draft
can be updated.
Authorizations:
path Parameters
invoice_id required | string (InvoiceId) [ 30 .. 50 ] characters Example: inv_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the invoice. |
Request Body schema: application/jsonrequired
type required | string (InvoiceType) Default: "standard" Type of invoice document subject to the requirements of the local tax regime.
|
reference | string (InvoiceReference) [ 1 .. 50 ] characters Your reference for the invoice. This is a unique identifier for the invoice provided by you. It can be used to reference the invoice in your system. We will include this value in all invoice related webhooks. |
required | object The code can be directly set or it can be generated based on a pre-defined invoices series. |
required | object (UpdateStandardSeller) The taxable entity supplying the goods or services. Note: The related account needs to have |
required | object (UpdateStandardBuyer) The legal entity receiving the goods or services. Note: The related account needs to have |
currency | string <iso-4217> (Currency) = 3 characters The processing currency code according to the ISO-4217 standard |
Array of objects List of invoice lines grouped by property representing each of the items sold to the buyer. | |
Array of objects List of invoice lines representing each of the items sold to the buyer. | |
required | object Information on when, how, and to whom the invoice should be paid. |
Array of any unique The documents associated to the invoice. It can contain both the document automatically generated from the invoice data or the attachments uploaded using the Upload Invoice Document endpoint. | |
Array of objects [ 1 .. 10 ] items unique List of links to additional information related to the invoice that are included in the invoice document. | |
object <= 5 properties Some data to provide context for the invoice. Keys with a length greater than 100 characters are not supported. This will never be displayed to end users. | |
notes | Array of strings <= 10 items [ items <= 250 characters ] Unstructured information that is relevant to the invoice, such as correction or additional legal details. |
object URLs that are used throughout the invoice process. | |
object (BillingCycle) Defines the biling cycle for an invoice. |
Responses
Request samples
- Payload
{- "type": "standard",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "code": {
- "type": "provided"
}, - "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}, - "buyer": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "notifications": [
- {
- "type": "email",
- "to": [
- "user@example.com"
], - "cc": [
- "user@example.com"
], - "bcc": [
- "user@example.com"
]
}
], - "metadata": {
- "property1": "string",
- "property2": "string"
}
}, - "currency": "EUR",
- "groups": [
- {
- "reference": "string",
- "name": "string",
- "lines": [
- {
- "item": {
- "reference": "string",
- "name": "string",
- "amount": 0,
- "unit": "metre",
- "metadata": {
- "ext-id": "id-1099320"
}
}, - "quantity": 0.1,
- "discounts": [
- {
- "type": "string",
- "reference": "string",
- "name": "string",
- "amount": 0
}
], - "charges": [
- {
- "type": "string",
- "reference": "string",
- "name": "string",
- "amount": 0
}
], - "taxes": [
- {
- "type": "percentage",
- "reference": "iva",
- "name": "IVA"
}
], - "notes": [
- "string"
]
}
]
}
], - "lines": [
- {
- "item": {
- "reference": "string",
- "name": "string",
- "amount": 0,
- "unit": "metre",
- "metadata": {
- "ext-id": "id-1099320"
}
}, - "quantity": 0.1,
- "discounts": [
- {
- "type": "string",
- "reference": "string",
- "name": "string",
- "amount": 0
}
], - "charges": [
- {
- "type": "string",
- "reference": "string",
- "name": "string",
- "amount": 0
}
], - "taxes": [
- {
- "type": "percentage",
- "reference": "iva",
- "name": "IVA"
}
], - "notes": [
- "string"
]
}
], - "payment": {
- "terms": {
- "type": "string",
- "due_dates": [
- {
- "amount": 1
}
], - "notes": [
- "string"
]
}, - "methods": [
- {
- "type": "string",
- "payment_instrument_id": "pai_1a6po0p7zqv1q2arfsyr9548q"
}
]
}, - "documents": [
- {
- "type": "invoice"
}
], - "metadata": {
- "property1": "string",
- "property2": "string"
}, - "notes": [
- "string"
], - "billing_cycle": {
- "starts_at": "2023-09-01",
- "ends_at": "2023-09-01"
}
}
Response samples
- 200
- 404
- 422
{- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "type": "standard",
- "status": "draft",
- "buyer": {
- "notifications": [
- {
- "type": "string",
- "defaults": [
- {
- "type": "string",
- "to": [
- "user@example.com"
], - "cc": [
- "user@example.com"
], - "bcc": [
- "user@example.com"
]
}
]
}
]
}, - "groups": [
- {
- "reference": "string",
- "lines": [
- {
- "item": {
- "reference": "string",
- "name": "string"
}, - "tax": 0,
- "base": 0,
- "total": 0
}
]
}
], - "lines": [
- {
- "item": {
- "reference": "string",
- "name": "string"
}, - "tax": 0,
- "base": 0,
- "total": 0
}
], - "payment": {
- "terms": {
- "type": "string"
}
}, - "totals": {
- "tax": 0,
- "taxes": [
- {
- "reference": "string",
- "percentages": [
- {
- "type": "percentage",
- "base": 0,
- "percent": 100,
- "tax": 0
}
], - "sum": 0
}
], - "base": 0,
- "total": 0
}
}
Issue Draft Invoice
It issues a draft invoice. Please note that this operation is allowed only if the related infoice is in draft
status.
Authorizations:
path Parameters
invoice_id required | string (InvoiceId) [ 30 .. 50 ] characters Example: inv_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the invoice. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
Cancel Draft Invoice
It cancels a draft invoice. Please note that this operation is allowed only if the related infoice is in draft
status.
Authorizations:
path Parameters
invoice_id required | string (InvoiceId) [ 30 .. 50 ] characters Example: inv_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the invoice. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
Upload Invoice Document
Upload an additional document to be attached to an invoice.
After uploading the document, it can be linked to the invoice using the id
of the document from the response in the Create Invoice endpoint.
The format of the document uploaded must correspond to the MIME type in the Content-Type
header. See the corresponding MIME types to each kind of document.
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: multipart/form-datarequired
file required | string <binary> The file to upload. The maximum file size is 2MB. It must include the headers:
|
Responses
Request samples
- Payload
POST /v2alpha1/invoices/documents HTTP/1.1 Host: api.getpaid.io Content-Length: 296 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="details.csv" Content-Type: text/csv
Response samples
- 201
- 409
- 422
{- "id": "doc_4wt0wrfqwz0vkatave0fkjg046"
}
Get Invoice Document
Downloads a document related to an invoice.
The document can be a file generated with the invoice data or a file uploaded by the user.
Authorizations:
path Parameters
invoice_id required | string (InvoiceId) [ 30 .. 50 ] characters Example: inv_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the invoice. |
document_id required | string (DocumentId) [ 30 .. 50 ] characters Example: doc_4wt0wrfqwz0vkatave0fkjg046 The unique identifier of the document. |
Responses
Response samples
- 404
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
Export the invoices to a file to get a quick report on the historical data. The available file will be in CSV format.
Export Invoices
Request to export to a file a list of invoices with the specified filters.
The export process is asynchronous. The response will contain the export unique identifier that can be used to check the status of the job using the Get Invoices Export Status endpoint.
When the export is completed, the report file will be available for download at the URL provided in the response using Get Invoice Report endpoint.
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
object Criteria to decide which invoices to export. | |||||||||||||||||||||
|
Responses
Request samples
- Payload
{- "filters": {
- "issued_at": {
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}, - "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5"
}, - "buyer": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5"
}, - "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "code": "INV-2024-0001",
- "due_at": {
- "from": "2023-09-01T22:05:48.479Z",
- "to": "2023-09-01T22:05:48.479Z"
}, - "statuses": [
- "draft"
], - "types": [
- "standard"
], - "subscription": {
- "id": "sub_4mk9y6c2v46953j37qkc0vranw"
}, - "has_payment_advices": true
}
}
Response samples
- 202
- 409
- 422
{- "id": "xpt_4ehg1mkv3mvt3256vcn8dspb4h",
- "status": "pending"
}
Get Invoices Export Status
Get the status of an asynchronous export job.
The export process can be initiated using the Export Invoices endpoint.
Authorizations:
path Parameters
export_id required | string (ExportId) [ 30 .. 50 ] characters Example: xpt_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the export job. |
Responses
Response samples
- 200
- 404
The export job is still in progress.
{- "id": "xpt_4ehg1mkv3mvt3256vcn8dspb4h",
- "status": "pending"
}
Get Invoices Report
Download the invoices report as a result of the export job. Check the status of the export job using the Get Invoices Export Status endpoint.
Authorizations:
path Parameters
report_id required | string (ReportId) [ 30 .. 50 ] characters Example: rpt_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the report. |
Responses
Response samples
- 200
- 404
series_prefix,code,reference,status,type,issued_at,due_at,seller_registration_number,seller_legal_name,buyer_registration_number,buyer_legal_name,total,base,tax,currency,taxes_0_type,taxes_0_reference,taxes_0_percent,taxes_0_base,taxes_0_tax,taxes_1_type,taxes_1_reference,taxes_1_percent,taxes_1_base,taxes_1_tax,taxes_2_type,taxes_2_reference,taxes_2_percent,taxes_2_base,taxes_2_tax,metadata_0_key,metadata_0_value,metadata_1_key,metadata_1_value ABC,INV_A2024000006,A2024000006,issued,standard,2023-10-06T00:00:00.000Z,2023-11-05T00:00:00.000Z,123456789A,legal name seller,987654321B,legal name buyer,4000,2000,300,EUR,percentage,other,5,1000,5,,,,,,,,,,,key_1,value 1,key_2,value 2 ABC,INV_A2024000005,A2024000005,issued,standard,2023-10-05T00:00:00.000Z,2023-11-04T00:00:00.000Z,123456789A,legal name seller,987654321B,legal name buyer,5000,3000,500,EUR,percentage,other,5,1000,5,percentage,vat,25,2000,500,percentage,vat,10,2000,20,key_1,value 1,,
Notifications to inform about invoice events that occur so you can take action within your own systems, for example, updating the invoices's state, notifying your customers or integrating with third-parties.
Invoice Draft Document Updated Webhook
The invoice_draft_document_updated
webhook is sent when the invoice document is generated for a draft invoice.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "invoice_draft_document_created" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "invoice_draft_document_created",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "INV1000.pdf",
- "format": "pdf",
}
}
}
Invoice Issued Webhook
The invoice_issued
webhook is sent when an invoice is issued: right after creation when the invoice is created with a provided code or when the code is generated if it is based on a series.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "invoice_issued" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "invoice_issued",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "code": "INV-2024-0001",
- "issued_at": "2023-02-10T14:16:07.6962864Z",
- "payment": {
- "terms": {
- "type": "string"
}
}, - "subscription": {
- "id": "sub_4mk9y6c2v46953j37qkc0vranw",
- "version": "20240213150344583",
- "name": "string"
}
}
}
Invoice Document Created Webhook
The invoice_document_created
webhook is sent when the invoice document is generated.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "invoice_document_created" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "invoice_document_created",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "INV1000.pdf",
- "format": "pdf",
}
}
}
Invoice Buyer Notification Sent Webhook
The invoice_buyer_notification_sent
webhook is sent when the invoice notification is sent to the buyer.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "invoice_buyer_notification_sent" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "invoice_buyer_notification_sent",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "notification": "email"
}
}
Invoice Match Suggested Webhook
The invoice_match_suggested
webhook is sent when a bank transaction has been suggested to match an invoice.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "invoice_match_suggested" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "invoice_match_suggested",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "reference": "634533f5-1050-4f30-b2a1-4aab2401a78b",
- "match": {
- "payment_term_id": "ptm_4tfwx4hygbkwnepj8t8md13v5z",
- "transaction_id": "trx_3775b2af2e13402d919a1f3f64b2a3f8"
}
}
}
A subscription is a recurring invoice that is automatically issued to the buyer to charge for services or products that are delivered on a regular basis.
Create Subscription
Create a subscription. All dates are to be considered in the seller's timezone.
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
type required | string The type of the subscription:
|
name required | string <= 250 characters The name of the subscription, used for descriptive purposes. |
starts_at | string <date> (SubscriptionStartsAt) = 10 characters The date on which the subscription should start. The value must be aligned with the billing cycle, it must be the first day of any future occurrence of the billing cycle. If not provided the value will be computed to be the first day of the next billing cycle. |
ends_at | string <date> (SubscriptionEndsAt) = 10 characters The date on which the subscription should end. The value must be aligned with the billing cycle, it must be the last day of any future occurrence of the billing cycle. If not provided the subscription will continue indefinitely. |
required | object The billing cycle object, it is used to configure when an invoice should be issued.
It allows to select the date on which the invoice should be issued, we garantee that the invoice will be issued on the selected date but not at any specified time.
We support two types of billing cycles:
|
required | object (CreateInvoiceDetails) The details used to issue invoices as part of the subscription. |
Responses
Request samples
- Payload
{- "type": "custom",
- "name": "Monthly SAAS subscription",
- "billing_cycle": {
- "type": "interval",
- "step": "month",
- "count": 1
}, - "invoice_details": {
- "code": {
- "type": "fixed_series",
- "series_id": "ser_4ehg1mkv3mvt3256vcn8dspb4h"
}, - "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5"
}, - "buyer": {
- "id": "acc_4w5az89g1p9dy9st7qe3rgstm7",
- "notifications": [
- {
- "type": "email",
- "to": [
- "invoices@buyer.com"
]
}
]
}, - "currency": "EUR",
- "groups": [
- {
- "reference": "pieces",
- "name": "Pieces",
- "lines": [
- {
- "item": {
- "reference": "1POC082709ABC",
- "name": "Oil filter",
- "amount": 1581,
- "unit": "item",
- "metadata": {
- "family": "Filters",
- "manufacturer": "Bosch"
}
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 20
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Bosch filters"
]
}, - {
- "item": {
- "reference": "1049360",
- "name": "Motor oil",
- "amount": 1050,
- "unit": "litre",
- "metadata": {
- "family": "Oils",
- "manufacturer": "Wolf"
}
}, - "quantity": 3.9,
- "charges": [
- {
- "type": "fixed",
- "amount": 500,
- "reference": "URGENT",
- "name": "Urgent shipping"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Wolf Oils"
]
}
]
}, - {
- "reference": "labour_cost",
- "name": "Labour costs",
- "lines": [
- {
- "item": {
- "name": "Motor oil and oil filter change",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.2,
- "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Check air filter ** Clean air filter if needed",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.1,
- "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}
]
}
], - "lines": [
- {
- "item": {
- "name": "GIFT BAG",
- "amount": 500,
- "unit": "item"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 100,
- "reference": "VOUCHER",
- "name": "Voucher - BLACKFRIDAY"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Align direction",
- "amount": 4000,
- "unit": "hour"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 0
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}
], - "payment": {
- "terms": {
- "type": "deferred",
- "due_dates": [
- {
- "days": 30
}
]
}, - "methods": [
- {
- "type": "external_bank_transfer",
- "payment_instrument_id": "pai_4mjfmtdf13eg5bdvsky11fyqxm"
}
]
}, - "documents": [
- {
- "format": "pdf"
}
], - "external_links": [
], - "metadata": {
- "vehicle": "Ford Focus",
- "plate": "1111XXX"
}, - "notes": [
- "Model Ford Focus",
- "Plate 1111XXX"
]
}
}
Response samples
- 201
- 409
- 422
{- "id": "sub_4mk9y6c2v46953j37qkc0vranw",
- "starts_at": "2023-09-01T22:05:48-08:00"
}
List Subscriptions
List the existing subscriptions.
Authorizations:
query Parameters
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
seller_id | string (AccountId) [ 30 .. 50 ] characters Example: seller_id=acc_44678r08jtm8zbt227tzhc4nw5 Filtering. The seller unique identifier. |
buyer_id | string (AccountId) [ 30 .. 50 ] characters Example: buyer_id=acc_44678r08jtm8zbt227tzhc4nw5 Filtering. The buyer unique identifier. |
name | string (SubscriptionName) <= 250 characters Filtering. The subscription name. |
Responses
Response samples
- 200
- 422
List existing subscriptions.
{- "cursor": "Y3Vyc29yIHBhZ2luYXRpb24gZXhhbXBsZQ",
- "data": [
- {
- "id": "sub_4mk9y6c2v46953j37qkc0vranw",
- "type": "custom",
- "name": "Monthly SAAS subscription",
- "starts_at": "2023-09-01",
- "ends_at": "2023-09-01",
- "billing_cycle": {
- "type": "interval",
- "expression": "0 12 1 * * *",
- "step": "month",
- "count": 1
}, - "invoice_details": {
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "ACME Corp."
}, - "buyer": {
- "id": "acc_4w5az89g1p9dy9st7qe3rgstm7",
- "legal_name": "Wildcat Pumps GmbH"
}
}
}, - {
- "id": "sub_44678r08jtm8zbt227tzhc4nw5",
- "type": "custom",
- "name": "Monthly SAAS subscription",
- "starts_at": "2023-09-01",
- "ends_at": "2023-09-01",
- "billing_cycle": {
- "type": "custom",
- "expression": "0 0 0 17 * ?",
- "day_of_month": "17",
- "month_of_year": "*"
}, - "invoice_details": {
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "ACME Corp."
}, - "buyer": {
- "id": "acc_4w5az89g1p9dy9st7qe3rgstm7",
- "legal_name": "Wildcat Pumps GmbH"
}
}
}
]
}
Update Subscription
Update a subscription. Buyer, seller and billing cycle cannot be updated. The updated subscription can be configured to be effective at a future date. If not provided, the update will take effect on the next issued invoice. The new configuration will replace the existing one. All dates are to be considered in the seller's timezone.
Authorizations:
path Parameters
subscription_id required | string (SubscriptionId) [ 30 .. 50 ] characters Example: sub_4mk9y6c2v46953j37qkc0vranw The unique identifier of the subscription. |
Request Body schema: application/jsonrequired
type required | string The type of the subscription:
|
name | string <= 250 characters The name of the subscription, used for descriptive purposes.
This value is not affected by the |
ends_at | string <date> = 10 characters The date on which the subscription should end.
The value must be aligned with the billing cycle, it must be the last day of any future occurrence of the billing cycle.
If not provided the subscription will continue indefinitely.
This value is not affected by the |
effective_at | string <date> (Date) = 10 characters Date when the new configuration will take effect. If not provided, the update will take effect on the next issued invoice.
This value is used only if |
object (UpdateInvoiceDetails) Invoice details for the subscription. If not provided, the subscription will keep the current invoice details. If provided, old the details will override the current configuration. |
Responses
Request samples
- Payload
{- "type": "custom",
- "name": "Monthly SAAS subscription",
- "effective_at": "2024-01-01",
- "invoice_details": {
- "code": {
- "type": "fixed_series",
- "series_id": "ser_4ehg1mkv3mvt3256vcn8dspb4h"
}, - "buyer": {
- "notifications": [
- {
- "type": "email",
- "to": [
- "invoices@buyer.com"
]
}
]
}, - "currency": "EUR",
- "groups": [
- {
- "reference": "pieces",
- "name": "Pieces",
- "lines": [
- {
- "item": {
- "reference": "1POC082709ABC",
- "name": "Oil filter",
- "amount": 1581,
- "unit": "item",
- "metadata": {
- "family": "Filters",
- "manufacturer": "Bosch"
}
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 20
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Bosch filters"
]
}, - {
- "item": {
- "reference": "1049360",
- "name": "Motor oil",
- "amount": 1050,
- "unit": "litre",
- "metadata": {
- "family": "Oils",
- "manufacturer": "Wolf"
}
}, - "quantity": 3.9,
- "charges": [
- {
- "type": "fixed",
- "amount": 500,
- "reference": "URGENT",
- "name": "Urgent shipping"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Wolf oils"
]
}
]
}, - {
- "reference": "labour_cost",
- "name": "Labour costs",
- "lines": [
- {
- "item": {
- "name": "Motor oil and oil filter change",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.2,
- "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Check air filter ** Clean air filter if needed",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.1,
- "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}
]
}
], - "lines": [
- {
- "item": {
- "name": "GIFT BAG",
- "amount": 500,
- "unit": "item"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 100,
- "reference": "VOUCHER",
- "name": "Voucher - BLACKFRIDAY"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Align direction",
- "amount": 4000,
- "unit": "hour"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 0
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}
], - "payment": {
- "terms": {
- "type": "deferred",
- "due_dates": [
- {
- "days": 30
}
]
}, - "methods": [
- {
- "type": "external_bank_transfer",
- "payment_instrument_id": "pai_4mjfmtdf13eg5bdvsky11fyqxm"
}
]
}, - "documents": [
- {
- "format": "pdf"
}
], - "external_links": [
], - "metadata": {
- "vehicle": "Ford Focus",
- "plate": "1111XXX"
}, - "notes": [
- "Model Ford Focus",
- "Plate 1111XXX"
]
}
}
Response samples
- 200
- 404
- 422
{- "id": "sub_4mk9y6c2v46953j37qkc0vranw",
- "effective_at": "2023-09-01T22:05:48-08:00"
}
Get Subscription
Get the subscription details.
Authorizations:
path Parameters
subscription_id required | string (SubscriptionId) [ 30 .. 50 ] characters Example: sub_4mk9y6c2v46953j37qkc0vranw The unique identifier of the subscription. |
Responses
Response samples
- 200
- 404
- 422
Get subscription details.
{- "type": "custom",
- "name": "Monthly SAAS subscription",
- "version": "20240702153523123",
- "starts_at": "2023-09-01T22:05:48-08:00",
- "ends_at": "2023-09-01T22:05:48-08:00",
- "billing_cycle": {
- "type": "interval",
- "expression": "0 0 0 1 */1 ?",
- "step": "month",
- "count": 1
}, - "invoice_details": {
- "code": {
- "type": "fixed_series",
- "series_id": "ser_4ehg1mkv3mvt3256vcn8dspb4h"
}, - "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "ACME Corp."
}, - "buyer": {
- "id": "acc_4w5az89g1p9dy9st7qe3rgstm7",
- "legal_name": "Wildcat Bump Inc.",
- "notifications": [
- {
- "type": "email",
- "to": [
- "invoices@buyer.com"
]
}
]
}, - "currency": "EUR",
- "groups": [
- {
- "reference": "pieces",
- "name": "Pieces",
- "lines": [
- {
- "item": {
- "reference": "1POC082709ABC",
- "name": "Oil filter",
- "amount": 1581,
- "unit": "item",
- "metadata": {
- "family": "Filters",
- "manufacturer": "Bosch"
}
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 20
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Bosch filters"
]
}, - {
- "item": {
- "reference": "1049360",
- "name": "Motor oil",
- "amount": 1050,
- "unit": "litre",
- "metadata": {
- "family": "Oils",
- "manufacturer": "Wolf"
}
}, - "quantity": 3.9,
- "charges": [
- {
- "type": "fixed",
- "amount": 500,
- "reference": "URGENT",
- "name": "Urgent shippint"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
], - "notes": [
- "Wolf oils"
]
}
]
}, - {
- "reference": "labour_cost",
- "name": "Labour costs",
- "lines": [
- {
- "item": {
- "name": "Motor oil and oil filter change",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.2,
- "taxes": [
- {
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Check air filter ** Clean air filter if needed",
- "amount": 3025,
- "unit": "hour"
}, - "quantity": 0.1,
- "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}
]
}
], - "lines": [
- {
- "item": {
- "name": "GIFT BAG",
- "amount": 500,
- "unit": "item"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 100,
- "reference": "VOUCHER",
- "name": "Voucher - BLACKFRIDAY"
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}, - {
- "item": {
- "name": "Align direction",
- "amount": 4000,
- "unit": "hour"
}, - "quantity": 1,
- "discounts": [
- {
- "type": "percentage",
- "percent": 0
}
], - "taxes": [
- {
- "type": "percentage",
- "name": "VAT",
- "percent": 21,
- "reference": "vat"
}
]
}
], - "payment": {
- "terms": {
- "type": "due_date",
- "due_dates": [
- {
- "due_at": 30
}
]
}, - "methods": [
- {
- "type": "external_bank_transfer",
- "payment_instrument_id": "pai_4mjfmtdf13eg5bdvsky11fyqxm"
}
]
}, - "documents": [
- {
- "format": "pdf"
}
], - "external_links": [
], - "metadata": {
- "vehicle": "Ford Focus",
- "plate": "1111XXX"
}, - "notes": [
- "Model Ford Focus",
- "Plate 1111XXX"
]
}, - "invoices": [
- {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "code": "INV_20240000001",
- "issued_at": "2023-09-01T22:05:48.479Z"
}
]
}
A bank transaction is a financial event that occurs when a transfer of funds is made from one party to another.
In the context of this API, a transaction represents a detailed record of an inbound payment, including direct debit transactions. Each transaction entry provides comprehensive information such as the booking date and time, amount, currency, counterparty details, and payment instrument information. This helps in tracking and managing receivables efficiently, ensuring transparency and accuracy in financial reporting.
Transactions are essential for maintaining accurate financial records, supporting reconciliation processes, and ensuring that all payments are accounted for correctly. They form the backbone of financial data, enabling businesses to monitor cash flow, manage accounts, and meet regulatory requirements.
List Bank Transactions
Authorizations:
query Parameters
sort | string Example: sort=booking_at:desc,amount:asc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
By default: |
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
booking_at_from | string <date-time> (DateTime) = 24 characters Example: booking_at_from=2023-01-01T01:01:00.000Z Filtering. Booking date and time (inclusive) of the first bank transaction to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: 2 years before the current date and time. Maximum: the date and time set in |
booking_at_to | string <date-time> (DateTime) = 24 characters Example: booking_at_to=2023-09-01T22:05:48.479Z Filtering. Booking date and time (inclusive) of the last bank transaction to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: the date and time set in |
description | string Example: description=INV88430 Filtering. The description of the transaction. |
counterparty_legal_name | string Example: counterparty_legal_name=Payer 1 Filtering. The legal name of the counterparty. |
counterparty_account_number | string Example: counterparty_account_number=GB33BUKB20201575887264 Filtering. The account number of the counterparty. |
seller_id | string (AccountId) [ 30 .. 50 ] characters Example: seller_id=acc_44678r08jtm8zbt227tzhc4nw5 Filtering. The seller unique identifier. |
seller_bank_account_id | string (PaymentInstrumentId) [ 30 .. 50 ] characters Example: seller_bank_account_id=pai_1a6po0p7zqv1q2arfsyr9548q Filtering. The unique identifier of the seller's payment instrument. |
Responses
Response samples
- 200
{- "cursor": "Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==",
- "data": [
- {
- "id": "trx_3775b2af2e13402d919a1f3f64",
- "booking_at": "2024-04-21T09:22:54.235Z",
- "amount": 128,
- "currency": "EUR",
- "description": "INV88430",
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "Seller 1",
- "bank_account": {
- "id": "pai_4mjfmtdf13eg5bdvsky11fyqxm",
- "account_number": {
- "type": "iban",
- "value": "GB33BUKB20201575887264"
}
}
}, - "counterparty": {
- "legal_name": "Payer 1",
- "bank_account": {
- "account_number": {
- "type": "iban",
- "value": "GB33BUKB20201575887264"
}
}
}, - "enrichment_status": "not_enriched"
}, - {
- "id": "trx_89f4b2af2e13402d919a1f3f64",
- "booking_at": "2024-05-11T10:45:33.235Z",
- "amount": 250,
- "currency": "USD",
- "description": "TRX99220",
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "Seller 2",
- "bank_account": {
- "id": "pai_48jbc6wt1txfyfm2afxb6dc5np",
- "account_number": {
- "type": "iban",
- "value": "US20WELLS20201575887264"
}
}
}, - "counterparty": {
- "legal_name": "Payer 2",
- "bank_account": {
- "account_number": {
- "type": "iban",
- "value": "US20WELLS20201575887264"
}
}
}, - "enrichment_status": "not_enriched"
}, - {
- "id": "trx_23d9a2af2e13402d919a1f3f64",
- "booking_at": "2024-06-15T12:15:47.235Z",
- "amount": 75,
- "currency": "GBP",
- "description": "TRX34567",
- "seller": {
- "id": "acc_4b5zswqg8kshx9zxdxa5g5c4wm",
- "legal_name": "Seller 3",
- "bank_account": {
- "id": "pai_4w5az89g1p9dy9st7qe3rgstm7",
- "account_number": {
- "type": "iban",
- "value": "GB29NWBK60161331926819"
}
}
}, - "counterparty": {
- "legal_name": "Payer 3",
- "bank_account": {
- "account_number": {
- "type": "iban",
- "value": "GB29NWBK60161331926819"
}
}
}, - "enrichment_status": "not_enriched"
}
]
}
Upload bank transactions files to enrich the transactions synchronized with Open Banking.
The supported file formats are:
Area | Format | format field |
Description |
---|---|---|---|
Global | ISO 20022 camt.053 | iso20022_camt053 |
Bank to customer cash management in ISO 20022 format. |
Spain | AEB43 | aeb43 |
Bank transactions file format used in Spain. |
Bank transactions imports have a status which indicates the current state of the upload process. The possible statuses are:
pending
- The import job has been initiated but the document still to be processed.validated
- The document format has been validated and it is supported.completed
- The document has been processed successfully and the transactions were processed and matched, if possible.error
- The import job failed, check the status reasons for further details.
Status | Reason Code | Cause | Next Action |
---|---|---|---|
error |
file_integrity_failed |
The file type is supported but the content does not match the expected format. | Check the uploaded file to validate the format and upload it again with the expected format for the file type. |
error |
unknown_bank_account |
The bank account of the file does not belong to any of the bank accounts configured in your getpaid account. | Check the configuration of your getpaid account to include the bank account or skip the files related to this bank account. |
error |
duplicated_file_date |
There is already a file uploaded for the same bank account, format and date. | The file for that date was already uploaded and there is no need of upload it again. |
error |
missing_open_banking_data |
There are no bank transactions synchronized via Open Banking to be enriched with the uploaded file. | Check the Open Banking configuration of your getpaid account and upload the file again. |
Upload Bank Transactions File
Upload a bank file to enrich the transactions extracted from the Open Banking connection.
After the upload the file must be imported using the Import Bank Transactions File endpoint.
See the file formats supported for the bank transactions files.
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: multipart/form-datarequired
file required | string <binary> The file to upload. The maximum file size is 2MB. It must include the headers:
|
Responses
Request samples
- Payload
POST /v2alpha1/bank_transactions/documents HTTP/1.1 Host: api.getpaid.io Content-Length: 296 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="AEB43_20240805.csv"
Response samples
- 201
- 409
- 422
{- "id": "doc_4wt0wrfqwz0vkatave0fkjg046"
}
Import Bank Transactions File
Import a bank transactions file to enrich bank transactions.
The file must be uploaded using the Upload Bank Transactions File endpoint.
Authorizations:
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Request Body schema: application/jsonrequired
required | object The uploaded document to import. |
Array of objects <= 1 items unique By default, payment instruments are not required as they are auto-detected. However, if the same IBAN is used for multiple payment instruments, they must be provided to uniquely identify the account. | |
object URLs that are used throughout the import bank transactions process. |
Responses
Request samples
- Payload
{- "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "format": "aeb43"
}, - "payment_instruments": [
- {
- "account_id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "id": "pai_1a6po0p7zqv1q2arfsyr9548q"
}
],
}
Response samples
- 202
- 409
- 422
{- "id": "bti_4ehg1mkv3mvt3256vcn8dspb4h",
- "status": "pending",
- "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "AEB43_20240802.csv",
- "uploaded_at": "2024-08-06T17:24:32.563Z"
}
}
List Bank Import Jobs
Get the status of all the bank transactions files import jobs ordered by uploaded time in descending order.
The import process is initiated using the Upload Bank Transactions File endpoint.
Authorizations:
query Parameters
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
Responses
Response samples
- 200
The list of bank transactions files import jobs.
{- "cursor": "Y3Vyc29yIHBhZ2luYXRpb24gZXhhbXBsZQ",
- "data": [
- {
- "id": "bti_48qfw22ns0pdrf8hzhff5r0vn6",
- "status": "pending",
- "document": {
- "id": "doc_48z12x496symye6pkejeme4g43",
- "name": "AEB43_20240802.csv",
- "uploaded_at": "2024-08-03T17:24:32.563Z"
}
}, - {
- "id": "bti_4dt3s8c9jpw1n07g3ydw6gwmng",
- "status": "validated",
- "document": {
- "id": "doc_4fsz2c3j6w0b2bnznae0hf2kmj",
- "name": "AEB43_20240803.csv",
- "uploaded_at": "2024-08-04T15:12:56.783Z",
- "format": "aeb43",
- "transactions_date": "2024-08-02"
}
}, - {
- "id": "xpt_4ehg1mkv3mvt3256vcn8dspb4h",
- "status": "completed",
- "document": {
- "id": "doc_422j710b4cd581cz0j5degtg45",
- "name": "AEB43_20240805.csv",
- "uploaded_at": "2024-08-06T14:42:55.035Z",
- "format": "aeb43",
- "transactions_date": "2024-08-02"
}, - "summary": {
- "matched": 95,
- "unmatched": 5,
- "total": 100
}
}, - {
- "id": "bti_4efqn5r3fkyffcawxpy34b5jxm",
- "status": "error",
- "document": {
- "id": "doc_4cqy9eax1defqeeet8t1fq40cn",
- "name": "AEB43_20240806.csv",
- "uploaded_at": "2024-08-07T13:32:15.937Z"
}, - "reason": {
- "code": "file_integrity_failed",
- "description": "The bank transactions file is not in the correct format."
}
}
]
}
Get Bank Import Status
Get the status of an asynchronous import job.
The import process is initiated using the Upload Bank Transactions File endpoint.
Authorizations:
path Parameters
import_id required | string (BankTransactionsImportId) [ 30 .. 50 ] characters Example: bti_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the bank transactions import job. |
Responses
Response samples
- 200
- 404
The import job is still being validated.
{- "id": "bti_48qfw22ns0pdrf8hzhff5r0vn6",
- "status": "pending",
- "document": {
- "id": "doc_48z12x496symye6pkejeme4g43",
- "name": "AEB43_20240805.csv",
- "uploaded_at": "2024-08-06T17:24:32.563Z"
}
}
Bank Transactions Import Completed Webhook
The bank_transactions_import_completed
webhook is triggered when a bank transaction import is completed.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "bank_transactions_import_completed" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "bank_transactions_import_completed",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "bti_4ehg1mkv3mvt3256vcn8dspb4h",
- "summary": {
- "matched": 95,
- "unmatched": 5,
- "total": 100
}, - "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "AEB43_20240802.csv",
- "uploaded_at": "2024-08-06T17:24:32.563Z",
- "format": "aeb43",
- "transactions_date": "2024-08-02"
}
}
}
Bank Transactions Import Error Webhook
The bank_transactions_import_error
webhook is triggered when a bank transaction import has failed.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "bank_transactions_import_error" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "bank_transactions_import_error",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "bti_4ehg1mkv3mvt3256vcn8dspb4h",
- "reason": {
- "code": "string",
- "description": "string"
}, - "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "AEB43_20240802.csv",
- "uploaded_at": "2024-08-06T17:24:32.563Z",
- "format": "aeb43",
- "transactions_date": "2024-08-02"
}
}
}
Bank Transactions Import Validated Webhook
The bank_transactions_import_validated
webhook is triggered when a bank transaction import is validated.
header Parameters
Getpaid-Trace-Id | string Example: 96ce50247f87f540bb2d86771b3728b8 The trace identifier for the webhook. It is a good idea to log this and provide it with any support requests. |
Request Body schema: application/json
id required | string [ 30 .. 50 ] characters The unique identifier of the event. |
type required | string The type of event. Value: "bank_transactions_import_validated" |
version required | string The version of the event type. Value: "v2" |
occurred_at required | string <date-time> (DateTime) = 24 characters The UTC date and time at which the event occurred. |
required | object The event data specific to each event type and version. |
Responses
Request samples
- Payload
{- "id": "evt_4r8t310nhp2mferdc1waa07s5d",
- "type": "bank_transactions_import_validated",
- "version": "v2",
- "occurred_at": "2023-09-01T22:05:48.479Z",
- "data": {
- "id": "bti_4ehg1mkv3mvt3256vcn8dspb4h",
- "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "AEB43_20240802.csv",
- "uploaded_at": "2024-08-06T17:24:32.563Z",
- "format": "aeb43",
- "transactions_date": "2024-08-02"
}
}
}
Get Payment Advice
Authorizations:
path Parameters
payment_advice_id required | string (PaymentAdviceId) [ 30 .. 50 ] characters Example: pad_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the payment advice. |
Responses
Response samples
- 200
- 404
{- "id": "pad_4ehg1mkv3mvt3256vcn8dspb4h",
- "seller": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "name": "Getpaid."
}, - "total_amount": 1000,
- "currency": "EUR",
- "payment": {
- "occurred_at": "2023-09-01",
- "reference": "PA-123456"
}, - "invoices": [
- {
- "status": "not_found",
- "payment_advice_data": {
- "code": "INV-12345",
- "amount": 1000,
- "currency": "EUR",
- "issued_at": "2023-09-01"
}
}
], - "source": {
- "id": "emc_4ehg1mkv3mvt3256vcn8dspb4h",
- "type": "email_conversation",
- "email": {
- "id": "eml_4ehg1mkv3mvt3256vcn8dspb4h",
- "from": "finance@garage.es",
- "to": "finance@customer.es",
- "subject": "Payment advice Notice",
- "received_at": "2023-09-01",
- "document": {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "format": "eml"
}, - "attachments": [
- {
- "id": "doc_4wt0wrfqwz0vkatave0fkjg046",
- "name": "payment_advice.pdf",
- "format": "pdf"
}
]
}
}
}
Get Payment Advice Document
Retrieves and downloads an attached document associated with a specific payment advice.
Authorizations:
path Parameters
payment_advice_id required | string (PaymentAdviceId) [ 30 .. 50 ] characters Example: pad_4ehg1mkv3mvt3256vcn8dspb4h The unique identifier of the payment advice. |
document_id required | string (DocumentId) [ 30 .. 50 ] characters Example: doc_4wt0wrfqwz0vkatave0fkjg046 The unique identifier of the document. |
Responses
Response samples
- 404
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
List Payment Terms
Authorizations:
query Parameters
sort | string Example: sort=due_at:desc,paid_amount:asc Sorting. Comma-separated list indicating the sorting order for results. The format is field_name:sort_mode where
By default: |
first | integer [ 1 .. 100 ] Default: 10 Pagination. The number of elements that will be retrieved. |
after | string <= 250 characters Pagination. The |
id | string (PaymentTermId) [ 30 .. 50 ] characters Example: id=ptm_4tfwx4hygbkwnepj8t8md13v5z The unique identifier of the payment term. |
status | string (PaymentTermStatus) Enum: "unmatched" "suggested" "confirmed" Example: status=unmatched Filtering. The status of the payment term. |
buyer_id | string (AccountId) [ 30 .. 50 ] characters Example: buyer_id=acc_44678r08jtm8zbt227tzhc4nw5 Filtering. The buyer account receving the invoice. |
seller_id | string (AccountId) [ 30 .. 50 ] characters Example: seller_id=acc_4tfwx4hygbkwnepj8t8md13v5z Filtering. The seller account issuing the invoice. |
invoice_code | string (InvoiceCode) Example: invoice_code=INV-2024-0001 Filtering. The code of the invoice. |
due_at_from | string <date-time> (DateTime) = 24 characters Example: due_at_from=2023-01-01T01:01:00.000Z Filtering. Due date and time (inclusive) of the first payment term to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: 2 years before the current date and time. Maximum: the date and time set in |
due_at_to | string <date-time> (DateTime) = 24 characters Example: due_at_to=2023-09-01T22:05:48.479Z Filtering. Due date and time (inclusive) of the last payment term to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: the date and time set in |
transaction_booking_at_from | string <date-time> (DateTime) = 24 characters Example: transaction_booking_at_from=2023-01-01T01:01:00.000Z Filtering. Transaction date and time (inclusive) of the first payment term to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: 2 years before the current date and time. Maximum: the date and time set in |
transaction_booking_at_to | string <date-time> (DateTime) = 24 characters Example: transaction_booking_at_to=2023-09-01T22:05:48.479Z Filtering. Transaction date and time (inclusive) of the last payment term to get. Using ISO 8601 standard for the combined date and time in UTC. Minimum: the date and time set in |
transaction_description | string Example: transaction_description=INV88430 Filtering. The description of the transaction. |
Responses
Response samples
- 200
{- "cursor": "Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==",
- "data": [
- {
- "id": "ptm_4tfwx4hygbkwnepj8t8md13v5z",
- "status": "unmatched",
- "invoice": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "type": "standard",
- "code": "INV-2024-0001",
- "seller": {
- "id": "acc_47e65jz5b52mqfgk586mtf674m",
- "legal_name": "Acme Corporation"
}, - "buyer": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "Wildcat Pumps GmbH"
}
}, - "number": 1,
- "due_at": "2023-09-01T22:05:48.479Z",
- "amount": 1000,
- "currency": "EUR",
- "transactions": {
- "suggested": [
- {
- "id": "trx_3775b2af2e13402d919a1f3f64b2a3f8",
- "amount": 1000,
- "currency": "EUR",
- "booking_at": "2023-09-01T22:05:48.479Z",
- "description": "Payment for July invoice"
}
], - "matched": [
- {
- "id": "trx_3775b2af2e13402d919a1f3f64b2a3f8",
- "amount": 1000,
- "currency": "EUR",
- "booking_at": "2023-09-01T22:05:48.479Z",
- "description": "Payment for July invoice"
}
]
}
}
]
}
Get Payment Term
Authorizations:
path Parameters
payment_term_id required | string (PaymentTermId) [ 30 .. 50 ] characters Example: ptm_4tfwx4hygbkwnepj8t8md13v5z The unique identifier of the payment term. |
Responses
Response samples
- 200
- 404
- 422
{- "id": "ptm_4tfwx4hygbkwnepj8t8md13v5z",
- "status": "unmatched",
- "invoice": {
- "id": "inv_4ehg1mkv3mvt3256vcn8dspb4h",
- "type": "standard",
- "code": "INV-2024-0001",
- "seller": {
- "id": "acc_47e65jz5b52mqfgk586mtf674m",
- "legal_name": "Acme Corporation"
}, - "buyer": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "Wildcat Pumps GmbH"
}, - "issued_at": "2023-09-01T22:05:48.479Z",
- "payment_methods": [
- {
- "type": "string",
- "payment_instrument_id": "pai_1a6po0p7zqv1q2arfsyr9548q"
}
]
}, - "number": 1,
- "due_at": "2023-09-01T22:05:48.479Z",
- "amount": 1000,
- "currency": "EUR",
- "transactions": {
- "suggested": [
- {
- "id": "trx_3775b2af2e13402d919a1f3f64b2a3f8",
- "amount": 1000,
- "currency": "EUR",
- "booking_at": "2023-09-01T22:05:48.479Z",
- "description": "Payment for July invoice",
- "payment_method": {
- "type": "external_bank_transfer"
}, - "counterparty": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "Wildcat Pumps GmbH",
- "bank_account": {
- "id": "pai_1a6po0p7zqv1q2arfsyr9548q",
- "account_number": {
- "type": "iban",
- "value": "DE75512108001245126199"
}
}
}
}
], - "matched": [
- {
- "id": "trx_3775b2af2e13402d919a1f3f64b2a3f8",
- "amount": 1000,
- "currency": "EUR",
- "booking_at": "2023-09-01T22:05:48.479Z",
- "description": "Payment for July invoice",
- "payment_method": {
- "type": "external_bank_transfer"
}, - "counterparty": {
- "id": "acc_44678r08jtm8zbt227tzhc4nw5",
- "legal_name": "Wildcat Pumps GmbH",
- "bank_account": {
- "id": "pai_1a6po0p7zqv1q2arfsyr9548q",
- "account_number": {
- "type": "iban",
- "value": "DE75512108001245126199"
}
}
}
}
]
}, - "events": [
- {
- "type": "created",
- "id": "evt_227tzhc4nw544678r08jtm8zbt01",
- "occurred_at": "2023-02-10T14:16:07.6962864Z"
}
]
}
Confirm Payment Term Match
Authorizations:
path Parameters
payment_term_id required | string (PaymentTermId) [ 30 .. 50 ] characters Example: ptm_4tfwx4hygbkwnepj8t8md13v5z The unique identifier of the payment term. |
transaction_id required | string (TransactionId) [ 30 .. 50 ] characters Example: trx_3775b2af2e13402d919a1f3f64b2a3f8 The unique identifier of a transaction. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}
Reject Payment Term Match
Authorizations:
path Parameters
payment_term_id required | string (PaymentTermId) [ 30 .. 50 ] characters Example: ptm_4tfwx4hygbkwnepj8t8md13v5z The unique identifier of the payment term. |
transaction_id required | string (TransactionId) [ 30 .. 50 ] characters Example: trx_3775b2af2e13402d919a1f3f64b2a3f8 The unique identifier of a transaction. |
header Parameters
Getpaid-Idempotency-Key | string [ 10 .. 100 ] characters ^[a-zA-Z0-9_-]{10,100}$ Example: 5c255194-30ec-11ed-a261-0242ac120002 An idempotency key to allow safe retrying without the operation being performed multiple times. The value should be unique for each operation, e.g., a UUID, with the same key being sent on a retry of the same request. |
Responses
Response samples
- 404
- 409
- 422
{- "title": "Not Found",
- "status": 404,
- "detail": "The request body was invalid"
}