diff --git a/src/WireMock.Net.OpenApiParser/Extensions/OpenApiSchemaExtensions.cs b/src/WireMock.Net.OpenApiParser/Extensions/OpenApiSchemaExtensions.cs
index e44b0afc..efd4bfcd 100644
--- a/src/WireMock.Net.OpenApiParser/Extensions/OpenApiSchemaExtensions.cs
+++ b/src/WireMock.Net.OpenApiParser/Extensions/OpenApiSchemaExtensions.cs
@@ -1,5 +1,6 @@
// Copyright © WireMock.Net
+using System.Linq;
using Microsoft.OpenApi.Any;
using Microsoft.OpenApi.Interfaces;
using Microsoft.OpenApi.Models;
@@ -16,7 +17,7 @@ internal static class OpenApiSchemaExtensions
{
value = false;
- if (schema.Extensions.TryGetValue("x-nullable", out IOpenApiExtension e) && e is OpenApiBoolean openApiBoolean)
+ if (schema.Extensions.TryGetValue("x-nullable", out var e) && e is OpenApiBoolean openApiBoolean)
{
value = openApiBoolean.Value;
return true;
@@ -27,32 +28,30 @@ internal static class OpenApiSchemaExtensions
public static SchemaType GetSchemaType(this OpenApiSchema? schema)
{
- switch (schema?.Type)
+ if (schema == null)
{
- case "object":
- return SchemaType.Object;
-
- case "array":
- return SchemaType.Array;
-
- case "integer":
- return SchemaType.Integer;
-
- case "number":
- return SchemaType.Number;
-
- case "boolean":
- return SchemaType.Boolean;
-
- case "string":
- return SchemaType.String;
-
- case "file":
- return SchemaType.File;
-
- default:
- return SchemaType.Unknown;
+ return SchemaType.Unknown;
}
+
+ if (schema.Type == null)
+ {
+ if (schema.AllOf.Any() || schema.AnyOf.Any())
+ {
+ return SchemaType.Object;
+ }
+ }
+
+ return schema.Type switch
+ {
+ "object" => SchemaType.Object,
+ "array" => SchemaType.Array,
+ "integer" => SchemaType.Integer,
+ "number" => SchemaType.Number,
+ "boolean" => SchemaType.Boolean,
+ "string" => SchemaType.String,
+ "file" => SchemaType.File,
+ _ => SchemaType.Unknown
+ };
}
public static SchemaFormat GetSchemaFormat(this OpenApiSchema? schema)
diff --git a/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs b/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs
index a22f6125..a4167db7 100644
--- a/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs
+++ b/src/WireMock.Net.OpenApiParser/Mappers/OpenApiPathsMapper.cs
@@ -193,7 +193,8 @@ internal class OpenApiPathsMapper
}
else
{
- jArray.Add(MapSchemaToObject(schema.Items, name));
+ var arrayItem = MapSchemaToObject(schema.Items, name: null); // Set name to null to force JObject instead of JProperty
+ jArray.Add(arrayItem);
}
}
@@ -219,12 +220,9 @@ internal class OpenApiPathsMapper
if (schema.AllOf.Count > 0)
{
- foreach (var property in schema.AllOf)
+ foreach (var group in schema.AllOf.SelectMany(p => p.Properties).GroupBy(x => x.Key))
{
- foreach (var item in property.Properties)
- {
- propertyAsJObject.Add(MapPropertyAsJObject(item.Value, item.Key));
- }
+ propertyAsJObject.Add(MapPropertyAsJObject(group.First().Value, group.Key));
}
}
diff --git a/src/WireMock.Net.OpenApiParser/Settings/WireMockOpenApiParserSettings.cs b/src/WireMock.Net.OpenApiParser/Settings/WireMockOpenApiParserSettings.cs
index c5cae99e..ea3cc600 100644
--- a/src/WireMock.Net.OpenApiParser/Settings/WireMockOpenApiParserSettings.cs
+++ b/src/WireMock.Net.OpenApiParser/Settings/WireMockOpenApiParserSettings.cs
@@ -39,27 +39,35 @@ public class WireMockOpenApiParserSettings
public IWireMockOpenApiParserExampleValues? ExampleValues { get; set; }
///
- /// Is a Header match case insensitive? (default is true).
+ /// Is a Header match case-insensitive?
+ ///
+ /// Default is true.
///
public bool HeaderPatternIgnoreCase { get; set; } = true;
///
- /// Is a Query Parameter match case insensitive? (default is true).
+ /// Is a Query Parameter match case-insensitive?
+ ///
+ /// Default is true.
///
public bool QueryParameterPatternIgnoreCase { get; set; } = true;
///
- /// Is a Request Body match case insensitive? (default is true).
+ /// Is a Request Body match case-insensitive?
+ ///
+ /// Default is true.
///
public bool RequestBodyIgnoreCase { get; set; } = true;
///
- /// Is a ExampleValue match case insensitive? (default is true).
+ /// Is a ExampleValue match case-insensitive?
+ ///
+ /// Default is true.
///
public bool IgnoreCaseExampleValues { get; set; } = true;
///
- /// Are examples generated dynamically? (default is false).
+ /// Are examples generated dynamically?
///
- public bool DynamicExamples { get; set; } = false;
+ public bool DynamicExamples { get; set; }
}
\ No newline at end of file
diff --git a/test/WireMock.Net.Tests/OpenApiParser/WireMockOpenApiParserTests.FromText_ShouldReturnMappings.verified.txt b/test/WireMock.Net.Tests/OpenApiParser/WireMockOpenApiParserTests.FromText_ShouldReturnMappings.verified.txt
new file mode 100644
index 00000000..6733a459
--- /dev/null
+++ b/test/WireMock.Net.Tests/OpenApiParser/WireMockOpenApiParserTests.FromText_ShouldReturnMappings.verified.txt
@@ -0,0 +1,14495 @@
+[
+ {
+ Guid: Guid_1,
+ Request: {
+ Path: /v1/authorizations,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: date,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2024-06-19,
+ IgnoreCase: true
+ }
+ ]
+ },
+ {
+ Name: batchId,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 42,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ authorizationId: [],
+ authorizationResponse: [],
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ preauthorizationRequestAmount: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ },
+ {
+ authorizationId: [],
+ authorizationResponse: [],
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ preauthorizationRequestAmount: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ },
+ {
+ authorizationId: [],
+ authorizationResponse: [],
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ preauthorizationRequestAmount: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_2,
+ Request: {
+ Path: /v1/authorizations/12345,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ authorizationId: [],
+ authorizationResponse: [],
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ preauthorizationRequestAmount: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_3,
+ Request: {
+ Path: /v1/bank-accounts/verify,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "processingTerminalId": "example-string",
+ "bankAccount": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ processingTerminalId: [],
+ verified: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_4,
+ Request: {
+ Path: /v1/bank-transfer-payments,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "processingTerminalId": "example-string",
+ "order": {
+ "orderId": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00",
+ "description": "example-string",
+ "amount": 42,
+ "currency": "AED",
+ "breakdown": {
+ "subtotal": 42,
+ "tip": {
+ "type": "percentage",
+ "mode": "prompted",
+ "amount": 42,
+ "percentage": 2.2
+ },
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ }
+ },
+ "customer": {
+ "notificationLanguage": "en",
+ "contactMethods": [
+ null,
+ null,
+ null
+ ]
+ },
+ "credentialOnFile": {
+ "externalVault": true,
+ "tokenize": true,
+ "secureTokenId": "example-string",
+ "mitAgreement": "unscheduled"
+ },
+ "paymentMethod": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_5,
+ Request: {
+ Path: /v1/bank-transfer-payments,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: processingTerminalId,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_6,
+ Request: {
+ Path: /v1/bank-transfer-payments/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_7,
+ Request: {
+ Path: /v1/bank-transfer-payments/example-string/refund,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "amount": 42,
+ "description": "example-string"
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_8,
+ Request: {
+ Path: /v1/bank-transfer-payments/example-string/represent,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_9,
+ Request: {
+ Path: /v1/bank-transfer-payments/example-string/reverse,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ representment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ returns: [
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ },
+ {
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ represented: [],
+ returnCode: [],
+ returnReason: []
+ }
+ ],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_10,
+ Request: {
+ Path: /v1/bank-transfer-refunds,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "processingTerminalId": "example-string",
+ "order": {
+ "orderId": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00",
+ "description": "example-string",
+ "amount": 42,
+ "currency": "AED"
+ },
+ "refundMethod": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_11,
+ Request: {
+ Path: /v1/bank-transfer-refunds,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: processingTerminalId,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_12,
+ Request: {
+ Path: /v1/bank-transfer-refunds/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_13,
+ Request: {
+ Path: /v1/bank-transfer-refunds/example-string/reverse,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ notificationLanguage: []
+ },
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ transactionResult: {
+ authorizedAmount: [],
+ currency: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_14,
+ Request: {
+ Path: /v1/batches,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: date,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2024-06-19,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ batchId: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ heldAmount: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ returnAmount: [],
+ saleAmount: [],
+ transactionCount: []
+ },
+ {
+ batchId: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ heldAmount: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ returnAmount: [],
+ saleAmount: [],
+ transactionCount: []
+ },
+ {
+ batchId: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ heldAmount: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ returnAmount: [],
+ saleAmount: [],
+ transactionCount: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_15,
+ Request: {
+ Path: /v1/batches/42,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ batchId: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ heldAmount: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ returnAmount: [],
+ saleAmount: [],
+ transactionCount: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_16,
+ Request: {
+ Path: /v1/cards/balance,
+ Methods: [
+ POST
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "processingTerminalId": "example-string",
+ "operator": "example-string",
+ "currency": "AED",
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "card": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ operator: [],
+ processingTerminalId: [],
+ responseCode: [],
+ responseMessage: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_17,
+ Request: {
+ Path: /v1/cards/bin-lookup,
+ Methods: [
+ POST
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "processingTerminalId": "example-string",
+ "amount": 42,
+ "currency": "AED",
+ "card": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ cardNumber: [],
+ country: [],
+ currency: [],
+ debit: [],
+ surcharging: {
+ allowed: [],
+ amount: [],
+ disclosure: [],
+ percentage: []
+ },
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_18,
+ Request: {
+ Path: /v1/cards/verify,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "processingTerminalId": "example-string",
+ "operator": "example-string",
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "card": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ dateTime: [],
+ operator: [],
+ processingTerminalId: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ verified: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_19,
+ Request: {
+ Path: /v1/contacts/42,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ contactId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_20,
+ Request: {
+ Path: /v1/contacts/42,
+ Methods: [
+ PUT
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_21,
+ Request: {
+ Path: /v1/contacts/42,
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_22,
+ Request: {
+ Path: /v1/devices/example-string/payment-instructions,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "operator": "example-string",
+ "processingTerminalId": "example-string",
+ "order": {
+ "orderId": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00",
+ "description": "example-string",
+ "amount": 42,
+ "currency": "AED",
+ "breakdown": {
+ "subtotal": 42,
+ "cashbackAmount": 42,
+ "tip": {
+ "type": "percentage",
+ "mode": "prompted",
+ "amount": 42,
+ "percentage": 2.2
+ },
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ],
+ "surcharge": {
+ "bypass": true,
+ "amount": 42,
+ "percentage": 2.2
+ },
+ "dualPricing": {
+ "offered": true,
+ "choiceRate": {
+ "applied": true,
+ "rate": 2.2,
+ "amount": 42
+ },
+ "alternativeTender": "card"
+ }
+ }
+ },
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "ipAddress": {
+ "type": "ipv4",
+ "value": "example-string"
+ },
+ "credentialOnFile": {
+ "externalVault": true,
+ "tokenize": true,
+ "secureTokenId": "example-string",
+ "mitAgreement": "unscheduled"
+ },
+ "customizationOptions": {
+ "ebtDetails": {
+ "benefitCategory": "cash",
+ "withdrawal": true
+ },
+ "entryMethod": "deviceRead"
+ },
+ "autoCapture": true,
+ "processAsSale": true
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 202,
+ BodyAsJson: {
+ errorMessage: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentInstructionId: [],
+ status: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_23,
+ Request: {
+ Path: /v1/devices/example-string/refund-instructions,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "operator": "example-string",
+ "processingTerminalId": "example-string",
+ "order": {
+ "orderId": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00",
+ "description": "example-string",
+ "amount": 42,
+ "currency": "AED"
+ },
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "ipAddress": {
+ "type": "ipv4",
+ "value": "example-string"
+ },
+ "customizationOptions": {
+ "ebtDetails": {
+ "benefitCategory": "cash",
+ "withdrawal": true
+ },
+ "entryMethod": "deviceRead"
+ }
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 202,
+ BodyAsJson: {
+ errorMessage: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundInstructionId: [],
+ status: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_24,
+ Request: {
+ Path: /v1/disputes,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: date,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2021-09-05,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ authorizationCode: [],
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ currentStatus: {
+ disputeStatusId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: [],
+ statusDate: []
+ },
+ description: [],
+ disputeAmount: [],
+ disputeId: [],
+ disputeType: [],
+ feeAmount: [],
+ firstDispute: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ receivedDate: [],
+ referenceNumber: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ },
+ {
+ authorizationCode: [],
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ currentStatus: {
+ disputeStatusId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: [],
+ statusDate: []
+ },
+ description: [],
+ disputeAmount: [],
+ disputeId: [],
+ disputeType: [],
+ feeAmount: [],
+ firstDispute: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ receivedDate: [],
+ referenceNumber: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ },
+ {
+ authorizationCode: [],
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ createdDate: [],
+ currency: [],
+ currentStatus: {
+ disputeStatusId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: [],
+ statusDate: []
+ },
+ description: [],
+ disputeAmount: [],
+ disputeId: [],
+ disputeType: [],
+ feeAmount: [],
+ firstDispute: [],
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ receivedDate: [],
+ referenceNumber: [],
+ transaction: {
+ amount: [],
+ date: [],
+ entryMethod: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ transactionId: [],
+ type: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_25,
+ Request: {
+ Path: /v1/disputes/12345/statuses,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: [
+ {
+ disputeStatusId: [],
+ status: [],
+ statusDate: []
+ },
+ {
+ disputeStatusId: [],
+ status: [],
+ statusDate: []
+ },
+ {
+ disputeStatusId: [],
+ status: [],
+ statusDate: []
+ }
+ ],
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_26,
+ Request: {
+ Path: /v1/funding-accounts,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_27,
+ Request: {
+ Path: /v1/funding-accounts/42,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_28,
+ Request: {
+ Path: /v1/funding-accounts/42,
+ Methods: [
+ PUT
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_29,
+ Request: {
+ Path: /v1/funding-accounts/42,
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_30,
+ Request: {
+ Path: /v1/funding-activity,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: dateFrom,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2021-09-01,
+ IgnoreCase: true
+ }
+ ]
+ },
+ {
+ Name: dateTo,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2021-09-30,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ amount: [],
+ currency: [],
+ date: [],
+ description: [],
+ id: [],
+ merchant: [],
+ recipient: [],
+ type: []
+ },
+ {
+ amount: [],
+ currency: [],
+ date: [],
+ description: [],
+ id: [],
+ merchant: [],
+ recipient: [],
+ type: []
+ },
+ {
+ amount: [],
+ currency: [],
+ date: [],
+ description: [],
+ id: [],
+ merchant: [],
+ recipient: [],
+ type: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_31,
+ Request: {
+ Path: /v1/funding-balance,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ available: [],
+ currency: [],
+ funds: [],
+ merchantId: [],
+ pending: []
+ },
+ {
+ available: [],
+ currency: [],
+ funds: [],
+ merchantId: [],
+ pending: []
+ },
+ {
+ available: [],
+ currency: [],
+ funds: [],
+ merchantId: [],
+ pending: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_32,
+ Request: {
+ Path: /v1/funding-instructions,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ createdDate: [],
+ instructionId: [],
+ lastModifiedDate: [],
+ merchants: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ }
+ ],
+ status: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_33,
+ Request: {
+ Path: /v1/funding-instructions,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: dateFrom,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2021-09-01,
+ IgnoreCase: true
+ }
+ ]
+ },
+ {
+ Name: dateTo,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2021-09-30,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ createdDate: [],
+ instructionId: [],
+ lastModifiedDate: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchants: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ }
+ ],
+ status: []
+ },
+ {
+ createdDate: [],
+ instructionId: [],
+ lastModifiedDate: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchants: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ }
+ ],
+ status: []
+ },
+ {
+ createdDate: [],
+ instructionId: [],
+ lastModifiedDate: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchants: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ }
+ ],
+ status: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_34,
+ Request: {
+ Path: /v1/funding-instructions/{instructionId},
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ createdDate: [],
+ instructionId: [],
+ lastModifiedDate: [],
+ merchants: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: [],
+ recipients: [
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ },
+ {
+ amount: {
+ currency: [],
+ value: []
+ },
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentMethod: [],
+ status: []
+ }
+ ]
+ }
+ ],
+ status: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_35,
+ Request: {
+ Path: /v1/funding-instructions/{instructionId},
+ Methods: [
+ PUT
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_36,
+ Request: {
+ Path: /v1/funding-instructions/{instructionId},
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_37,
+ Request: {
+ Path: /v1/funding-recipients,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ charityId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ createdDate: [],
+ doingBuinessAs: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ lastModifiedDate: [],
+ owners: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ recipientId: [],
+ recipientType: [],
+ status: [],
+ taxId: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_38,
+ Request: {
+ Path: /v1/funding-recipients,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ charityId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ createdDate: [],
+ doingBuinessAs: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ lastModifiedDate: [],
+ owners: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ recipientId: [],
+ recipientType: [],
+ status: [],
+ taxId: []
+ },
+ {
+ charityId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ createdDate: [],
+ doingBuinessAs: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ lastModifiedDate: [],
+ owners: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ recipientId: [],
+ recipientType: [],
+ status: [],
+ taxId: []
+ },
+ {
+ charityId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ createdDate: [],
+ doingBuinessAs: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ lastModifiedDate: [],
+ owners: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ recipientId: [],
+ recipientType: [],
+ status: [],
+ taxId: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_39,
+ Request: {
+ Path: /v1/funding-recipients/42,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ charityId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ createdDate: [],
+ doingBuinessAs: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ lastModifiedDate: [],
+ owners: [
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ recipientId: [],
+ recipientType: [],
+ status: [],
+ taxId: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_40,
+ Request: {
+ Path: /v1/funding-recipients/42,
+ Methods: [
+ PUT
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_41,
+ Request: {
+ Path: /v1/funding-recipients/42,
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_42,
+ Request: {
+ Path: /v1/funding-recipients/42/funding-accounts,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: [
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ }
+ ],
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_43,
+ Request: {
+ Path: /v1/funding-recipients/42/funding-accounts,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_44,
+ Request: {
+ Path: /v1/funding-recipients/42/owners,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: [
+ {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ },
+ {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ },
+ {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ }
+ ],
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_45,
+ Request: {
+ Path: /v1/funding-recipients/42/owners,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_46,
+ Request: {
+ Path: /v1/fx-rates,
+ Methods: [
+ POST
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "channel": "pos",
+ "processingTerminalId": "example-string",
+ "operator": "example-string",
+ "baseAmount": 42,
+ "baseCurrency": "AED",
+ "paymentMethod": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ baseAmount: [],
+ baseCurrency: [],
+ cardInfo: {
+ cardNumber: [],
+ country: [],
+ currency: [],
+ debit: [],
+ surcharging: {
+ allowed: [],
+ amount: [],
+ disclosure: [],
+ percentage: []
+ },
+ type: []
+ },
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ inquiryResult: {
+ causeOfRejection: [],
+ dccOffered: []
+ },
+ operator: [],
+ processingTerminalId: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_47,
+ Request: {
+ Path: /v1/merchant-platforms,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ business: {
+ addresses: [
+ [],
+ [],
+ []
+ ],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ countryOfOperation: [],
+ name: [],
+ organizationType: [],
+ taxId: []
+ },
+ createdDate: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchantPlatformId: [],
+ processingAccounts: [
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_48,
+ Request: {
+ Path: /v1/merchant-platforms,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ business: {
+ addresses: [
+ [],
+ [],
+ []
+ ],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ countryOfOperation: [],
+ name: [],
+ organizationType: [],
+ taxId: []
+ },
+ createdDate: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchantPlatformId: [],
+ processingAccounts: [
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ }
+ ]
+ },
+ {
+ business: {
+ addresses: [
+ [],
+ [],
+ []
+ ],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ countryOfOperation: [],
+ name: [],
+ organizationType: [],
+ taxId: []
+ },
+ createdDate: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchantPlatformId: [],
+ processingAccounts: [
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ }
+ ]
+ },
+ {
+ business: {
+ addresses: [
+ [],
+ [],
+ []
+ ],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ countryOfOperation: [],
+ name: [],
+ organizationType: [],
+ taxId: []
+ },
+ createdDate: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchantPlatformId: [],
+ processingAccounts: [
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ }
+ ]
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_49,
+ Request: {
+ Path: /v1/merchant-platforms/12345,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ business: {
+ addresses: [
+ [],
+ [],
+ []
+ ],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ countryOfOperation: [],
+ name: [],
+ organizationType: [],
+ taxId: []
+ },
+ createdDate: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchantPlatformId: [],
+ processingAccounts: [
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ },
+ {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ processingAccountId: [],
+ status: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_50,
+ Request: {
+ Path: /v1/merchant-platforms/12345/processing-accounts,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ businessStartDate: [],
+ businessType: [],
+ categoryCode: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ contacts: [
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ }
+ ],
+ createdDate: [],
+ doingBusinessAs: [],
+ funding: {
+ acceleratedFundingFee: [],
+ dailyDiscount: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ fundingSchedule: [],
+ status: []
+ },
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchandiseOrServiceSold: [],
+ owners: [
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ pricing: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ processing: {
+ ach: {
+ estimatedMonthlyTransactions: [],
+ limits: {
+ dailyDeposit: [],
+ monthlyDeposit: [],
+ singleTransaction: []
+ },
+ naics: [],
+ previouslyTerminatedForAch: [],
+ refunds: {
+ refundPolicyUrl: [],
+ writtenRefundPolicy: []
+ },
+ transactionTypes: [
+ [],
+ [],
+ []
+ ],
+ transactionTypesOther: []
+ },
+ cardAcceptance: {
+ cardsAccepted: [
+ [],
+ [],
+ []
+ ],
+ debitOnly: [],
+ specialityCards: {
+ americanExpressDirect: {
+ enabled: [],
+ merchantNumber: []
+ },
+ electronicBenefitsTransfer: {
+ enabled: [],
+ fnsNumber: []
+ },
+ other: {
+ fleetMerchantId: [],
+ voyagerMerchantId: [],
+ wexMerchantNumber: []
+ }
+ }
+ },
+ isSeasonal: [],
+ merchantId: [],
+ monthlyAmounts: {
+ average: [],
+ highest: []
+ },
+ monthsOfOperation: [
+ [],
+ [],
+ []
+ ],
+ transactionAmounts: {
+ average: [],
+ highest: []
+ },
+ volumeBreakdown: {
+ cardPresentKeyed: [],
+ cardPresentSwiped: [],
+ ecommerce: [],
+ mailOrTelephone: []
+ }
+ },
+ processingAccountId: [],
+ status: [],
+ timezone: [],
+ website: []
+ },
+ {
+ businessStartDate: [],
+ businessType: [],
+ categoryCode: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ contacts: [
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ }
+ ],
+ createdDate: [],
+ doingBusinessAs: [],
+ funding: {
+ acceleratedFundingFee: [],
+ dailyDiscount: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ fundingSchedule: [],
+ status: []
+ },
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchandiseOrServiceSold: [],
+ owners: [
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ pricing: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ processing: {
+ ach: {
+ estimatedMonthlyTransactions: [],
+ limits: {
+ dailyDeposit: [],
+ monthlyDeposit: [],
+ singleTransaction: []
+ },
+ naics: [],
+ previouslyTerminatedForAch: [],
+ refunds: {
+ refundPolicyUrl: [],
+ writtenRefundPolicy: []
+ },
+ transactionTypes: [
+ [],
+ [],
+ []
+ ],
+ transactionTypesOther: []
+ },
+ cardAcceptance: {
+ cardsAccepted: [
+ [],
+ [],
+ []
+ ],
+ debitOnly: [],
+ specialityCards: {
+ americanExpressDirect: {
+ enabled: [],
+ merchantNumber: []
+ },
+ electronicBenefitsTransfer: {
+ enabled: [],
+ fnsNumber: []
+ },
+ other: {
+ fleetMerchantId: [],
+ voyagerMerchantId: [],
+ wexMerchantNumber: []
+ }
+ }
+ },
+ isSeasonal: [],
+ merchantId: [],
+ monthlyAmounts: {
+ average: [],
+ highest: []
+ },
+ monthsOfOperation: [
+ [],
+ [],
+ []
+ ],
+ transactionAmounts: {
+ average: [],
+ highest: []
+ },
+ volumeBreakdown: {
+ cardPresentKeyed: [],
+ cardPresentSwiped: [],
+ ecommerce: [],
+ mailOrTelephone: []
+ }
+ },
+ processingAccountId: [],
+ status: [],
+ timezone: [],
+ website: []
+ },
+ {
+ businessStartDate: [],
+ businessType: [],
+ categoryCode: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ contacts: [
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ }
+ ],
+ createdDate: [],
+ doingBusinessAs: [],
+ funding: {
+ acceleratedFundingFee: [],
+ dailyDiscount: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ fundingSchedule: [],
+ status: []
+ },
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchandiseOrServiceSold: [],
+ owners: [
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ pricing: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ processing: {
+ ach: {
+ estimatedMonthlyTransactions: [],
+ limits: {
+ dailyDeposit: [],
+ monthlyDeposit: [],
+ singleTransaction: []
+ },
+ naics: [],
+ previouslyTerminatedForAch: [],
+ refunds: {
+ refundPolicyUrl: [],
+ writtenRefundPolicy: []
+ },
+ transactionTypes: [
+ [],
+ [],
+ []
+ ],
+ transactionTypesOther: []
+ },
+ cardAcceptance: {
+ cardsAccepted: [
+ [],
+ [],
+ []
+ ],
+ debitOnly: [],
+ specialityCards: {
+ americanExpressDirect: {
+ enabled: [],
+ merchantNumber: []
+ },
+ electronicBenefitsTransfer: {
+ enabled: [],
+ fnsNumber: []
+ },
+ other: {
+ fleetMerchantId: [],
+ voyagerMerchantId: [],
+ wexMerchantNumber: []
+ }
+ }
+ },
+ isSeasonal: [],
+ merchantId: [],
+ monthlyAmounts: {
+ average: [],
+ highest: []
+ },
+ monthsOfOperation: [
+ [],
+ [],
+ []
+ ],
+ transactionAmounts: {
+ average: [],
+ highest: []
+ },
+ volumeBreakdown: {
+ cardPresentKeyed: [],
+ cardPresentSwiped: [],
+ ecommerce: [],
+ mailOrTelephone: []
+ }
+ },
+ processingAccountId: [],
+ status: [],
+ timezone: [],
+ website: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_51,
+ Request: {
+ Path: /v1/merchant-platforms/12345/processing-accounts,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ businessStartDate: [],
+ businessType: [],
+ categoryCode: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ contacts: [
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ }
+ ],
+ createdDate: [],
+ doingBusinessAs: [],
+ funding: {
+ acceleratedFundingFee: [],
+ dailyDiscount: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ fundingSchedule: [],
+ status: []
+ },
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchandiseOrServiceSold: [],
+ owners: [
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ pricing: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ processing: {
+ ach: {
+ estimatedMonthlyTransactions: [],
+ limits: {
+ dailyDeposit: [],
+ monthlyDeposit: [],
+ singleTransaction: []
+ },
+ naics: [],
+ previouslyTerminatedForAch: [],
+ refunds: {
+ refundPolicyUrl: [],
+ writtenRefundPolicy: []
+ },
+ transactionTypes: [
+ [],
+ [],
+ []
+ ],
+ transactionTypesOther: []
+ },
+ cardAcceptance: {
+ cardsAccepted: [
+ [],
+ [],
+ []
+ ],
+ debitOnly: [],
+ specialityCards: {
+ americanExpressDirect: {
+ enabled: [],
+ merchantNumber: []
+ },
+ electronicBenefitsTransfer: {
+ enabled: [],
+ fnsNumber: []
+ },
+ other: {
+ fleetMerchantId: [],
+ voyagerMerchantId: [],
+ wexMerchantNumber: []
+ }
+ }
+ },
+ isSeasonal: [],
+ merchantId: [],
+ monthlyAmounts: {
+ average: [],
+ highest: []
+ },
+ monthsOfOperation: [
+ [],
+ [],
+ []
+ ],
+ transactionAmounts: {
+ average: [],
+ highest: []
+ },
+ volumeBreakdown: {
+ cardPresentKeyed: [],
+ cardPresentSwiped: [],
+ ecommerce: [],
+ mailOrTelephone: []
+ }
+ },
+ processingAccountId: [],
+ status: [],
+ timezone: [],
+ website: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_52,
+ Request: {
+ Path: /v1/owners/42,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_53,
+ Request: {
+ Path: /v1/owners/42,
+ Methods: [
+ PUT
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_54,
+ Request: {
+ Path: /v1/owners/42,
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_55,
+ Request: {
+ Path: /v1/payment-instructions/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ errorMessage: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentInstructionId: [],
+ status: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_56,
+ Request: {
+ Path: /v1/payments,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "channel": "pos",
+ "processingTerminalId": "example-string",
+ "operator": "example-string",
+ "order": {
+ "orderId": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00",
+ "description": "example-string",
+ "amount": 42,
+ "currency": "AED",
+ "breakdown": {
+ "subtotal": 42,
+ "cashbackAmount": 42,
+ "tip": {
+ "type": "percentage",
+ "mode": "prompted",
+ "amount": 42,
+ "percentage": 2.2
+ },
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ],
+ "surcharge": {
+ "bypass": true,
+ "amount": 42,
+ "percentage": 2.2
+ },
+ "dualPricing": {
+ "offered": true,
+ "choiceRate": {
+ "applied": true,
+ "rate": 2.2,
+ "amount": 42
+ },
+ "alternativeTender": "card"
+ },
+ "dutyAmount": 42,
+ "freightAmount": 42,
+ "convenienceFee": {
+ "amount": 42
+ },
+ "items": [
+ {
+ "commodityCode": "example-string",
+ "productCode": "example-string",
+ "description": "example-string",
+ "unitOfMeasure": "ACR",
+ "unitPrice": 2.2,
+ "quantity": 2.2,
+ "discountRate": 2.2,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ },
+ {
+ "commodityCode": "example-string",
+ "productCode": "example-string",
+ "description": "example-string",
+ "unitOfMeasure": "ACR",
+ "unitPrice": 2.2,
+ "quantity": 2.2,
+ "discountRate": 2.2,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ },
+ {
+ "commodityCode": "example-string",
+ "productCode": "example-string",
+ "description": "example-string",
+ "unitOfMeasure": "ACR",
+ "unitPrice": 2.2,
+ "quantity": 2.2,
+ "discountRate": 2.2,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ }
+ ]
+ },
+ "dccOffer": {
+ "accepted": true,
+ "offerReference": "example-string",
+ "fxAmount": 42,
+ "fxCurrency": "AED",
+ "fxCurrencyCode": "example-string",
+ "fxCurrencyExponent": 42,
+ "fxRate": 2.2,
+ "markup": 2.2,
+ "markupText": "example-string",
+ "provider": "example-string",
+ "source": "example-string"
+ },
+ "standingInstructions": {
+ "sequence": "first",
+ "processingModel": "unscheduled",
+ "referenceDataOfFirstTxn": {
+ "paymentId": "example-string",
+ "cardSchemeReferenceId": "example-string"
+ }
+ }
+ },
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "ipAddress": {
+ "type": "ipv4",
+ "value": "example-string"
+ },
+ "paymentMethod": {},
+ "threeDSecure": {},
+ "credentialOnFile": {
+ "externalVault": true,
+ "tokenize": true,
+ "secureTokenId": "example-string",
+ "mitAgreement": "unscheduled"
+ },
+ "offlineProcessing": {
+ "operation": "offlineDecline",
+ "approvalCode": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00"
+ },
+ "autoCapture": true,
+ "processAsSale": true
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_57,
+ Request: {
+ Path: /v1/payments,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_58,
+ Request: {
+ Path: /v1/payments/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_59,
+ Request: {
+ Path: /v1/payments/example-string/adjust,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "operator": "example-string",
+ "adjustments": [
+ null,
+ null,
+ null
+ ]
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_60,
+ Request: {
+ Path: /v1/payments/example-string/capture,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_61,
+ Request: {
+ Path: /v1/payments/example-string/refund,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "operator": "example-string",
+ "amount": 42,
+ "description": "example-string"
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_62,
+ Request: {
+ Path: /v1/payments/example-string/reverse,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ breakdown: {
+ cashbackAmount: [],
+ convenienceFee: {
+ amount: []
+ },
+ dualPricing: {
+ alternativeTender: [],
+ choiceRate: {
+ amount: [],
+ applied: [],
+ rate: []
+ },
+ offered: []
+ },
+ dutyAmount: [],
+ freightAmount: [],
+ items: [
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ },
+ {
+ commodityCode: [],
+ description: [],
+ discountRate: [],
+ productCode: [],
+ quantity: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ unitOfMeasure: [],
+ unitPrice: []
+ }
+ ],
+ subtotal: [],
+ surcharge: {
+ amount: [],
+ bypass: [],
+ percentage: []
+ },
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ],
+ tip: {
+ amount: [],
+ mode: [],
+ percentage: [],
+ type: []
+ }
+ },
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: [],
+ standingInstructions: {
+ processingModel: [],
+ referenceDataOfFirstTxn: {
+ cardSchemeReferenceId: [],
+ paymentId: []
+ },
+ sequence: []
+ }
+ },
+ paymentId: [],
+ processingTerminalId: [],
+ refunds: [
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ }
+ ],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_63,
+ Request: {
+ Path: /v1/pricing-intents,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_64,
+ Request: {
+ Path: /v1/pricing-intents,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_65,
+ Request: {
+ Path: /v1/pricing-intents/{pricingIntentId},
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_66,
+ Request: {
+ Path: /v1/pricing-intents/{pricingIntentId},
+ Methods: [
+ PUT
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_67,
+ Request: {
+ Path: /v1/pricing-intents/{pricingIntentId},
+ Methods: [
+ PATCH
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_68,
+ Request: {
+ Path: /v1/pricing-intents/{pricingIntentId},
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_69,
+ Request: {
+ Path: /v1/processing-accounts/12345,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ businessStartDate: [],
+ businessType: [],
+ categoryCode: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ contacts: [
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ {
+ contactId: [],
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ }
+ ],
+ createdDate: [],
+ doingBusinessAs: [],
+ funding: {
+ acceleratedFundingFee: [],
+ dailyDiscount: [],
+ fundingAccounts: [
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ },
+ {
+ fundingAccountId: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ status: []
+ }
+ ],
+ fundingSchedule: [],
+ status: []
+ },
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ merchandiseOrServiceSold: [],
+ owners: [
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ },
+ {
+ firstName: [],
+ lastName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ ownerId: []
+ }
+ ],
+ pricing: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ processing: {
+ ach: {
+ estimatedMonthlyTransactions: [],
+ limits: {
+ dailyDeposit: [],
+ monthlyDeposit: [],
+ singleTransaction: []
+ },
+ naics: [],
+ previouslyTerminatedForAch: [],
+ refunds: {
+ refundPolicyUrl: [],
+ writtenRefundPolicy: []
+ },
+ transactionTypes: [
+ [],
+ [],
+ []
+ ],
+ transactionTypesOther: []
+ },
+ cardAcceptance: {
+ cardsAccepted: [
+ [],
+ [],
+ []
+ ],
+ debitOnly: [],
+ specialityCards: {
+ americanExpressDirect: {
+ enabled: [],
+ merchantNumber: []
+ },
+ electronicBenefitsTransfer: {
+ enabled: [],
+ fnsNumber: []
+ },
+ other: {
+ fleetMerchantId: [],
+ voyagerMerchantId: [],
+ wexMerchantNumber: []
+ }
+ }
+ },
+ isSeasonal: [],
+ merchantId: [],
+ monthlyAmounts: {
+ average: [],
+ highest: []
+ },
+ monthsOfOperation: [
+ [],
+ [],
+ []
+ ],
+ transactionAmounts: {
+ average: [],
+ highest: []
+ },
+ volumeBreakdown: {
+ cardPresentKeyed: [],
+ cardPresentSwiped: [],
+ ecommerce: [],
+ mailOrTelephone: []
+ }
+ },
+ processingAccountId: [],
+ status: [],
+ timezone: [],
+ website: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_70,
+ Request: {
+ Path: /v1/processing-accounts/12345/contacts,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ contactId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ type: []
+ },
+ {
+ contactId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ type: []
+ },
+ {
+ contactId: [],
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ type: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_71,
+ Request: {
+ Path: /v1/processing-accounts/12345/funding-accounts,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: [
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ },
+ {
+ createdDate: [],
+ fundingAccountId: [],
+ lastModifiedDate: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ],
+ nameOnAccount: [],
+ paymentMethods: [
+ [],
+ [],
+ []
+ ],
+ status: [],
+ type: [],
+ use: []
+ }
+ ],
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_72,
+ Request: {
+ Path: /v1/processing-accounts/12345/owners,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ },
+ {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ },
+ {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ identifiers: [
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ },
+ {
+ type: [],
+ value: []
+ }
+ ],
+ lastName: [],
+ middleName: [],
+ ownerId: [],
+ relationship: {
+ equityPercentage: [],
+ isAuthorizedSignatory: [],
+ isControlProng: [],
+ title: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_73,
+ Request: {
+ Path: /v1/processing-accounts/12345/pricing,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_74,
+ Request: {
+ Path: /v1/processing-accounts/12345/reminders,
+ Methods: [
+ POST
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 201,
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_75,
+ Request: {
+ Path: /v1/processing-terminals/example-string/payment-plans,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "paymentPlanId": "example-string",
+ "processingTerminalId": "example-string",
+ "name": "example-string",
+ "description": "example-string",
+ "currency": "AED",
+ "setupOrder": {
+ "amount": 42,
+ "description": "example-string",
+ "breakdown": {
+ "subtotal": 42,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ }
+ },
+ "recurringOrder": {
+ "amount": 42,
+ "description": "example-string",
+ "breakdown": {
+ "subtotal": 42,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ }
+ },
+ "length": 42,
+ "type": "manual",
+ "frequency": "weekly",
+ "onUpdate": "update",
+ "onDelete": "complete"
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ currency: [],
+ description: [],
+ frequency: [],
+ length: [],
+ name: [],
+ onDelete: [],
+ onUpdate: [],
+ paymentPlanId: [],
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_76,
+ Request: {
+ Path: /v1/processing-terminals/example-string/payment-plans,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ currency: [],
+ description: [],
+ frequency: [],
+ length: [],
+ name: [],
+ onDelete: [],
+ onUpdate: [],
+ paymentPlanId: [],
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ type: []
+ },
+ {
+ currency: [],
+ description: [],
+ frequency: [],
+ length: [],
+ name: [],
+ onDelete: [],
+ onUpdate: [],
+ paymentPlanId: [],
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ type: []
+ },
+ {
+ currency: [],
+ description: [],
+ frequency: [],
+ length: [],
+ name: [],
+ onDelete: [],
+ onUpdate: [],
+ paymentPlanId: [],
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ type: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_77,
+ Request: {
+ Path: /v1/processing-terminals/example-string/payment-plans/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ currency: [],
+ description: [],
+ frequency: [],
+ length: [],
+ name: [],
+ onDelete: [],
+ onUpdate: [],
+ paymentPlanId: [],
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_78,
+ Request: {
+ Path: /v1/processing-terminals/example-string/payment-plans/example-string,
+ Methods: [
+ PATCH
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+[
+ {
+ "op": "add",
+ "path": "/a/b/c",
+ "value": [
+ "dog",
+ "cat"
+ ]
+ },
+ {
+ "op": "remove",
+ "path": "/a/b/c"
+ },
+ {
+ "op": "replace",
+ "path": "/a/b/c",
+ "value": "42"
+ },
+ {
+ "op": "move",
+ "from": "/a/b/c",
+ "path": "/a/b/d"
+ },
+ {
+ "op": "copy",
+ "from": "/a/b/d",
+ "path": "/a/b/e"
+ },
+ {
+ "op": "test",
+ "path": "/a/b/c",
+ "value": "dog"
+ }
+],
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ currency: [],
+ description: [],
+ frequency: [],
+ length: [],
+ name: [],
+ onDelete: [],
+ onUpdate: [],
+ paymentPlanId: [],
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_79,
+ Request: {
+ Path: /v1/processing-terminals/example-string/payment-plans/example-string,
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_80,
+ Request: {
+ Path: /v1/processing-terminals/example-string/secure-tokens,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "secureTokenId": "example-string",
+ "operator": "example-string",
+ "mitAgreement": "unscheduled",
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "ipAddress": {
+ "type": "ipv4",
+ "value": "example-string"
+ },
+ "source": {},
+ "threeDSecure": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ mitAgreement: [],
+ processingTerminalId: [],
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_81,
+ Request: {
+ Path: /v1/processing-terminals/example-string/secure-tokens,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ mitAgreement: [],
+ processingTerminalId: [],
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ {
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ mitAgreement: [],
+ processingTerminalId: [],
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ {
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ mitAgreement: [],
+ processingTerminalId: [],
+ secureTokenId: [],
+ status: [],
+ token: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_82,
+ Request: {
+ Path: /v1/processing-terminals/example-string/secure-tokens/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ mitAgreement: [],
+ processingTerminalId: [],
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_83,
+ Request: {
+ Path: /v1/processing-terminals/example-string/secure-tokens/example-string,
+ Methods: [
+ PATCH
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+[
+ {
+ "op": "add",
+ "path": "/a/b/c",
+ "value": [
+ "dog",
+ "cat"
+ ]
+ },
+ {
+ "op": "remove",
+ "path": "/a/b/c"
+ },
+ {
+ "op": "replace",
+ "path": "/a/b/c",
+ "value": "42"
+ },
+ {
+ "op": "move",
+ "from": "/a/b/c",
+ "path": "/a/b/d"
+ },
+ {
+ "op": "copy",
+ "from": "/a/b/d",
+ "path": "/a/b/e"
+ },
+ {
+ "op": "test",
+ "path": "/a/b/c",
+ "value": "dog"
+ }
+],
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ mitAgreement: [],
+ processingTerminalId: [],
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_84,
+ Request: {
+ Path: /v1/processing-terminals/example-string/secure-tokens/example-string,
+ Methods: [
+ DELETE
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 204
+ }
+ },
+ {
+ Guid: Guid_85,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "subscriptionId": "example-string",
+ "paymentPlanId": "example-string",
+ "paymentMethod": {},
+ "name": "example-string",
+ "description": "example-string",
+ "setupOrder": {
+ "amount": 42,
+ "description": "example-string",
+ "breakdown": {
+ "subtotal": 42,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ },
+ "orderId": "example-string"
+ },
+ "recurringOrder": {
+ "amount": 42,
+ "description": "example-string",
+ "breakdown": {
+ "subtotal": 42,
+ "taxes": [
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ },
+ {
+ "name": "example-string",
+ "rate": 2.2,
+ "amount": 42
+ }
+ ]
+ }
+ },
+ "startDate": "2024-06-19",
+ "endDate": "2024-06-19",
+ "length": 42,
+ "pauseCollectionFor": 42
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_86,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_87,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_88,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions/example-string,
+ Methods: [
+ PATCH
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+[
+ {
+ "op": "add",
+ "path": "/a/b/c",
+ "value": [
+ "dog",
+ "cat"
+ ]
+ },
+ {
+ "op": "remove",
+ "path": "/a/b/c"
+ },
+ {
+ "op": "replace",
+ "path": "/a/b/c",
+ "value": "42"
+ },
+ {
+ "op": "move",
+ "from": "/a/b/c",
+ "path": "/a/b/d"
+ },
+ {
+ "op": "copy",
+ "from": "/a/b/d",
+ "path": "/a/b/e"
+ },
+ {
+ "op": "test",
+ "path": "/a/b/c",
+ "value": "dog"
+ }
+],
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_89,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions/example-string/deactivate,
+ Methods: [
+ POST
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/problem+json
+ }
+ }
+ },
+ {
+ Guid: Guid_90,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions/example-string/pay,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ]
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ subscriptionId: []
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_91,
+ Request: {
+ Path: /v1/processing-terminals/example-string/subscriptions/example-string/reactivate,
+ Methods: [
+ POST
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ currency: [],
+ currentState: {
+ nextDueDate: [],
+ outstandingInvoices: [],
+ paidInvoices: [],
+ status: []
+ },
+ description: [],
+ endDate: [],
+ frequency: [],
+ length: [],
+ name: [],
+ pauseCollectionFor: [],
+ paymentPlan: {
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ name: [],
+ paymentPlanId: []
+ },
+ processingTerminalId: [],
+ recurringOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: []
+ },
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ setupOrder: {
+ amount: [],
+ breakdown: {
+ subtotal: [],
+ taxes: [
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ },
+ {
+ amount: [],
+ name: [],
+ rate: []
+ }
+ ]
+ },
+ description: [],
+ orderId: []
+ },
+ startDate: [],
+ subscriptionId: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_92,
+ Request: {
+ Path: /v1/refund-instructions/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ errorMessage: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ refundInstructionId: [],
+ status: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_93,
+ Request: {
+ Path: /v1/refunds,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "channel": "pos",
+ "processingTerminalId": "example-string",
+ "operator": "example-string",
+ "order": {
+ "orderId": "example-string",
+ "dateTime": "2024-06-19T12:34:56.000+00:00",
+ "description": "example-string",
+ "amount": 42,
+ "currency": "AED",
+ "dccOffer": {
+ "accepted": true,
+ "offerReference": "example-string",
+ "fxAmount": 42,
+ "fxCurrency": "AED",
+ "fxCurrencyCode": "example-string",
+ "fxCurrencyExponent": 42,
+ "fxRate": 2.2,
+ "markup": 2.2,
+ "markupText": "example-string",
+ "provider": "example-string",
+ "source": "example-string"
+ }
+ },
+ "customer": {
+ "firstName": "example-string",
+ "lastName": "example-string",
+ "dateOfBirth": "2024-06-19",
+ "referenceNumber": "example-string",
+ "billingAddress": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ },
+ "shippingAddress": {
+ "recipientName": "example-string",
+ "address": {
+ "address1": "1 Example Ave.",
+ "address2": "Example Address Line 2",
+ "address3": "Example Address Line 3",
+ "city": "Chicago",
+ "state": "Illinois",
+ "country": "US",
+ "postalCode": "60056"
+ }
+ },
+ "contactMethods": [
+ null,
+ null,
+ null
+ ],
+ "notificationLanguage": "en"
+ },
+ "ipAddress": {
+ "type": "ipv4",
+ "value": "example-string"
+ },
+ "refundMethod": {}
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 201,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json,
+ location: example-string
+ }
+ }
+ },
+ {
+ Guid: Guid_94,
+ Request: {
+ Path: /v1/refunds,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_95,
+ Request: {
+ Path: /v1/refunds/example-string,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_96,
+ Request: {
+ Path: /v1/refunds/example-string/adjust,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {
+ Matcher: {
+ Name: JsonMatcher,
+ Pattern:
+{
+ "operator": "example-string",
+ "adjustments": [
+ null,
+ null,
+ null
+ ]
+},
+ IgnoreCase: true
+ }
+ }
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_97,
+ Request: {
+ Path: /v1/refunds/example-string/reverse,
+ Methods: [
+ POST
+ ],
+ Headers: [
+ {
+ Name: Idempotency-Key,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: example-string,
+ IgnoreCase: true
+ }
+ ],
+ IgnoreCase: true
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ card: {
+ balances: [
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ },
+ {
+ amount: [],
+ benefitCategory: [],
+ currency: []
+ }
+ ],
+ cardholderName: [],
+ cardholderSignature: [],
+ cardNumber: [],
+ emvTags: [
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ },
+ {
+ hex: [],
+ value: []
+ }
+ ],
+ entryMethod: [],
+ expiryDate: [],
+ secureToken: {
+ customerName: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ secureTokenId: [],
+ status: [],
+ token: []
+ },
+ securityChecks: {
+ avsResult: [],
+ cvvResult: []
+ },
+ type: []
+ },
+ customer: {
+ billingAddress: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ contactMethods: [
+ [],
+ [],
+ []
+ ],
+ dateOfBirth: [],
+ firstName: [],
+ lastName: [],
+ notificationLanguage: [],
+ referenceNumber: [],
+ shippingAddress: {
+ address: {
+ address1: [],
+ address2: [],
+ address3: [],
+ city: [],
+ country: [],
+ postalCode: [],
+ state: []
+ },
+ recipientName: []
+ }
+ },
+ operator: [],
+ order: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ dccOffer: {
+ accepted: [],
+ fxAmount: [],
+ fxCurrency: [],
+ fxCurrencyCode: [],
+ fxCurrencyExponent: [],
+ fxRate: [],
+ markup: [],
+ markupText: [],
+ offerReference: [],
+ provider: [],
+ source: []
+ },
+ description: [],
+ orderId: []
+ },
+ payment: {
+ amount: [],
+ currency: [],
+ dateTime: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ paymentId: [],
+ responseCode: [],
+ responseMessage: [],
+ status: []
+ },
+ processingTerminalId: [],
+ refundId: [],
+ supportedOperations: [
+ [],
+ [],
+ []
+ ],
+ transactionResult: {
+ approvalCode: [],
+ authorizedAmount: [],
+ cardSchemeReferenceId: [],
+ currency: [],
+ ebtType: [],
+ processorResponseCode: [],
+ responseCode: [],
+ responseMessage: [],
+ status: [],
+ type: []
+ }
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_98,
+ Request: {
+ Path: /v1/transactions,
+ Methods: [
+ GET
+ ],
+ Params: [
+ {
+ Name: date,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 2024-06-19,
+ IgnoreCase: true
+ }
+ ]
+ },
+ {
+ Name: batchId,
+ IgnoreCase: true,
+ Matchers: [
+ {
+ Name: ExactMatcher,
+ Pattern: 42,
+ IgnoreCase: true
+ }
+ ]
+ }
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ count: [],
+ data: [
+ {
+ amount: [],
+ authorization: {
+ amount: [],
+ authorizationId: [],
+ avsResponseCode: [],
+ code: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ cashbackAmount: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ entryMethod: [],
+ interchange: {
+ basisPoint: [],
+ transactionFee: []
+ },
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ settled: {
+ achDate: [],
+ settledBy: []
+ },
+ status: [],
+ transactionId: [],
+ type: []
+ },
+ {
+ amount: [],
+ authorization: {
+ amount: [],
+ authorizationId: [],
+ avsResponseCode: [],
+ code: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ cashbackAmount: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ entryMethod: [],
+ interchange: {
+ basisPoint: [],
+ transactionFee: []
+ },
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ settled: {
+ achDate: [],
+ settledBy: []
+ },
+ status: [],
+ transactionId: [],
+ type: []
+ },
+ {
+ amount: [],
+ authorization: {
+ amount: [],
+ authorizationId: [],
+ avsResponseCode: [],
+ code: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ cashbackAmount: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ entryMethod: [],
+ interchange: {
+ basisPoint: [],
+ transactionFee: []
+ },
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ settled: {
+ achDate: [],
+ settledBy: []
+ },
+ status: [],
+ transactionId: [],
+ type: []
+ }
+ ],
+ hasMore: [],
+ limit: [],
+ links: [
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ },
+ {
+ href: [],
+ method: [],
+ rel: []
+ }
+ ]
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ },
+ {
+ Guid: Guid_99,
+ Request: {
+ Path: /v1/transactions/12345,
+ Methods: [
+ GET
+ ],
+ Body: {}
+ },
+ Response: {
+ StatusCode: 200,
+ BodyAsJson: {
+ amount: [],
+ authorization: {
+ amount: [],
+ authorizationId: [],
+ avsResponseCode: [],
+ code: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ batch: {
+ batchId: [],
+ cycle: [],
+ date: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ }
+ },
+ card: {
+ avsRequest: [],
+ avsResponse: [],
+ cardNumber: [],
+ cvvPresenceIndicator: [],
+ type: []
+ },
+ cashbackAmount: [],
+ createdDate: [],
+ currency: [],
+ date: [],
+ entryMethod: [],
+ interchange: {
+ basisPoint: [],
+ transactionFee: []
+ },
+ lastModifiedDate: [],
+ merchant: {
+ doingBusinessAs: [],
+ link: {
+ href: [],
+ method: [],
+ rel: []
+ },
+ merchantId: []
+ },
+ settled: {
+ achDate: [],
+ settledBy: []
+ },
+ status: [],
+ transactionId: [],
+ type: []
+ },
+ Headers: {
+ Content-Type: application/json
+ }
+ }
+ }
+]
\ No newline at end of file
diff --git a/test/WireMock.Net.Tests/OpenApiParser/WireMockOpenApiParserTests.cs b/test/WireMock.Net.Tests/OpenApiParser/WireMockOpenApiParserTests.cs
new file mode 100644
index 00000000..ba387683
--- /dev/null
+++ b/test/WireMock.Net.Tests/OpenApiParser/WireMockOpenApiParserTests.cs
@@ -0,0 +1,51 @@
+#if !(NET452 || NET461 || NETCOREAPP3_1)
+using System;
+using System.IO;
+using System.Threading.Tasks;
+using Moq;
+using VerifyXunit;
+using WireMock.Net.OpenApiParser;
+using WireMock.Net.OpenApiParser.Settings;
+using Xunit;
+
+namespace WireMock.Net.Tests.OpenApiParser;
+
+[UsesVerify]
+public class WireMockOpenApiParserTests
+{
+ private readonly Mock _exampleValuesMock = new();
+
+ private readonly WireMockOpenApiParser _sut = new();
+
+ public WireMockOpenApiParserTests()
+ {
+ _exampleValuesMock.SetupGet(e => e.Boolean).Returns(true);
+ _exampleValuesMock.SetupGet(e => e.Integer).Returns(42);
+ _exampleValuesMock.SetupGet(e => e.Float).Returns(1.1f);
+ _exampleValuesMock.SetupGet(e => e.Double).Returns(2.2d);
+ _exampleValuesMock.SetupGet(e => e.String).Returns("example-string");
+ _exampleValuesMock.SetupGet(e => e.Object).Returns("example-object");
+ _exampleValuesMock.SetupGet(e => e.Bytes).Returns("Stef"u8.ToArray());
+ _exampleValuesMock.SetupGet(e => e.Date).Returns(() => new DateTime(2024, 6, 19));
+ _exampleValuesMock.SetupGet(e => e.DateTime).Returns(() => new DateTime(2024, 6, 19, 12, 34, 56, DateTimeKind.Utc));
+ }
+
+ [Fact]
+ public async Task FromText_ShouldReturnMappings()
+ {
+ // Arrange
+ var settings = new WireMockOpenApiParserSettings
+ {
+ ExampleValues = _exampleValuesMock.Object
+ };
+
+ var openApiDocument = await File.ReadAllTextAsync(Path.Combine("OpenApiParser", "payroc-openapi-spec.yaml"));
+
+ // Act
+ var mappings = _sut.FromText(openApiDocument, settings, out _);
+
+ // Verify
+ await Verifier.Verify(mappings);
+ }
+}
+#endif
\ No newline at end of file
diff --git a/test/WireMock.Net.Tests/OpenApiParser/payroc-openapi-spec.yaml b/test/WireMock.Net.Tests/OpenApiParser/payroc-openapi-spec.yaml
new file mode 100644
index 00000000..2c93ed18
--- /dev/null
+++ b/test/WireMock.Net.Tests/OpenApiParser/payroc-openapi-spec.yaml
@@ -0,0 +1,24187 @@
+openapi: 3.0.3
+info:
+ version: '1'
+ title: Payroc API
+ description: Api for accessing Payroc servicess
+ contact:
+ name: Payroc Helpdesk
+ url: https://docs.payroc.com/api
+ email: helpdesk@payroc.com
+servers:
+ - url: https://api.payroc.com/v1
+ description: External URL
+security:
+ - bearerAuth: []
+tags:
+ - name: Bank accounts
+ description: Validate bank account information.
+ - name: Bank transfer payments
+ description: Take bank-transfer payments.
+ - name: Bank transfer refunds
+ description: Return payments to customers' bank accounts.
+ - name: Cards
+ description: Validate card information.
+ - name: Contacts
+ description: Individuals who serve as points of contact for the business.
+ - name: Currency conversion
+ description: Offer dynamic currency conversion to customers.
+ - name: Funding accounts
+ description: Financial accounts associated with entities.
+ - name: Funding activity
+ description: Activity associated with a payfac account.
+ - name: Funding instructions
+ description: Instructions on how to split fund between recipients.
+ - name: Funding recipients
+ description: Entities that can receive funding but not take payments
+ - name: Merchant platforms
+ description: |
+ A merchant platform is an entity that represents a business and includes its legal information and all processing accounts.
+ After you create a merchant platform for a business, you can do the following:
+ - [Create and add an additional processing account to a merchant platform.](#createProcessingAccount)
+ - [Retrieve a merchant platform.](#getMerchantAcccounts)
+ - [Retrieve a list of merchant platforms.](#listMerchantPlatforms)
+ - [Retrieve a list of open processing accounts that are linked to a merchant platform.](#listMerchantLocations)
+
+
+ For more information about boarding a merchant, go to our [Board a merchant](/guides/integrate/boarding) guide.
+ - name: Owners
+ description: Individuals who own or control the business.
+ - name: Payment instructions
+ description: Submit instructions for initiating payments on physical devices running semi-integrated apps.
+ - name: Payment plans
+ description: Create and manage payment plans.
+ - name: Payments
+ description: Take card payments.
+ - name: Pricing intents
+ description: Create and manage pricing intents.
+ - name: Processing accounts
+ description: Create and manage processing accounts.
+ - name: Refund instructions
+ description: Submit instructions for initiating refunds on physical devices running semi-integrated apps.
+ - name: Refunds
+ description: Return payments to customers.
+ - name: Secure tokens
+ description: Save customers' payment details.
+ - name: Settlement
+ description: Settlement information
+ - name: Subscriptions
+ description: Subscribe customers to payment plans.
+paths:
+ /funding-recipients:
+ summary: Create and manage funding recipients.
+ post:
+ tags:
+ - Funding recipients
+ summary: Create funding recipient
+ description: Create a funding recipient.
+ operationId: createFundingRecipient
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: &ref_21
+ type: string
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_246
+ - address
+ - contactMethods
+ - recipientType
+ - taxId
+ - owners
+ - fundingAccounts
+ - doingBuinessAs
+ type: object
+ title: create funding recipient
+ properties: &ref_247
+ recipientId:
+ type: integer
+ readOnly: true
+ example: 1
+ status:
+ type: string
+ readOnly: true
+ example: approved
+ enum:
+ - approved
+ - rejected
+ - pending
+ createdDate:
+ type: string
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ lastModifiedDate:
+ type: string
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ recipientType:
+ type: string
+ description: Type or legal structure of the funding recipient.
+ example: privateCorporation
+ enum:
+ - privateCorporation
+ - publicCorporation
+ - nonProfit
+ - government
+ - privateLlc
+ - publicLlc
+ - privatePartnership
+ - publicPartnership
+ - soleProprietor
+ taxId:
+ type: string
+ description: Employer identification number (EIN) or Social Security number (SSN).
+ example: '123456789'
+ charityId:
+ type: string
+ description: Government identifier of the charity.
+ doingBusinessAs:
+ type: string
+ description: Legal name that the business operates under.
+ address:
+ type: object
+ description: Address of the funding recipient.
+ oneOf:
+ - required: &ref_0
+ - city
+ - country
+ - address1
+ - postalCode
+ - state
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: &ref_1
+ address1:
+ type: string
+ description: Address Line.
+ example: 1 Example Ave.
+ maxLength: 150
+ address2:
+ type: string
+ description: Address Line.
+ example: Example Address Line 2
+ maxLength: 150
+ address3:
+ type: string
+ description: Address Line.
+ example: Example Address Line 3
+ maxLength: 150
+ city:
+ type: string
+ description: City.
+ example: Chicago
+ maxLength: 50
+ state:
+ type: string
+ description: Name or postal abbreviation of the state.
+ example: Illinois
+ maxLength: 50
+ country:
+ maxLength: 2
+ minLength: 2
+ type: string
+ description: Two letter ISO 3166-1 country code.
+ example: US
+ postalCode:
+ type: string
+ description: Zip Code or Postcode.
+ example: '60056'
+ maxLength: 10
+ contactMethods:
+ type: array
+ minItems: 1
+ xml:
+ wrapped: true
+ description: Array of contactMethod objects that you can use to add contact methods for the funding recipient. You must provide at least an email address.
+ items:
+ oneOf: &ref_2
+ - required: &ref_232
+ - type
+ - value
+ type: object
+ title: Email contact method
+ properties: &ref_233
+ type:
+ type: string
+ description: Type of contact method.
+ enum:
+ - email
+ value:
+ type: string
+ description: Email address.
+ maxLength: 50
+ example: jane.doe@example.com
+ - required: &ref_234
+ - type
+ - value
+ type: object
+ title: Phone number contact method
+ properties: &ref_235
+ type:
+ type: string
+ description: Type of contact method.
+ enum:
+ - phone
+ value:
+ type: string
+ description: Phone Number.
+ maxLength: 15
+ example: '2025550164'
+ - required: &ref_236
+ - type
+ - value
+ type: object
+ title: Mobile number contact method
+ properties: &ref_237
+ type:
+ type: string
+ description: Type of contact method.
+ enum:
+ - mobile
+ value:
+ type: string
+ description: Mobile Number.
+ maxLength: 15
+ example: '8447297624'
+ - required: &ref_238
+ - type
+ - value
+ type: object
+ title: Fax number contact method
+ properties: &ref_239
+ type:
+ type: string
+ description: Type of contact method.
+ enum:
+ - fax
+ value:
+ type: string
+ description: Fax Number.
+ maxLength: 15
+ example: '2025550110'
+ example:
+ - type: email
+ value: david.smith@example.com
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: '[Metadata](/api/metadata) object you can use to include custom data with your request.'
+ example:
+ customerId: '2345'
+ owners:
+ minItems: 1
+ description: Array of owner objects that you can use to add owners to the funding recipient.
+ type: array
+ xml:
+ wrapped: true
+ items:
+ xml:
+ name: owners
+ type: object
+ title: owner
+ required: &ref_27
+ - firstName
+ - lastName
+ - dateOfBirth
+ - identifiers
+ - contactMethods
+ - relationship
+ - address
+ properties: &ref_28
+ ownerId:
+ type: integer
+ description: Unique identifier of the owner.
+ readOnly: true
+ example: 4564
+ firstName:
+ type: string
+ description: Owner's first name.
+ example: Jane
+ maxLength: 50
+ middleName:
+ type: string
+ description: Owner's middle name.
+ example: Helen
+ maxLength: 50
+ lastName:
+ type: string
+ description: Owner's last name.
+ example: Doe
+ maxLength: 50
+ dateOfBirth:
+ type: string
+ format: date
+ description: Owner's date of birth. The format of this value is **YYYY-MM-DD**.
+ example: '1964-03-22'
+ address:
+ required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ identifiers:
+ minItems: 1
+ type: array
+ xml:
+ wrapped: true
+ description: Array of identifier objects.
+ example:
+ - type: nationalId
+ value: xxxxx4320
+ items:
+ required: &ref_186
+ - type
+ - value
+ type: object
+ title: identifier
+ properties: &ref_187
+ type:
+ type: string
+ description: Type of ID provided to verify identity.
+ enum:
+ - nationalId
+ value:
+ type: string
+ description: Social Security Number (SSN) or Social Insurance Number (SIN).
+ example: xxxxx4320
+ contactMethods:
+ type: array
+ minItems: 1
+ maxItems: 4
+ uniqueItems: true
+ description: |
+ Array of contactMethod objects.
+ **Note**: If you are adding information about an owner, you must provide at least an email address. If you are adding information about a contact, you must provide at least a contact number.
+ items:
+ oneOf: *ref_2
+ relationship:
+ description: Object that contains information about the owner's relationship to the business.
+ allOf:
+ - required: &ref_241
+ - isControlProng
+ type: object
+ title: Owner relationship
+ description: Object that contains information about the owner's relationship to the business.
+ properties: &ref_242
+ equityPercentage:
+ type: number
+ description: Percentage of the business that the owner holds.
+ format: percentage
+ example: 35.4
+ default: 0
+ title:
+ type: string
+ description: Owner's job title within the business.
+ example: CFO
+ isControlProng:
+ type: boolean
+ description: Indicates if the owner is a control prong within the business. Only one control prong should be identified.
+ example: true
+ isAuthorizedSignatory:
+ type: boolean
+ description: Indicates if the owner is an authorized signatory within the business.
+ example: false
+ fundingAccounts:
+ minItems: 1
+ description: Array of fundingAccount objects that you can use to add funding accounts to the funding recipient.
+ type: array
+ xml:
+ wrapped: true
+ items:
+ xml:
+ name: fundingAccount
+ required: &ref_19
+ - nameOnAccount
+ - paymentMethods
+ - type
+ - use
+ type: object
+ title: funding account
+ properties: &ref_20
+ fundingAccountId:
+ type: integer
+ description: Unique identifier of the funding account.
+ readOnly: true
+ example: 123
+ createdDate:
+ type: string
+ description: Date the funding account was created.
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ lastModifiedDate:
+ type: string
+ description: Date the funding account was last modified.
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ status:
+ type: string
+ description: Status of the funding account.
+ readOnly: true
+ example: pending
+ enum:
+ - approved
+ - rejected
+ - pending
+ - hold
+ type:
+ type: string
+ description: Type of funding account.
+ enum:
+ - checking
+ - savings
+ - generalLedger
+ use:
+ type: string
+ description: |
+ Indicates if we send funds or withdraw funds from the account.
+ - `credit` - Send funds to the account.
+ - `debit` - Withdraw funds from the account.
+ - `creditAndDebit` - Send funds and withdraw funds from the account.
+ enum:
+ - credit
+ - debit
+ - creditAndDebit
+ nameOnAccount:
+ type: string
+ description: Name of the account holder.
+ example: Jane Doe
+ paymentMethods:
+ description: Array of paymentMethod objects.
+ uniqueItems: true
+ type: array
+ xml: &ref_244
+ wrapped: true
+ items: &ref_245
+ title: payment method
+ xml:
+ name: paymentMethod
+ oneOf:
+ - type: object
+ title: ACH payment method
+ properties: &ref_243
+ type:
+ type: string
+ description: Payment method that we use to send funds to the account.
+ enum:
+ - ach
+ value:
+ required:
+ - accountNumber
+ - routingNumber
+ type: object
+ description: Object that contains information about the funding account.
+ properties:
+ routingNumber:
+ maxLength: 9
+ minLength: 9
+ type: string
+ description: Routing number of the funding account.
+ example: '123456789'
+ accountNumber:
+ maxLength: 12
+ minLength: 9
+ type: string
+ description: Account number of the funding account.
+ example: '1234567890'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: '[Metadata](/api/metadata) object you can use to include custom data with your request.'
+ example:
+ internalRef: '2345'
+ links:
+ readOnly: true
+ type: array
+ description: Array of HATEOAS links.
+ items:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: &ref_3
+ rel:
+ type: string
+ method:
+ type: string
+ href:
+ type: string
+ required: &ref_4
+ - href
+ - method
+ - rel
+ example: &ref_5
+ rel: previous
+ method: get
+ href:
+ responses:
+ '201':
+ description: Successful request. We created the funding recipient.
+ content:
+ application/json:
+ schema:
+ required: &ref_6
+ - address
+ - contactMethods
+ - recipientType
+ - taxId
+ - owners
+ - fundingAccounts
+ - doingBuinessAs
+ type: object
+ title: funding recipient
+ properties: &ref_7
+ recipientId:
+ type: integer
+ description: Unique identifier of the funding recipient.
+ readOnly: true
+ example: 1
+ status:
+ type: string
+ description: Indicates if we have approved the funding recipient.
+ readOnly: true
+ example: approved
+ enum:
+ - approved
+ - rejected
+ - pending
+ createdDate:
+ type: string
+ description: Date the funding recipient was created.
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ lastModifiedDate:
+ type: string
+ description: Date the funding recipient was last modified.
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ recipientType:
+ type: string
+ example: privateCorporation
+ enum:
+ - privateCorporation
+ - publicCorporation
+ - nonProfit
+ - government
+ - privateLlc
+ - publicLlc
+ - privatePartnership
+ - publicPartnership
+ - soleProprietor
+ description: Type or legal structure of the funding recipient.
+ taxId:
+ type: string
+ description: Employer identification number (EIN) or Social Security number (SSN).
+ example: '123456789'
+ charityId:
+ type: string
+ description: Government identifier of the charity.
+ doingBuinessAs:
+ type: string
+ description: Legal name that the business operates under.
+ address:
+ type: object
+ description: Address of the funding recipient.
+ oneOf:
+ - required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ contactMethods:
+ type: array
+ minItems: 1
+ xml:
+ wrapped: true
+ description: Array of contactMethod objects for the funding recipient.
+ items:
+ oneOf: *ref_2
+ example:
+ - type: email
+ value: david.smith@example.com
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: '[Metadata](/api/metadata) object you can use to include custom data with your request.'
+ example:
+ customerId: '2345'
+ owners:
+ readOnly: true
+ description: Array of owner objects associated with the funding recipient.
+ type: array
+ xml:
+ wrapped: true
+ items:
+ type: object
+ title: owner summary
+ xml:
+ name: owner
+ properties:
+ ownerId:
+ type: integer
+ description: Unique identifier of the owner.
+ example: 4564
+ link:
+ type: object
+ description: Array of HATEOAS links for viewing the owner.
+ properties:
+ rel:
+ type: string
+ example: owner
+ href:
+ type: string
+ example: https://api.payroc.com/v1/owners/4564
+ method:
+ type: string
+ example: get
+ fundingAccounts:
+ readOnly: true
+ description: Array of fundingAccount objects associated with the funding recipient.
+ type: array
+ xml:
+ wrapped: true
+ items:
+ type: object
+ title: funding account summary
+ xml:
+ name: funding account
+ properties:
+ fundingAccountId:
+ type: integer
+ description: Unique identifier of the funding account.
+ example: 2
+ status:
+ type: string
+ example: pending
+ description: Status of the funding account.
+ enum:
+ - approved
+ - rejected
+ - pending
+ - hold
+ link:
+ type: object
+ description: HATEOAS links for viewing the funding account.
+ properties:
+ rel:
+ type: string
+ example: fundingAccount
+ href:
+ type: string
+ example: https://api.payroc.com/v1/funding-accounts/2
+ method:
+ type: string
+ example: get
+ example:
+ - fundingAccountId: 1
+ status: approved
+ link:
+ rel: fundingAccount
+ href: https://api.payroc.com/v1/funding-accounts/1
+ method: get
+ - fundingAccountId: 2
+ status: rejected
+ link:
+ rel: fundingAccount
+ href: https://api.payroc.com/v1/funding-accounts/2
+ method: get
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: &ref_22
+ type: string
+ '400':
+ description: Validation errors
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_8
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#bad-request
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Bad request
+ status:
+ type: integer
+ description: Http status code
+ example: 400
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: One or more validation errors occurred, see error section for more info
+ errors:
+ type: array
+ items:
+ type: object
+ properties:
+ parameter:
+ type: string
+ description: The parameter or field causing the issues
+ example: start_time
+ detail:
+ type: string
+ description: Short detail of the validation errors
+ example: invalid date
+ message:
+ type: string
+ description: Error message
+ example: Expected time, got '' for start_time
+ fundingAccountId:
+ type: integer
+ description: Identifier for funding account.
+ example: 1234
+ required: &ref_9
+ - type
+ - title
+ - detail
+ - status
+ examples:
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: &ref_23
+ type: https://docs.payroc.com/api/errors#idempotency-key-missing
+ title: Idempotency-Key header missing
+ status: 400
+ detail: An 'Idempotency-Key' must be supplied for this request
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: &ref_10
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: start_time
+ detail: invalid date
+ message: Expected time, got '' for start_time
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: &ref_16
+ type: https://docs.payroc.com/api/errors#kyc-check-failed
+ title: Failed KYC Checks
+ status: 400
+ detail: Entity has been rejected due to failing KYC checks
+ '401':
+ description: Identity could not be verified
+ content: &ref_11
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_220
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#not-authorized
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Not Authorized
+ status:
+ type: integer
+ description: Http status code
+ example: 401
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: You do not have the required permissions to perform this action
+ required: &ref_221
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ notAuthorized:
+ summary: Not Authorized
+ description: Your identity could not be verified
+ value: &ref_442
+ type: https://docs.payroc.com/api/errors#not-authorized
+ title: Not Authorized
+ status: 401
+ detail: Your identity could not be verified
+ '403':
+ description: Do not have permissions to perform this action
+ content: &ref_12
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_222
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#forbidden
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Forbidden
+ status:
+ type: integer
+ description: Http status code
+ example: 403
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: You do not have the required permissions to perform this action
+ instance:
+ type: string
+ description: Resource path the action was attempted on
+ example: https://api.payroc.com/v1/webhook/3
+ resource:
+ type: string
+ description: Resource the action was attempted on
+ example: webhook
+ required: &ref_223
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ forbidden:
+ summary: Forbidden
+ description: You do not have the required permission
+ value: &ref_443
+ type: https://docs.payroc.com/api/errors#forbidden
+ title: Forbidden
+ status: 403
+ detail: You do not have the required permissions to perform this action
+ instance: https://api.payroc.com/v1/webhook/3
+ resource: webhook
+ '406':
+ description: Not acceptable
+ content: &ref_18
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_226
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#not-acceptable
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Not acceptable
+ status:
+ type: integer
+ description: Http status code
+ example: 406
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: Resource does not support the representation requested.
+ required: &ref_227
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ notAcceptable:
+ summary: Not acceptable
+ description: Requested representation not supported
+ value: &ref_445
+ type: https://docs.payroc.com/api/errors#not-acceptable
+ title: Not acceptable
+ status: 406
+ detail: Resource does not support the representation requested
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_24
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#resource-already-exists
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Resource already exists
+ status:
+ type: integer
+ description: Http status code
+ example: 409
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: The resource you attempted to create already exists
+ instance:
+ type: string
+ description: Resource path to the existing resource
+ example: https://api.payroc.com/v1/webhook/3
+ required: &ref_25
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: &ref_26
+ type: https://docs.payroc.com/api/errors#idempotency-key-in-use
+ title: Idempotency-Key in use
+ status: 409
+ detail: '''Idempotency-Key'' is already in use against a different request'
+ '500':
+ description: An error has occured
+ content: &ref_13
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_230
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#api-error
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Api error
+ status:
+ type: integer
+ description: Http status code
+ example: 500
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: Unable to process your request at this time
+ errors:
+ type: array
+ items:
+ type: object
+ properties:
+ message:
+ type: string
+ description: Error message
+ example: Service offline
+ required: &ref_231
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ apiError:
+ summary: Api error
+ description: Unable to process your request.
+ value: &ref_444
+ type: https://docs.payroc.com/api/errors#api-error
+ title: Api error
+ status: 500
+ detail: We are unable to process your request at this time
+ errors:
+ - message: Service offline
+ get:
+ tags:
+ - Funding recipients
+ summary: List funding recipients
+ description: Retrieve a list of all funding recipients associated with the ISV.
+ operationId: listFundingRecipients
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: &ref_29
+ type: string
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: &ref_30
+ type: string
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: &ref_31
+ type: integer
+ default: 10
+ maximum: 100
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of all funding recipients.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated funding recipients
+ allOf: &ref_240
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: &ref_32
+ limit:
+ type: number
+ description: Maximum number of results that we return for each page.
+ example: 25
+ count:
+ type: number
+ description: Number of results that we returned.
+ example: 23
+ hasMore:
+ type: boolean
+ description: Indicates that further results are available.
+ example: false
+ links:
+ type: array
+ description: Reference links to navigate to the previous page of results, or to the next page of results.
+ example:
+ - rel: previous
+ method: get
+ href:
+ - rel: next
+ method: get
+ href:
+ items:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ - type: object
+ properties:
+ data:
+ type: array
+ description: An array of funding recipients
+ items:
+ required: *ref_6
+ type: object
+ title: funding recipient
+ properties: *ref_7
+ examples:
+ paginatedFundingRecipients:
+ summary: Paginated funding recipients.
+ description: Paginated list of funding recipients.
+ value: &ref_441
+ limit: 10
+ count: 1
+ hasMore: false
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/funding-recipients?before=12345&limit=10
+ data:
+ - recipientId: 12345
+ status: approved
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ recipientType: privateCorporation
+ taxId: '123456789'
+ doingBuinessAs: Example llc
+ address:
+ address1: 1 Example Ave.
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: phone
+ value: 123 456 7890
+ metadata:
+ customerId: '12345'
+ owners:
+ - ownerId: 4564
+ link:
+ rel: owner
+ method: get
+ href: https://api.payroc.com/v1/owners/4564
+ fundingAccounts:
+ - fundingAccountId: 1
+ status: approved
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/1
+ - fundingAccountId: 2
+ status: hold
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/2
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: &ref_47
+ limit: 10
+ count: 0
+ hasMore: false
+ links: []
+ data: []
+ '400':
+ description: Invalid request
+ content: &ref_14
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ badRequest:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-recipients/{recipientId}:
+ get:
+ tags:
+ - Funding recipients
+ summary: Retrieve a funding recipient
+ description: Retrieve a specific funding recipient.
+ operationId: getFundingRecipient
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: &ref_15
+ type: integer
+ responses:
+ '200':
+ description: Successful request. Returns the requested funding recipient.
+ content:
+ application/json:
+ schema:
+ required: *ref_6
+ type: object
+ title: funding recipient
+ properties: *ref_7
+ examples:
+ fundingRecipient:
+ summary: Funding recipient.
+ description: Funding recipients.
+ value: &ref_446
+ recipientId: 12345
+ status: approved
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ recipientType: privateCorporation
+ taxId: '123456789'
+ doingBuinessAs: Example llc
+ address:
+ address1: 1 Example Ave.
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: phone
+ value: 123 456 7890
+ metadata:
+ customerId: '12345'
+ owners:
+ - ownerId: 4564
+ link:
+ rel: owner
+ method: get
+ href: https://api.payroc.com/v1/owners/4564
+ fundingAccounts:
+ - fundingAccountId: 1
+ status: approved
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/1
+ - fundingAccountId: 2
+ status: hold
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/2
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: &ref_17
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_224
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#not-found
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Not found
+ status:
+ type: integer
+ description: Http status code
+ example: 404
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: Specified account was not found
+ resource:
+ type: string
+ description: Resource that was not found
+ example: Account
+ required: &ref_225
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ notFound:
+ summary: Not found
+ description: Resource could not be found
+ value: &ref_447
+ type: https://docs.payroc.com/api/errors#not-found
+ title: Not found
+ status: 404
+ detail: Resource not found
+ resource: (The Type of the Resource)
+ '500':
+ description: An error has occured
+ content: *ref_13
+ put:
+ tags:
+ - Funding recipients
+ summary: Update funding recipient
+ description: Update a funding recipient. If you make significant changes, we may need to approve the funding recipient again.
+ operationId: updateFundingRecipient
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: *ref_6
+ type: object
+ title: funding recipient
+ properties: *ref_7
+ responses:
+ '204':
+ description: Successful request. We updated the funding recipient.
+ '400':
+ description: Validation errors
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: *ref_16
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ tags:
+ - Funding recipients
+ summary: Delete funding recipient
+ description: Delete a funding recipient. This includes funding accounts and owners linked to the funding recipient.
+ operationId: deleteFundingRecipient
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ responses:
+ '204':
+ description: Successful request. We deleted the funding recipient.
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-recipients/{recipientId}/funding-accounts:
+ get:
+ tags:
+ - Funding recipients
+ summary: List funding accounts
+ description: Retrieve all funding accounts associated with the funding recipient.
+ operationId: listFundRecipientFundingAccounts
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ responses:
+ '200':
+ description: Successful request. Returns a list of all funding accounts associated with the funding recipient.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ examples:
+ fundingAccounts:
+ summary: List of funding accounts
+ description: List of funding accounts.
+ value: &ref_448
+ - fundingAccountId: 123
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ type: checking
+ use: credit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****6789'
+ accountNumber: '******7890'
+ metadata:
+ internalRef: '2345'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/funding-recipient/2
+ method: get
+ - fundingAccountId: 124
+ createdDate: '2021-01-08T12:00:00.000Z'
+ lastModifiedDate: '2021-01-08T12:00:00.000Z'
+ status: pending
+ type: checking
+ use: debit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****8725'
+ accountNumber: '******3491'
+ metadata:
+ internalRef: '2346'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/funding-recipient/2
+ method: get
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ post:
+ tags:
+ - Funding recipients
+ summary: Create funding account
+ description: Create a new funding account, and add it to the funding recipient.
+ operationId: createFundRecipientFundingAccount
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ responses:
+ '201':
+ description: Successful request. We created the funding account and added it to the funding recipient.
+ content:
+ application/json:
+ schema:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ examples:
+ fundingAccount:
+ summary: Funding account
+ description: Funding accounts.
+ value: &ref_449
+ fundingAccountId: 123
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ type: checking
+ use: credit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****6789'
+ accountNumber: '******7890'
+ metadata:
+ internalRef: '2345'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/funding-recipient/2
+ method: get
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation errors
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: *ref_16
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-recipients/{recipientId}/owners:
+ get:
+ tags:
+ - Funding recipients
+ summary: List funding recipient owners
+ description: Retrieve all owners associated with the funding recipient.
+ operationId: listFundRecipientOwners
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ responses:
+ '200':
+ description: Successful request. Returns a list of all owners associated with the funding recipient.
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ post:
+ tags:
+ - Funding recipients
+ summary: Create funding recipient owner
+ description: Create a new owner, and add it to the funding recipient.
+ operationId: createFundRecipientOwner
+ parameters:
+ - name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ responses:
+ '201':
+ description: Successful request. We created the owner and added it to the funding recipient.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation errors
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: *ref_16
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-accounts:
+ get:
+ tags:
+ - Funding accounts
+ summary: List funding accounts
+ description: Retrieve a list of all funding accounts associated with the ISV.
+ operationId: listFundingAccount
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of all funding accounts.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated funding accounts
+ allOf: &ref_248
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of fundingAccount objects.
+ items:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ required:
+ - data
+ examples:
+ fundingAccountExample:
+ summary: Paginated funding accounts
+ value: &ref_450
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts?before=123&limit=2
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts?after=124&limit=2
+ data:
+ - fundingAccountId: 123
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ type: checking
+ use: credit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****6789'
+ accountNumber: '******7890'
+ metadata:
+ internalRef: '2345'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/merchants/1234
+ method: get
+ - fundingAccountId: 124
+ createdDate: '2021-01-08T12:00:00.000Z'
+ lastModifiedDate: '2021-01-08T12:00:00.000Z'
+ status: pending
+ type: checking
+ use: debit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****8725'
+ accountNumber: '******3491'
+ metadata:
+ internalRef: '2346'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/funding-recipient/2
+ method: get
+ noResults:
+ summary: No results found
+ description: No results found
+ value: &ref_451
+ limit: 10
+ count: 0
+ hasMore: false
+ links: []
+ data: []
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-accounts/{fundingAccountId}:
+ get:
+ tags:
+ - Funding accounts
+ summary: Retrieve funding account
+ description: Retrieve a specific funding account.
+ operationId: getFundingAccount
+ parameters:
+ - name: fundingAccountId
+ in: path
+ required: true
+ description: Unique identifier of the funding account.
+ style: simple
+ explode: false
+ schema: &ref_33
+ type: integer
+ responses:
+ '200':
+ description: Successful request. Returns the requested funding account.
+ content:
+ application/json:
+ schema:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ examples:
+ fundingAccountExample:
+ summary: Masked funding account example.
+ value: &ref_452
+ fundingAccountId: 123
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: pending
+ type: checking
+ use: credit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****6789'
+ accountNumber: '******7890'
+ metadata:
+ internalRef: '2345'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/merchants/1234
+ method: get
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ put:
+ tags:
+ - Funding accounts
+ summary: Update funding account
+ description: Update a funding account.
+ operationId: updateFundingAccount
+ parameters:
+ - name: fundingAccountId
+ in: path
+ required: true
+ description: Unique identifier of the funding account.
+ style: simple
+ explode: false
+ schema: *ref_33
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ responses:
+ '204':
+ description: Successful request. We updated the funding account.
+ '400':
+ description: Validation errors
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: *ref_16
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ tags:
+ - Funding accounts
+ summary: Delete funding account
+ description: Delete a funding account.
+ operationId: deleteFundingAccount
+ parameters:
+ - name: fundingAccountId
+ in: path
+ required: true
+ description: Unique identifier of the funding account.
+ style: simple
+ explode: false
+ schema: *ref_33
+ responses:
+ '204':
+ description: Successful request. We deleted the funding account.
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /owners/{ownerId}:
+ get:
+ tags:
+ - Owners
+ summary: Retrieve owner
+ description: Retrieve a specific owner.
+ operationId: getOwner
+ parameters:
+ - name: ownerId
+ in: path
+ description: Unique identifier for the owner.
+ required: true
+ style: simple
+ explode: false
+ schema: &ref_34
+ type: integer
+ example: 4564
+ responses:
+ '200':
+ description: Successful request. Returns the requested owner.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ examples:
+ retrievedOwner:
+ summary: Retrieve owner
+ description: Retrieve a specific owner.
+ value: &ref_453
+ ownerId: 4564
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ dateOfBirth: '1964-03-22'
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ identifiers:
+ - type: nationalId
+ value: xxxxx4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ relationship:
+ equityPercentage: 35.4
+ title: CFO
+ isControlProng: true
+ isAuthorizedSignatory: false
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ put:
+ tags:
+ - Owners
+ summary: Update owner
+ description: Update a specific owner.
+ operationId: updateOwner
+ parameters:
+ - name: ownerId
+ in: path
+ description: Unique identifier for the owner.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_34
+ example: 4564
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ examples:
+ updateOwner:
+ summary: Update owner
+ description: Update a specific owner.
+ value: &ref_454
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ dateOfBirth: '1964-03-22'
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ identifiers:
+ - type: nationalId
+ value: 000-00-4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ relationship:
+ equityPercentage: 35.4
+ title: CFO
+ isControlProng: true
+ isAuthorizedSignatory: false
+ responses:
+ '204':
+ description: Successful request. We updated the owner.
+ '400':
+ description: Validation errors.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: *ref_16
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ tags:
+ - Owners
+ summary: Delete owner
+ description: Delete a owner.
+ operationId: deleteOwner
+ parameters:
+ - name: ownerId
+ in: path
+ description: Unique identifier for the owner.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_34
+ example: 4564
+ responses:
+ '204':
+ description: Successful request. We deleted the owner.
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /pricing-intents:
+ summary: Provides capabilities to list and create pricing intents.
+ get:
+ summary: List pricing intents
+ description: Retrieve a list of pricing intents.
+ operationId: listPricingIntents
+ tags:
+ - Pricing intents
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful response. Returns a list of pricing intents.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated pricing intents
+ description: Object that contains information about your pricing intents.
+ allOf: &ref_277
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of pricing intent objects.
+ items:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: &ref_48
+ - type: object
+ title: pricing intent version 4.0
+ description: Object that contains information about a pricing intent for Merchant Processing Agreement (MPA) 4.0.
+ allOf: &ref_276
+ - type: object
+ title: base pricing intent
+ description: Object that contains information about the base fees.
+ properties: &ref_249
+ id:
+ type: string
+ description: Unique identifier of the pricing intent.
+ readOnly: true
+ createdDate:
+ type: string
+ example: '2020-09-22T09:00:00'
+ format: date-time
+ description: Creation date of the pricing intent.
+ readOnly: true
+ lastUpdatedDate:
+ type: string
+ example: '2020-09-22T09:00:00'
+ format: date-time
+ description: Date of the most recent change to the pricing intent.
+ readOnly: true
+ status:
+ type: string
+ description: Status of the pricing intent.
+ readOnly: true
+ enum:
+ - active
+ - pendingReview
+ - rejected
+ key:
+ type: string
+ description: Unique identifier that you use to connect a merchant to the pricing intent.
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: '[Metadata](/api/metadata) object that contains your custom data.'
+ example:
+ internalReference: '2345'
+ required: &ref_250
+ - key
+ - type: object
+ title: US pricing agreement version 4.0
+ description: Object that contains information about U.S. pricing intents for Merchant Processing Agreement (MPA) 4.0.
+ required: &ref_184
+ - country
+ - version
+ - base
+ properties: &ref_185
+ country:
+ type: string
+ description: Indicates the country that the pricing intent applies to.
+ enum:
+ - US
+ version:
+ type: string
+ description: Version of the MPA.
+ default: '4.0'
+ enum:
+ - '4.0'
+ base:
+ type: object
+ title: US base fees
+ description: Object that contains information about U.S. base fees.
+ properties: &ref_251
+ addressVerification:
+ description: Fee for each address verification request. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ example: 5
+ minimum: 0
+ nullable: true
+ annualFee:
+ type: object
+ description: Object that contains information about the annual fee.
+ properties:
+ billInMonth:
+ type: string
+ description: Indicates the month in which we collect the annual fee.
+ default: december
+ enum:
+ - june
+ - december
+ amount:
+ description: Annual fee. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 100
+ required:
+ - amount
+ regulatoryAssistanceProgram:
+ type: integer
+ description: Annual fee for the regulatory assistance program. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 15
+ nullable: true
+ pciNonCompliance:
+ type: integer
+ description: Monthly fee for PCI noncompliance. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 4995
+ default: 4995
+ merchantAdvantage:
+ type: integer
+ description: Monthly fee for Payroc Advantage. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 10
+ nullable: true
+ platinumSecurity:
+ description: Object that contains information about the Platinum Security fee.
+ type: object
+ oneOf:
+ - type: object
+ title: Monthly platinum security
+ required:
+ - billingFrequency
+ properties:
+ billingFrequency:
+ type: string
+ description: Indicates whether we bill your account monthly or annually.
+ enum:
+ - monthly
+ amount:
+ readOnly: true
+ description: Fee for Platinum Security. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ example: 1295
+ default: 1295
+ - type: object
+ title: Annual platinum security
+ required:
+ - billingFrequency
+ properties:
+ billingFrequency:
+ type: string
+ description: Indicates whether we bill your account monthly or annually.
+ enum:
+ - annual
+ amount:
+ readOnly: true
+ description: Fee for the Platinum Security, this is returned in the lowest unit of currency. For example, cents.
+ type: integer
+ example: 15540
+ default: 15540
+ maintenance:
+ type: integer
+ description: Monthly fee for maintenance. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 500
+ minimum:
+ type: integer
+ description: Monthly fee that we charge when the merchant doesn't meet the minimum fee amount. This monthly fee is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 100
+ voiceAuthorization:
+ type: integer
+ description: Fee for each voice authorization. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 95
+ default: 95
+ chargeback:
+ type: integer
+ description: Fee for each chargeback. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 2500
+ default: 2500
+ retrieval:
+ type: integer
+ description: Fee for each retrieval. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 1500
+ default: 1500
+ batch:
+ type: integer
+ description: Fee for each batch. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 1500
+ earlyTermination:
+ type: integer
+ description: Fee for early termination. The value is in the currency's lowest denomination, for example, cents.
+ minimum: 0
+ example: 57500
+ default: 57500
+ required: &ref_252
+ - addressVerification
+ - annualFee
+ - regulatoryAssistanceProgram
+ - merchantAdvantage
+ - batch
+ - maintenance
+ - minimum
+ processor:
+ type: object
+ title: US processor fees
+ description: Object that contains information about U.S. processor fees.
+ properties: &ref_273
+ card:
+ type: object
+ description: Object that contains information about card fees.
+ oneOf:
+ - type: object
+ title: Interchange Plus Plan
+ description: Object that contains information about Interchange Plus.
+ properties: &ref_253
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - interchangePlus
+ fees:
+ description: Object that contains information about the fees.
+ type: object
+ properties:
+ mastercardVisaDiscover:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: &ref_35
+ volume:
+ description: Percentage of total transaction amount that the processor charges the merchant.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ amex:
+ oneOf:
+ - type: object
+ title: American Express OptBlue
+ required:
+ - type
+ - volume
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - optBlue
+ volume:
+ description: Percentage of the total transaction amount that the processor charges the merchant.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ - type: object
+ title: American Express Direct
+ required:
+ - type
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - direct
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ pinDebit:
+ type: object
+ required: &ref_36
+ - additionalDiscount
+ - transaction
+ - monthlyAccess
+ properties: &ref_37
+ additionalDiscount:
+ description: Percentage of additional discount.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ monthlyAccess:
+ description: Monthly access fee for using PIN-debit services. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ electronicBenefitsTransfer:
+ type: object
+ required: &ref_38
+ - transaction
+ properties: &ref_39
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ enhancedInterchange:
+ type: object
+ required: &ref_40
+ - enrollment
+ - creditToMerchant
+ properties: &ref_41
+ enrollment:
+ description: Enrollment fee for the enhanced interchange services. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ creditToMerchant:
+ description: Percentage of additional discount.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ specialityCards:
+ type: object
+ required: &ref_42
+ - transaction
+ properties: &ref_43
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ required:
+ - mastercardVisaDiscover
+ required: &ref_254
+ - planType
+ - fees
+ - type: object
+ title: Interchange Plus with three tiers
+ description: Object that contains information about Interchange Plus with three tiers.
+ properties: &ref_255
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - interchangePlusTiered3
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ mastercardVisaDiscover:
+ type: object
+ required: &ref_44
+ - qualifiedRate
+ - midQualRate
+ - nonQualRate
+ properties: &ref_45
+ qualifiedRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ midQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ nonQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ amex:
+ oneOf:
+ - type: object
+ title: American Express OptBlue
+ required:
+ - type
+ - qualifiedRate
+ - midQualRate
+ - nonQualRate
+ properties:
+ type:
+ type: string
+ enum:
+ - optBlue
+ qualifiedRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ midQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ nonQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ - type: object
+ title: American Express Direct
+ required:
+ - type
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - direct
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ enhancedInterchange:
+ type: object
+ required: *ref_40
+ properties: *ref_41
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - mastercardVisaDiscover
+ required: &ref_256
+ - planType
+ - fees
+ - type: object
+ title: Tiered pricing with three tiers
+ description: Object that contains information about tiered pricing with three tiers.
+ properties: &ref_257
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - tiered3
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ mastercardVisaDiscover:
+ type: object
+ required: *ref_44
+ properties: *ref_45
+ amex:
+ oneOf:
+ - type: object
+ title: American Express OptBlue
+ required:
+ - type
+ - qualifiedRate
+ - midQualRate
+ - nonQualRate
+ properties:
+ type:
+ type: string
+ enum:
+ - optBlue
+ qualifiedRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ midQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ nonQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ - type: object
+ title: American Express Direct
+ required:
+ - type
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - direct
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - mastercardVisaDiscover
+ required: &ref_258
+ - planType
+ - fees
+ - type: object
+ title: Tiered pricing with four tiers
+ description: Object that contains information about tiered pricing with four tiers.
+ properties: &ref_259
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - tiered4
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ mastercardVisaDiscover:
+ type: object
+ allOf: &ref_46
+ - type: object
+ required: *ref_44
+ properties: *ref_45
+ - type: object
+ required:
+ - premiumRate
+ properties:
+ premiumRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ amex:
+ oneOf:
+ - type: object
+ title: American Express OptBlue
+ required:
+ - type
+ - qualifiedRate
+ - midQualRate
+ - nonQualRate
+ properties:
+ type:
+ type: string
+ enum:
+ - optBlue
+ qualifiedRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ midQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ nonQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ - type: object
+ title: American Express Direct
+ required:
+ - type
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - direct
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - mastercardVisaDiscover
+ required: &ref_260
+ - planType
+ - fees
+ - type: object
+ title: Tiered pricing with six tiers
+ description: Object that contains information about tiered pricing with six tiers.
+ properties: &ref_262
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - tiered6
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ mastercardVisaDiscover:
+ type: object
+ allOf: &ref_261
+ - type: object
+ allOf: *ref_46
+ - type: object
+ required:
+ - regulatedCheckCard
+ - unregulatedCheckCard
+ properties:
+ regulatedCheckCard:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ unregulatedCheckCard:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ amex:
+ oneOf:
+ - type: object
+ title: American Express OptBlue
+ required:
+ - type
+ - qualifiedRate
+ - midQualRate
+ - nonQualRate
+ properties:
+ type:
+ type: string
+ enum:
+ - optBlue
+ qualifiedRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ midQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ nonQualRate:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ - type: object
+ title: American Express Direct
+ required:
+ - type
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - direct
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - mastercardVisaDiscover
+ required: &ref_263
+ - planType
+ - fees
+ - type: object
+ title: Flat Rate Plan
+ description: Object that contains information about Flat Rate.
+ properties: &ref_264
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - flatRate
+ fees:
+ description: Object that contains information about the Flat Rate fees.
+ type: object
+ properties:
+ standardCards:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ amex:
+ oneOf:
+ - type: object
+ title: American Express Direct
+ required:
+ - type
+ - transaction
+ properties:
+ type:
+ type: string
+ enum:
+ - direct
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - standardCards
+ required: &ref_265
+ - planType
+ - fees
+ - type: object
+ title: Consumer Choice Plan
+ description: Object that contains information about ConsumerChoice.
+ properties: &ref_266
+ planType:
+ type: string
+ description: Type of processing plan.
+ enum:
+ - consumerChoice
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ monthlySubscription:
+ description: Fee for the monthly subscription. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ volume:
+ description: Merchant-authorized percentage on non-cash transactions.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - monthlySubscription
+ - volume
+ required: &ref_267
+ - planType
+ - fees
+ - type: object
+ title: RewardPay Plan
+ description: Object that contains information about RewardPay.
+ properties: &ref_268
+ planType:
+ description: Type of processing plan.
+ type: string
+ enum:
+ - rewardPay
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ monthlySubscription:
+ description: Fee for the monthly subscription. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ cardChargePercentage:
+ description: Percentage of the total transaction amount that the processor charges the cardholder.
+ type: number
+ readOnly: true
+ default: 3
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ merchantChargePercentage:
+ description: Percentage of the total transaction amount that the processor charges the merchant.
+ type: number
+ readOnly: true
+ default: 0.9
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ readOnly: true
+ default: 15
+ tips:
+ description: Indicates how the merchant manages tips.
+ type: string
+ enum:
+ - noTips
+ - prompt
+ - tipAdjust
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - monthlySubscription
+ - tips
+ required: &ref_269
+ - planType
+ - fees
+ - type: object
+ title: RewardPayChoice Plan
+ description: Object that contains information about RewardPayChoice.
+ properties: &ref_270
+ planType:
+ description: Type of processing plan.
+ type: string
+ enum:
+ - rewardPayChoice
+ fees:
+ type: object
+ description: Object that contains information about the fees.
+ properties:
+ monthlySubscription:
+ description: Fee for the monthly subscription. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ debit:
+ description: Object that contains information about fees for debit transactions.
+ properties:
+ option:
+ type: string
+ enum:
+ - interchangePlus
+ - flatRate
+ volume:
+ description: Percentage of the total transaction that the processor charges the merchant.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ required:
+ - volume
+ - transaction
+ credit:
+ type: object
+ description: Object that contains information about fees for credit transactions.
+ properties:
+ tips:
+ description: Indicates how the merchant manages tips.
+ type: string
+ enum:
+ - noTips
+ - prompt
+ - tipAdjust
+ cardChargePercentage:
+ description: Percentage of the total transaction amount that the processor charges the cardholder.
+ type: number
+ readOnly: true
+ default: 3
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ merchantChargePercentage:
+ description: Percentage of the total transaction amount that the processor charges the merchant.
+ type: number
+ readOnly: true
+ default: 0.9
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ merchantChargePerTransaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ required:
+ - monthlySubscription
+ - debit
+ - credit
+ required: &ref_271
+ - planType
+ - fees
+ ach:
+ type: object
+ properties: &ref_272
+ fees:
+ type: object
+ properties:
+ transaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 50
+ batch:
+ description: Fee for each batch. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 1000
+ returns:
+ description: Fee for each return. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 400
+ unauthorizedReturn:
+ description: Fee for each unauthorized return. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 1999
+ statement:
+ description: Fee for each statement. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 800
+ monthlyMinimum:
+ description: Minimum monthly value of transactions. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 20000
+ accountVerification:
+ description: Fee for each account verification. The value is in the currency's lowest denomination, for example, cents.
+ type: integer
+ minimum: 0
+ example: 100
+ discountRateUnder10000:
+ description: Percentage discount for ACH transfers less than $10,000.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ discountRateAbove10000:
+ description: Percentage discount for ACH transfers equal to or more than $10,000.
+ allOf:
+ - description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ required:
+ - transaction
+ - batch
+ - returns
+ - unauthorizedReturn
+ - statement
+ - monthlyMinimum
+ - accountVerification
+ - discountRateUnder10000
+ - discountRateAbove10000
+ gateway:
+ type: object
+ description: Object that contains information about the gateway fees.
+ title: gateway fees
+ properties: &ref_274
+ fees:
+ type: object
+ description: Object that contains information about the gateway fees.
+ properties:
+ monthly:
+ description: Monthly fee for the gateway. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ setup:
+ description: Fee for setting up your account with the gateway. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ perTransaction:
+ description: Fee for each transaction. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ perDeviceMonthly:
+ description: Monthly fee for each device. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ additionalServiceMonthly:
+ description: Monthly fee for additional service. The value is in the currency's lowest denomination, for example, cents.
+ allOf:
+ - type: integer
+ minimum: 0
+ required:
+ - monthly
+ - setup
+ - perTransaction
+ - perDeviceMonthly
+ - additionalServiceMonthly
+ required: &ref_275
+ - fees
+ examples:
+ paginatedResults:
+ summary: Paginated pricing intent
+ description: Example of a paginated pricing intent.
+ value: &ref_455
+ limit: 1
+ count: 1
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/pricing-intents?before=5&limit=1
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/pricing-intents?after=5&limit=1
+ data:
+ - id: '5'
+ createdDate: '2020-09-22T09:00:00'
+ lastUpdatedDate: '2020-09-22T09:00:00'
+ status: pendingReview
+ key: base
+ country: US
+ version: '4.0'
+ base:
+ addressVerification: 5
+ annualFee:
+ billInMonth: december
+ amount: 100
+ regulatoryAssistanceProgram: 15
+ pciNonCompliance: 4995
+ merchantAdvantage: 10
+ platinumSecurity:
+ billingFrequency: monthly
+ amount: 1295
+ maintenance: 500
+ minimum: 100
+ voiceAuthorization: 95
+ chargeback: 2500
+ retrieval: 1500
+ batch: 1000
+ earlyTermination: 57500
+ processor:
+ card:
+ planType: interchangePlus
+ fees:
+ mastercardVisaDiscover:
+ volume: 1.25
+ transaction: 5
+ amex:
+ type: optBlue
+ volume: 1.25
+ transaction: 10
+ pinDebit:
+ additionalDiscount: 1.25
+ transaction: 10
+ monthlyAccess: 1200
+ electronicBenefitsTransfer:
+ transaction: 10
+ enhancedInterchange:
+ enrollment: 1000
+ creditToMerchant: 5.25
+ specialityCards:
+ transaction: 10
+ ach:
+ fees:
+ transaction: 50
+ batch: 1000
+ returns: 400
+ unauthorizedReturn: 1999
+ statement: 800
+ monthlyMinimum: 20000
+ accountVerification: 100
+ discountRateUnder10000: 5.25
+ discountRateAbove10000: 10
+ gateway:
+ fees:
+ monthly: 1000
+ setup: 25000
+ perTransaction: 0
+ perDeviceMonthly: 0
+ additionalServiceMonthly: 0
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '500':
+ description: An error has occured
+ content: *ref_13
+ post:
+ summary: Create pricing intent
+ description: Create a pricing intent.
+ tags:
+ - Pricing intents
+ operationId: createPricingIntent
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: *ref_48
+ examples:
+ createPricingIntent:
+ summary: Create pricing intent
+ description: Create a pricing intent.
+ value: &ref_50
+ key: Your-Unique-Identifier
+ metadata:
+ internalReference: '2345'
+ country: US
+ version: '4.0'
+ base:
+ addressVerification: 5
+ annualFee:
+ billInMonth: june
+ amount: 100
+ regulatoryAssistanceProgram: 15
+ pciNonCompliance: 4995
+ merchantAdvantage: 10
+ platinumSecurity:
+ billingFrequency: monthly
+ maintenance: 500
+ minimum: 100
+ voiceAuthorization: 95
+ chargeback: 2500
+ retrieval: 1500
+ batch: 1500
+ earlyTermination: 57500
+ processor:
+ card:
+ planType: interchangePlus
+ fees:
+ mastercardVisaDiscover:
+ volume: 1.25
+ transaction: 5
+ amex:
+ type: optBlue
+ volume: 1.25
+ transaction: 5
+ pinDebit:
+ additionalDiscount: 1.25
+ transaction: 10
+ monthlyAccess: 1200
+ electronicBenefitsTransfer:
+ transaction: 10
+ enhancedInterchange:
+ enrollment: 1000
+ creditToMerchant: 5.25
+ specialityCards:
+ transaction: 10
+ ach:
+ fees:
+ transaction: 50
+ batch: 1000
+ returns: 400
+ unauthorizedReturn: 1999
+ statement: 800
+ monthlyMinimum: 20000
+ accountVerification: 100
+ discountRateUnder10000: 5.25
+ discountRateAbove10000: 10
+ gateway:
+ fees:
+ monthly: 2000
+ setup: 5000
+ perTransaction: 2000
+ perDeviceMonthly: 10
+ additionalServiceMonthly: 10
+ responses:
+ '201':
+ description: Successful response. We created the pricing intent and it is waiting for approval.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: *ref_48
+ examples:
+ createdPricingIntent:
+ summary: Pricing intent
+ description: Pricing intent
+ value: &ref_49
+ id: '5'
+ createdDate: '2020-09-22T09:00:00'
+ lastUpdatedDate: '2020-09-22T09:00:00'
+ status: pendingReview
+ key: string
+ metadata:
+ internalReference: '2345'
+ country: US
+ version: '4.0'
+ base:
+ addressVerification: 5
+ annualFee:
+ billInMonth: december
+ amount: 100
+ regulatoryAssistanceProgram: 15
+ pciNonCompliance: 4995
+ merchantAdvantage: 10
+ platinumSecurity:
+ billingFrequency: monthly
+ amount: 1295
+ maintenance: 500
+ minimum: 100
+ voiceAuthorization: 95
+ chargeback: 2500
+ retrieval: 1500
+ batch: 1000
+ earlyTermination: 57500
+ processor:
+ card:
+ planType: interchangePlus
+ fees:
+ mastercardVisaDiscover:
+ volume: 1.25
+ transaction: 5
+ amex:
+ type: optBlue
+ volume: 1.25
+ transaction: 10
+ pinDebit:
+ additionalDiscount: 1.25
+ transaction: 10
+ monthlyAccess: 1200
+ electronicBenefitsTransfer:
+ transaction: 10
+ enhancedInterchange:
+ enrollment: 1000
+ creditToMerchant: 5.25
+ specialityCards:
+ transaction: 10
+ ach:
+ fees:
+ transaction: 50
+ batch: 1000
+ returns: 400
+ unauthorizedReturn: 1999
+ statement: 800
+ monthlyMinimum: 20000
+ accountVerification: 100
+ discountRateUnder10000: 5.25
+ discountRateAbove10000: 10
+ gateway:
+ fees:
+ monthly: 1000
+ setup: 25000
+ perTransaction: 0
+ perDeviceMonthly: 0
+ additionalServiceMonthly: 0
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /pricing-intents/{pricingIntentId}:
+ summary: Provides create/read/updated/delete capabilities for specific pricing intents
+ parameters:
+ - in: path
+ name: pricingIntentId
+ schema: &ref_211
+ type: string
+ required: true
+ description: Unique identifier of the pricing intent.
+ example: '5'
+ get:
+ summary: Retrieve pricing intent
+ description: Retrieve a specific pricing intent.
+ operationId: getPricingIntent
+ tags:
+ - Pricing intents
+ responses:
+ '200':
+ description: Successful response. Returns the requested pricing intent.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: *ref_48
+ examples:
+ pricingIntent:
+ summary: Pricing intent
+ description: Pricing intent
+ value: *ref_49
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ put:
+ summary: Update pricing intent
+ description: Update a pricing intent.
+ operationId: updatePricingIntent
+ tags:
+ - Pricing intents
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: *ref_48
+ examples:
+ pricingIntent:
+ summary: Create pricing intent
+ description: Create a pricing intent.
+ value: *ref_50
+ responses:
+ '204':
+ description: Resource successfully updated
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ patch:
+ summary: Partially update pricing intent
+ description: |
+ Partially update an existing pricing intent.
+
+ Structure your request to follow the RFC 6902 standard.
+ operationId: patchPricingIntent
+ tags:
+ - Pricing intents
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: array
+ description: A JSONPatch document as defined by RFC 6902
+ example: &ref_77
+ - op: add
+ path: /a/b/c
+ value:
+ - dog
+ - cat
+ - op: remove
+ path: /a/b/c
+ - op: replace
+ path: /a/b/c
+ value: 42
+ - op: move
+ from: /a/b/c
+ path: /a/b/d
+ - op: copy
+ from: /a/b/d
+ path: /a/b/e
+ - op: test
+ path: /a/b/c
+ value: dog
+ items: &ref_78
+ description: JSONPatch document, specified in RFC 6902.
+ required: &ref_278
+ - op
+ - path
+ properties: &ref_279
+ op:
+ type: string
+ description: Action that you want to perform on the resource.
+ enum:
+ - add
+ - remove
+ - replace
+ - move
+ - copy
+ - test
+ path:
+ type: string
+ description: |
+ Location of the value that you want to test, add, or remove.
+
+ If the value for op is `copy` or `move`, the path indicates where you want to move or to copy the value to.
+
+ The format for this value is JSON Pointer.
+ value:
+ type: object
+ description: Value that you want to test or to add to the resource.
+ from:
+ type: string
+ description: |
+ Location of the value that you want to move or to copy.
+
+ The format for this value is JSON Pointer.
+ examples:
+ patchPricingIntentRealistic:
+ summary: Partially update pricing intent
+ description: |
+ Partially update an existing pricing intent.
+
+ Structure your request to follow the RFC 6902 standard.
+ value: &ref_456
+ - op: replace
+ path: /processor/card/fees/mastercardVisaDiscover/volume
+ value: 1.5
+ - op: replace
+ path: /gateway/fees/additionalServiceMonthly
+ value: 16
+ - op: replace
+ path: /base/addressVerification
+ value: 6
+ patchOperations:
+ summary: Example patch operations that apply the RFC 6902 standard
+ description: |
+ Example patch operations that apply the RFC 6902 standard.
+ value: &ref_457
+ - op: add
+ path: /a/b/c
+ value:
+ - 123
+ - 456
+ - op: remove
+ path: /a/b/c
+ - op: replace
+ path: /a/b/c
+ value: 789
+ - op: move
+ from: /a/b/c
+ path: /a/b/d
+ - op: copy
+ from: /a/b/d
+ path: /a/b/e
+ - op: test
+ path: /a/b/c
+ value: 123
+ responses:
+ '200':
+ description: Successful request. We updated the pricing intent.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: *ref_48
+ examples:
+ pricingIntent:
+ summary: Pricing intent
+ description: Pricing intent
+ value: *ref_49
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ summary: Delete pricing intent
+ description: Delete a pricing intent.
+ operationId: deletePricingIntent
+ tags:
+ - Pricing intents
+ responses:
+ '204':
+ description: Successful request. We deleted the pricing intent.
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-instructions:
+ post:
+ tags:
+ - Funding instructions
+ summary: Create funding instruction
+ description: Create funding instructions to tell us how to divide funds between your funding recipients.
+ operationId: createInstruction
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Inform the payfac what to do with the specified funds. **
+ title: funding instruction
+ properties: &ref_51
+ instructionId:
+ type: integer
+ description: Unique identifier of the funding instruction.
+ example: 12345
+ readOnly: true
+ createdDate:
+ type: string
+ description: Date that we created the funding instruction.
+ format: datetime
+ example: '2021-09-05T13:15:00.000Z'
+ readOnly: true
+ lastModifiedDate:
+ type: string
+ description: Date of the most recent change to the funding instruction.
+ format: datetime
+ example: '2021-09-06T18:00:00.000Z'
+ readOnly: true
+ status:
+ type: string
+ description: Status of the funding instruction.
+ enum:
+ - accepted
+ - pending
+ - completed
+ readOnly: true
+ merchants:
+ type: array
+ description: Array of merchantInstruction objects.
+ items:
+ type: object
+ title: merchant instruction
+ description: Instruction indicating which recipients should receive funding from the specific merchant balance.
+ properties:
+ merchantId:
+ type: string
+ description: Unique identifier of the merchant.
+ example: '123456'
+ recipients:
+ type: array
+ description: Array of target fundingAccount objects.
+ minItems: 1
+ items:
+ type: object
+ title: target funding account
+ description: Object that contains information about the target funding account.
+ required:
+ - fundingAccountId
+ - paymentMethod
+ - amount
+ properties:
+ fundingAccountId:
+ type: integer
+ description: Unique identifier of the funding account that we pay the funds into.
+ example: 5432425374
+ paymentMethod:
+ type: string
+ description: Method of payment.
+ enum:
+ - ACH
+ amount:
+ type: object
+ description: Object that contains details about the funds.
+ required:
+ - value
+ properties:
+ value:
+ type: number
+ example: 12350
+ description: Value of funds in the currency's lowest denomination, for example, cents.
+ currency:
+ description: Currency of the values. The default value is USD.
+ type: string
+ default: USD
+ enum:
+ - USD
+ status:
+ readOnly: true
+ type: string
+ description: Status of the funding instruction.
+ enum:
+ - accepted
+ - pending
+ - released
+ - funded
+ - failed
+ - rejected
+ - onHold
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: '[Metadata](/api/metadata) object you can use to include custom data with your request.'
+ example:
+ customerId: '2345'
+ link:
+ readOnly: true
+ description: Array of HATEOAS links for viewing a funding account.
+ type: object
+ properties:
+ rel:
+ type: string
+ example: fundingAccount
+ method:
+ type: string
+ example: get
+ href:
+ type: string
+ example: https://api.payroc.com/v1/funding-accounts/5432425374
+ link:
+ readOnly: true
+ description: Array of HATEOAS links to view the merchant.
+ type: object
+ properties:
+ rel:
+ type: string
+ example: merchant
+ method:
+ type: string
+ example: get
+ href:
+ type: string
+ example: https://api.payroc.com/v1/merchants/123456
+ required:
+ - merchantId
+ - recipients
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: '[Metadata](/api/metadata) object you can use to include custom data with your request.'
+ example:
+ internalInstructionRef: abcdef
+ responses:
+ '201':
+ description: Successful request. We accepted the instructions.
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Inform the payfac what to do with the specified funds. **
+ title: funding instruction
+ properties: *ref_51
+ examples:
+ newInstructions:
+ summary: New instruction accepted.
+ value: &ref_462
+ instructionId: 123
+ createdDate: '2021-09-05T13:15:00.000Z'
+ lastModifiedDate: null
+ status: accepted
+ merchants:
+ - merchantId: '99999'
+ recipients:
+ - status: accepted
+ fundingAccountId: 67890
+ paymentMethod: ACH
+ amount:
+ value: 12350
+ currency: USD
+ metadata:
+ customerId: '2345'
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/67890
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/99999
+ metadata:
+ instructionRef: abcd
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ insufficientFunds:
+ summary: Insufficient funds
+ description: You do not have enough funds to complete the request.
+ value: &ref_52
+ type: https://docs.payroc.com/api/errors#insufficient-funds
+ title: Insufficient funds
+ status: 400
+ detail: You do not have the required funds to complete this transaction
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ fundingAccountsRestrcited:
+ summary: Funding accounts restricted
+ description: Funding accounts restricted.
+ value: &ref_54
+ type: https://docs.payroc.com/api/errors#funding-accounts-restricted
+ title: Funding accounts restricted
+ status: 400
+ detail: One or more funding accounts are restricted and can't receive funding instructions
+ errors:
+ - fundingAccountId: 1234
+ message: Funding account on hold
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Funding instructions
+ summary: List funding instructions
+ description: Retrieve a list of funding instructions for a specific date range.
+ operationId: listInstructions
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: dateFrom
+ in: query
+ description: Retrieve activity that occured since `dateFrom`. We can return activity from only the last two years.
+ required: true
+ schema:
+ type: string
+ format: date
+ example: '2021-09-01'
+ - name: dateTo
+ in: query
+ required: true
+ description: Retrieve activity that occured before `dateTo`.
+ schema:
+ type: string
+ format: date
+ example: '2021-09-30'
+ responses:
+ '200':
+ description: Successful request. Returns a list of funding instructions.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of fundingInstruction objects.
+ items:
+ allOf:
+ - type: object
+ description: Inform the payfac what to do with the specified funds. **
+ title: funding instruction
+ properties: *ref_51
+ - type: object
+ properties:
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ required:
+ - data
+ examples:
+ listSplitsExample:
+ summary: Paginated instructions list
+ value: &ref_458
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/funding-instructions?before=65&limit=2&datefrom=2021-01-01&dateto=2021-01-30
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/funding-instructions?after=66&limit=2&datefrom=2021-01-01&dateto=2021-01-30
+ data:
+ - instructionId: 65
+ createdDate: '2021-09-05T13:15:00.000Z'
+ lastModifiedDate: '2021-09-06T18:00:00.000Z'
+ status: completed
+ merchants:
+ - merchantId: '99999'
+ recipients:
+ - status: funded
+ fundingAccountId: 67890
+ paymentMethod: ACH
+ amount:
+ value: 12350
+ currency: USD
+ metadata:
+ customerId: '2345'
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/67890
+ - status: rejected
+ fundingAccountId: 67889
+ paymentMethod: ACH
+ amount:
+ value: 9000
+ currency: USD
+ metadata:
+ customerId: '2345'
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/67889
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/99999
+ metadata:
+ instrcutionRef: abcd
+ link:
+ rel: fundingInstruction
+ method: get
+ href: https://api.payroc.com/v1/funding-instructions/65
+ - instructionId: 66
+ createdDate: '2021-09-06T13:15:00.000Z'
+ lastModifiedDate: null
+ status: accepted
+ merchants:
+ - merchantId: '12345'
+ recipients:
+ - status: accepted
+ fundingAccountId: 54784
+ paymentMethod: ACH
+ amount:
+ value: 5000
+ currency: USD
+ metadata:
+ customerId: '5412'
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/54784
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/12345
+ - merchantId: 12346
+ recipients:
+ - status: accepted
+ fundingAccountId: 54784
+ paymentMethod: ACH
+ amount:
+ value: 1000
+ currency: USD
+ metadata:
+ customerId: '5412'
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/54784
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/12346
+ metadata:
+ instrcutionRef: efgh
+ link:
+ rel: fundingInstruction
+ method: get
+ href: https://api.payroc.com/v1/funding-instructions/66
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value:
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: datefrom
+ detail: invalid date
+ message: Expected date, got "abc"
+ paginationError:
+ summary: Bad request
+ description: One or more validation errors occurred
+ value:
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: before
+ detail: invalid value
+ message: Expected integer, got abc
+ outsideRecordRange:
+ summary: Bad request
+ description: Requested data outside allowed range.
+ value:
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: datefrom
+ detail: invalid date
+ message: datefrom cannot be longer than two years ago.
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-instructions/{instructionId}:
+ parameters:
+ - name: instructionId
+ in: path
+ required: true
+ description: Unique identifier of the funding instruction.
+ schema: &ref_214
+ type: integer
+ example: 124567
+ get:
+ tags:
+ - Funding instructions
+ summary: Retrieve funding instruction
+ operationId: getInstruction
+ description: Retrieve a specific funding instruction.
+ responses:
+ '200':
+ description: Successful request. Returns the requested funding instruction.
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Inform the payfac what to do with the specified funds. **
+ title: funding instruction
+ properties: *ref_51
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ instructionIdError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value: &ref_53
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: instructionId
+ detail: invalid value
+ message: Expected integer, got abc
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ put:
+ tags:
+ - Funding instructions
+ summary: Update funding instruction
+ operationId: updateInstructions
+ description: Update an existing funding instruction.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Inform the payfac what to do with the specified funds. **
+ title: funding instruction
+ properties: *ref_51
+ responses:
+ '204':
+ description: Successful request. We updated the funding instruction.
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ insufficientFunds:
+ summary: Insufficient funds
+ description: You do not have enough funds to complete the request.
+ value: *ref_52
+ canNotBeModified:
+ summary: Cannot be modified
+ description: Resource cannot be modified.
+ value: &ref_55
+ type: https://docs.payroc.com/api/errors#cannot-be-modified
+ title: Cannot be modified
+ status: 409
+ detail: You cannot modify this resource in its current state
+ instructionIdError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value: *ref_53
+ fundingAccountsRestrcited:
+ summary: Funding accounts restricted
+ description: Funding accounts restricted.
+ value: *ref_54
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ summary: Delete funding instruction
+ description: Delete an existing funding instruction.
+ operationId: deleteInstructions
+ tags:
+ - Funding instructions
+ responses:
+ '204':
+ description: Successful request. We deleted the funding instruction.
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ canNotBeModified:
+ summary: Cannot be modified
+ description: Resource cannot be modified.
+ value: *ref_55
+ instructionIdError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value: *ref_53
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-balance:
+ get:
+ tags:
+ - Funding activity
+ summary: Retrieve funding balance
+ operationId: getFundingBalance
+ description: Retrieve the balance of funds that are available for each merchant.
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: merchantId
+ in: query
+ required: false
+ description: Unique identifier of the merchant.
+ schema:
+ type: string
+ example: '123456789'
+ responses:
+ '200':
+ description: Successful request. Returns the balance available for each merchant.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of merchantBalance objects.
+ items:
+ type: object
+ description: Object that contains information about the total funds available to the merchant.
+ title: merchant balance
+ properties: &ref_280
+ merchantId:
+ type: string
+ description: Unique Identifier of the merchant.
+ example: '123'
+ funds:
+ type: integer
+ description: Value of funds in the currency's lowest denomination, for example, cents.
+ example: 120000
+ pending:
+ type: number
+ description: Value of funds that we have not yet sent to funding recipients. We return this value in the currency's lowest denomination, for example, cents.
+ example: 50050
+ available:
+ type: number
+ description: Value of funds available for funding instructions. We return this value in the currency's lowest denomination, for example, cents.
+ example: 69950
+ currency:
+ type: string
+ description: Currency of the values. The default value is USD.
+ example: USD
+ required:
+ - data
+ examples:
+ listSplitsExample:
+ summary: Paginated list of merchant balances
+ description: Paginated list of merchant balances.
+ value: &ref_463
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/funding-balance?before=65&limit=2
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/funding-balance?after=66&limit=2
+ data:
+ - merchantId: '65'
+ funds: 120000
+ pending: 50050
+ available: 69950
+ currency: USD
+ - merchantId: '66'
+ funds: 50000
+ pending: 0
+ available: 50000
+ currency: USD
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ paginationError:
+ summary: Bad request
+ description: One or more validation errors occurred
+ value:
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: before
+ detail: invalid value
+ message: Expected integer, got abc
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /funding-activity:
+ get:
+ tags:
+ - Funding activity
+ summary: List funding activity
+ description: Retrieve funding activity for a specific date range.
+ operationId: getFundingActivity
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: dateFrom
+ in: query
+ description: Retrieve activity that occured since `dateFrom`. We can return activity from only the last two years.
+ required: true
+ schema: &ref_212
+ type: string
+ format: date
+ example: '2021-09-01'
+ - name: dateTo
+ in: query
+ required: true
+ description: Retrieve activity that occured before `dateTo`.
+ schema: &ref_213
+ type: string
+ format: date
+ example: '2021-09-30'
+ - name: merchantId
+ in: query
+ required: false
+ description: Unique identifier of the merchant.
+ schema:
+ type: string
+ example: '123456789'
+ responses:
+ '200':
+ description: Successful request. Returns all available funding activity for the date range.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of activityRecord objects.
+ items:
+ type: object
+ description: Array of activityRecord objects.
+ title: activity record
+ properties: &ref_281
+ id:
+ type: integer
+ description: Unique identifier of the activity record.
+ example: 12345
+ date:
+ type: string
+ format: datetime
+ example: '2021-01-01T19:32:00.000Z'
+ description: Date of the transaction.
+ merchant:
+ type: string
+ description: Name of the merchant that the activity applies to.
+ example: Doe Hot Dogs
+ recipient:
+ type: string
+ description: Recipient of the credit.
+ description:
+ type: string
+ example: Sales
+ description: Description of the activity.
+ amount:
+ type: number
+ example: 20000
+ description: Total fund amount of the transaction. This is returned in the lowest unit of currency.
+ type:
+ type: string
+ description: Payment type.
+ enum:
+ - credit
+ - debit
+ currency:
+ type: string
+ description: Currency of all values.
+ example: USD
+ required: &ref_282
+ - id
+ - date
+ - recipient
+ - merchant
+ - description
+ - amount
+ - type
+ - currency
+ required:
+ - data
+ examples:
+ paginatedList:
+ summary: Paginated activity records
+ description: Valid payfac account with activity for date range.
+ value: &ref_464
+ limit: 10
+ count: 10
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/funding-activity?before=11&limit=10&datefrom=2021-01-01&dateto=2021-01-30
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/funding-activity?after=20&limit=10&datefrom=2021-01-01&dateto=2021-01-30
+ data:
+ - id: '11'
+ date: '2021-01-01T17:00:00.000Z'
+ merchant: Doe Hot Dogs
+ description: sales
+ type: credit
+ amount: 20000
+ currency: USD
+ - id: '12'
+ date: '2021-01-01T19:32:00.000Z'
+ merchant: Doe Hot Dogs
+ description: sales
+ type: credit
+ amount: 50000
+ currency: USD
+ - id: '13'
+ date: '2021-01-01T17:00:00.000Z'
+ merchant: Doe Hot Dogs
+ recipient: Doe Hot Dogs
+ description: payment
+ type: debit
+ amount: 10000
+ currency: USD
+ - id: '14'
+ date: '2021-01-01T17:00:00.000Z'
+ merchant: Doe Hot Dogs
+ recipient: Payroc
+ description: Interchange Fees
+ type: debit
+ amount: 500
+ currency: USD
+ - id: '15'
+ date: '2021-01-03T09:10:00.000Z'
+ merchant: Doe Hot Dogs
+ description: sales
+ type: credit
+ amount: 30000
+ currency: USD
+ - id: '16'
+ date: '2021-01-10T17:00:00.000Z'
+ merchant: Janes shoe laces LTD
+ description: adjustment
+ type: credit
+ amount: 500
+ currency: USD
+ - id: '17'
+ date: '2021-01-10T17:00:00.000Z'
+ merchant: Janes shoe laces LTD
+ recipient: Payroc
+ description: Interchange Fees
+ type: debit
+ amount: 500
+ currency: USD
+ - id: '18'
+ date: '2021-01-15T17:00:00.000Z'
+ merchant: Doe Hot Dogs
+ recipient: Payroc
+ description: Charge back
+ type: debit
+ amount: 1000
+ currency: USD
+ - id: '19'
+ date: '2021-01-17T17:00:00.000Z'
+ merchant: Janes shoe laces LTD
+ description: sales
+ type: credit
+ amount: 50000
+ currency: USD
+ - id: '20'
+ date: '2021-01-26T17:00:00.000Z'
+ merchant: Doe Hot Dogs
+ recipient: Mr Payfac corp
+ description: payment
+ type: debit
+ amount: 5000
+ currency: USD
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value: &ref_459
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: datefrom
+ detail: invalid date
+ message: Expected date, got "abc"
+ paginationError:
+ summary: Bad request
+ description: One or more validation errors occurred
+ value: &ref_460
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: before
+ detail: invalid value
+ message: Expected integer, got abc
+ outsideRecordRange:
+ summary: Bad request
+ description: Requested data outside allowed range.
+ value: &ref_461
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: datefrom
+ detail: invalid date
+ message: datefrom cannot be longer than two years ago.
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /batches:
+ get:
+ tags:
+ - Settlement
+ summary: List batches
+ description: Retrieve batch data for a specific date.
+ operationId: getbatches
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: date
+ in: query
+ required: true
+ description: Date that the merchant submitted the batch. The format of this value is **YYYY-MM-DD**.
+ schema:
+ type: string
+ format: date
+ example: '2021-09-05'
+ - name: merchantId
+ in: query
+ description: Unique identifier of the merchant.
+ schema: &ref_58
+ type: string
+ example: '4525644354'
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of batches.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of batch objects.
+ items:
+ type: object
+ title: batch
+ properties: &ref_56
+ batchId:
+ type: integer
+ description: Unique identifier of the batch.
+ example: 123
+ date:
+ type: string
+ format: date
+ description: Date that the merchant submitted the batch. The format of this value is **YYYY-MM-DD**.
+ example: '2021-09-05'
+ createdDate:
+ type: string
+ format: date
+ description: Date that we created a record for the batch. The format of this value is **YYYY-MM-DD**.
+ example: '2024-01-30'
+ lastModifiedDate:
+ type: string
+ format: date
+ description: Date that the batch was last changed. The format of this value is **YYYY-MM-DD**.
+ example: '2024-01-30'
+ saleAmount:
+ type: integer
+ description: Total value of sales. We return the value in the currency's lowest denomination, for example, cents.
+ heldAmount:
+ type: integer
+ description: Total value of authorizations. We return the value in the currency's lowest denomination, for example, cents.
+ returnAmount:
+ type: integer
+ description: Total value of returns. We return the value in the currency's lowest denomination, for example, cents.
+ transactionCount:
+ type: integer
+ description: Total number of transactions in the batch.
+ currency:
+ type: string
+ description: Currency of the transactions.
+ merchant:
+ type: object
+ title: merchant summary
+ description: Object that contains information about the merchant.
+ properties: &ref_59
+ merchantId:
+ type: string
+ description: Unique identifier of the merchant.
+ example: '4525644354'
+ doingBusinessAs:
+ type: string
+ description: Legal name that the business operates as.
+ example: Doe Hot Dogs
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ example: &ref_60
+ merchantId: '4525644354'
+ doingBusinessAs: Doe Hot Dogs
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/4525644354
+ links:
+ type: array
+ items:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ example:
+ - rel: transactions
+ method: get
+ href: https://api.payroc.com/v1/transactions?batchId=123
+ - rel: authorizations
+ method: get
+ href: https://api.payroc.com/v1/authorizations?batchId=123
+ required:
+ - data
+ examples:
+ paginatedList:
+ summary: Paginated batches
+ value: &ref_465
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/batches?before=65&limit=2&date=2021-01-01
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/batches?after=66&limit=2&&date=2021-01-01
+ data:
+ - batchId: 65
+ date: '2021-01-01'
+ createdDate: '2021-09-05'
+ lastModifiedDate: '2021-09-06'
+ saleAmount: 100
+ heldAmount: 0
+ returnAmount: 0
+ transactionCount: 10
+ currency: USD
+ merchant:
+ merchantId: '4525644354'
+ doingBusinessAs: Pizza Doe
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/4525644354
+ links:
+ - rel: transactions
+ method: get
+ href: https://api.payroc.com/v1/transactions?batchId=65
+ - rel: authorizations
+ method: get
+ href: https://api.payroc.com/v1/authorizations?batchId=65
+ - batchId: 66
+ date: '2021-01-01'
+ createdDate: '2021-09-05'
+ lastModifiedDate: '2021-09-06'
+ saleAmount: 76
+ heldAmount: 0
+ returnAmount: 12
+ transactionCount: 10
+ currency: USD
+ merchant:
+ merchantId: '987654321'
+ doingBusinessAs: Joe Bloggs Shoes
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/987654321
+ links:
+ - rel: transactions
+ method: get
+ href: https://api.payroc.com/v1/transactions?batchId=66
+ - rel: authorizations
+ method: get
+ href: https://api.payroc.com/v1/authorizations?batchId=66
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: &ref_61
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: date
+ detail: invalid date
+ message: Expected date, got "abc"
+ paginationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: &ref_62
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: before
+ detail: invalid value
+ message: Expected integer, got abc
+ idError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: &ref_57
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: batchId
+ detail: invalid value
+ message: Expected integer, got abc
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /batches/{batchId}:
+ get:
+ tags:
+ - Settlement
+ summary: Retrieve batch
+ description: Retrieve a specific batch.
+ operationId: getbatch
+ parameters:
+ - name: batchId
+ description: Unique identifier of the batch.
+ in: path
+ required: true
+ style: simple
+ schema: &ref_215
+ type: integer
+ example: 12345
+ responses:
+ '200':
+ description: Successful request. Returns the requested batch.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: batch
+ properties: *ref_56
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ idError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_57
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /transactions:
+ get:
+ tags:
+ - Settlement
+ summary: List transactions
+ description: Retrieve a list of transactions.
+ operationId: getTransactions
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: date
+ in: query
+ required: true
+ description: Date to retrieve results from. The format of this value is **YYYY-MM-DD**. You must provide either the 'batchId' or the 'date'.
+ schema: &ref_64
+ type: string
+ format: date
+ example: '2021-09-05'
+ - name: batchId
+ in: query
+ required: true
+ description: Unique identifier of the batch. You must provide either the 'batchId' or the 'date'.
+ schema: &ref_65
+ type: integer
+ example: 12345
+ - name: merchantId
+ in: query
+ description: Unique identifier of the merchant.
+ schema: *ref_58
+ example: '4525644354'
+ - name: transactionType
+ in: query
+ required: false
+ description: Type of transaction.
+ schema: &ref_216
+ type: string
+ enum:
+ - Capture
+ - Return
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of transactions.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of transaction objects.
+ items:
+ type: object
+ title: transaction
+ description: Object that contains information about the transaction.
+ properties: &ref_63
+ transactionId:
+ type: integer
+ description: Unique identifier of the transaction. If we can't match a dispute to a transaction, we don't return 'transactionID' or a 'link' object.
+ example: 12345
+ nullable: true
+ type:
+ type: string
+ description: Indicates the type of transaction.
+ enum:
+ - capture
+ - return
+ date:
+ type: string
+ format: date
+ description: Date of the transaction. The format of this value is **YYYY-MM-DD**.
+ example: '2021-01-01'
+ amount:
+ type: integer
+ description: Transaction amount. We return the value in the currency's lowest denomination, for example, cents.
+ example: 25000
+ entryMethod:
+ type: string
+ description: Describes how the merchant received the payment details. If we can't match a dispute to a transaction, we don't return an 'entryMethod' object.
+ nullable: true
+ enum:
+ - barcodeRead
+ - smartChipRead
+ - swipedOriginUnknown
+ - contactlessChip
+ - ecommerce
+ - manuallyEntered
+ - manuallyEnteredFallback
+ - swiped
+ - swipedFallback
+ - swipedError
+ - scannedCheckReader
+ - credentialOnFile
+ - unknown
+ createdDate:
+ type: string
+ format: date
+ description: Date that we received the transaction. The format of this value is **YYYY-MM-DD**.
+ example: '2024-01-30'
+ lastModifiedDate:
+ type: string
+ format: date
+ description: Date that the transaction was last changed. The format of this value is **YYYY-MM-DD**.
+ example: '2024-01-30'
+ status:
+ type: string
+ description: Indicates the status of the transaction.
+ enum:
+ - fullSuspense
+ - heldAudited
+ - heldReleasedAudited
+ - holdForSettlement30Days
+ - holdForSettlementDuplicate
+ - holdLongTerm
+ - paid
+ - paidByThirdParty
+ - partialRelease
+ - pull
+ - release
+ - new
+ - held
+ - unknown
+ cashbackAmount:
+ type: integer
+ description: Cashback amount. We return the value in the currency's lowest denomination, for example, cents.
+ interchange:
+ type: object
+ description: Object that contains information about the interchange fees for the transaction.
+ properties:
+ basisPoint:
+ type: integer
+ description: Interchange basis points that we apply to the transaction.
+ transactionFee:
+ type: integer
+ description: Interchange fee for the transaction. We return the value in the currency's lowest denomination, for example, cents.
+ currency:
+ type: string
+ description: Currency of the transaction.
+ merchant:
+ type: object
+ title: merchant summary
+ description: Object that contains information about the merchant.
+ properties: *ref_59
+ example: *ref_60
+ settled:
+ type: object
+ title: settlement summary
+ description: Object that contains information about the settlement.
+ properties: &ref_283
+ settledBy:
+ type: string
+ description: Processor that settled the transaction.
+ achDate:
+ type: string
+ format: date
+ description: Date that the processor settled the transaction. The format of this value is **YYYY-MM-DD**.
+ example: '2021-09-05'
+ batch:
+ type: object
+ title: batch summary
+ description: Object that contains information about the batch. If we can't match a dispute to a batch, we don't return 'batch' object.
+ nullable: true
+ properties: &ref_66
+ batchId:
+ type: integer
+ description: Unique identifier of the batch.
+ example: 1234
+ date:
+ type: string
+ format: date
+ description: Date that the merchant submitted the batch.
+ example: '2021-09-05'
+ cycle:
+ type: string
+ description: Indicates the cycle that contains the batch.
+ example: am
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ card:
+ type: object
+ title: card summary
+ description: Object that contains information about the card.
+ properties: &ref_67
+ cardNumber:
+ type: string
+ description: Card number. We mask the number except for the first six digits and the last four digits.
+ example: 123456**********4124
+ type:
+ type: string
+ description: Card type. If we can't match a dispute to a transaction, we don't return a 'type' object.
+ nullable: true
+ enum:
+ - visa
+ - masterCard
+ - discover
+ - debit
+ - ebt
+ - wrightExpress
+ - voyager
+ - amex
+ - privateLabel
+ - storedValue
+ - discoverRetained
+ - jcbNonSettled
+ - dinersClub
+ - amexOptBlue
+ - fuelman
+ - unknown
+ cvvPresenceIndicator:
+ type: boolean
+ description: Indicates if the cardholder provided the CVV.
+ avsRequest:
+ type: boolean
+ description: Indicates if the AVS was used to verify the cardholder's address.
+ avsResponse:
+ type: string
+ description: Response from the AVS.
+ authorization:
+ type: object
+ title: authorization summary
+ description: Object that contains information about the authorization.
+ properties: &ref_284
+ authorizationId:
+ type: integer
+ description: Unique identifier of the authorization.
+ example: 12345
+ code:
+ type: string
+ description: |
+ Authorization code.
+
+ **Note:** For returns, the card brands may not provide an authorization code.
+ amount:
+ type: integer
+ description: Authorization amount. We return the value in the currency's lowest denomination, for example, cents.
+ avsResponseCode:
+ type: string
+ description: Response code that indicates if the address matches the address registered to the customer.
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ required:
+ - data
+ examples:
+ paginatedList:
+ summary: Paginated transactions
+ value: &ref_466
+ limit: 2
+ count: 1
+ hasMore: false
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/transctions?before=65&limit=2&date=2021-01-01
+ data:
+ - transactionId: 65
+ type: capture
+ date: '2021-01-01'
+ amount: 25000
+ entryMethod: ecommerce
+ createdDate: '2021-09-05'
+ lastModifiedDate: '2021-09-06'
+ status: paid
+ cashbackAmount: 0
+ interchange:
+ basisPoint: 0
+ transactionFee: 0
+ currency: USD
+ merchant:
+ merchantId: '4525644354'
+ doingBusinessAs: Pizza Doe
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/4525644354
+ settled:
+ settledBy: 3rd party
+ achDate: '2021-09-05'
+ batch:
+ batchId: 12
+ date: '2021-01-01'
+ cycle: am
+ link:
+ rel: batch
+ method: get
+ href: https://api.payroc.com/v1/batches/12
+ card:
+ cardNumber: 12456**********4124
+ type: visa
+ cvvPresenceIndicator: true
+ avsRequest: true
+ avsResponse: ''
+ authorization:
+ authorizationId: 12345
+ code: ABCDE
+ amount: 100
+ avsResponseCode: ''
+ link:
+ rel: authorization
+ method: get
+ href: https://api.payroc.com/v1/authorizations/12345
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_61
+ paginationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_62
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /transactions/{transactionId}:
+ get:
+ tags:
+ - Settlement
+ summary: Retrieve transaction
+ description: Retrieve a specific transaction.
+ operationId: gettransaction
+ parameters:
+ - name: transactionId
+ description: Unique identifier of the transaction.
+ in: path
+ required: true
+ style: simple
+ schema: &ref_217
+ type: integer
+ example: 12345
+ responses:
+ '200':
+ description: Successful request. Returns the requested transaction.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: transaction
+ description: Object that contains information about the transaction.
+ properties: *ref_63
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ transactionIdError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: &ref_467
+ type: https://docs.payroc.com/api/errors#bad-request
+ title: Bad request
+ status: 400
+ detail: One or more validation errors occurred, see error section for more info
+ errors:
+ - parameter: transactionId
+ detail: invalid value
+ message: Expected integer, got abc
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /authorizations:
+ get:
+ tags:
+ - Settlement
+ summary: List authorizations
+ description: Retrieve a list of authorizations.
+ operationId: getAuthorizations
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: date
+ in: query
+ required: true
+ description: Date to retrieve results from. The format of this value is **YYYY-MM-DD**. You must provide either the 'batchId' or the 'date'.
+ schema: *ref_64
+ example: '2021-09-05'
+ - name: batchId
+ in: query
+ required: true
+ description: Unique identifier of the batch. You must provide either the 'batchId' or the 'date'.
+ schema: *ref_65
+ example: 12345
+ - name: merchantId
+ in: query
+ description: Unique identifier of the merchant.
+ schema: *ref_58
+ example: '4525644354'
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of authorizations.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of authorization objects.
+ items:
+ type: object
+ title: authorization
+ description: Object that contains information about the authorization.
+ properties: &ref_68
+ authorizationId:
+ type: integer
+ description: Unique identifier of the authorization.
+ example: 12345
+ createdDate:
+ type: string
+ format: date
+ description: Date that we received the authorization. The format of this value is **YYYY-MM-DD**.
+ example: '2024-01-30'
+ lastModifiedDate:
+ type: string
+ format: date
+ description: Date that the authorization was last changed. The format of this value is **YYYY-MM-DD**.
+ example: '2024-01-30'
+ authorizationResponse:
+ type: string
+ description: Code that indicates the response for the authorization.
+ enum:
+ - activityCountLimitExceeded
+ - alreadyReversed
+ - approved
+ - approveVip
+ - approveWithId
+ - cannotVerifyPin
+ - cardAuthenticationFailed
+ - cardTypeVerificationError
+ - cashRequestExceedsIssuerLimit
+ - cashServiceNotAvailable
+ - cidVerificationError
+ - contactCardIssuer
+ - cryptographicFailure
+ - dailyThresholdExceeded
+ - declineCvv2Failure
+ - deny
+ - denyAccountCanceled
+ - denyClosedMerchant
+ - denyNewCardIssued
+ - denyPickUpCard
+ - destinationCannotBeFoundForRouting
+ - doNotHonor
+ - duplicateTransmissionDetected
+ - error
+ - exceedsWithdrawalAmountLimit
+ - expiredCard
+ - fileTemporarilyUnavailable
+ - forceStip
+ - formatError
+ - forwardToIssuer
+ - functionNotSupported
+ - honorWithId
+ - incorrectCvv
+ - incorrectPin
+ - ineligibleForResubmission
+ - insufficientFunds
+ - invalidAccount
+ - invalidAccountNumber
+ - invalidAmount
+ - invalidAuthorizationLifeCycle
+ - invalidBillerInformation
+ - invalidCardSecurityCode
+ - invalidCurrencyCode
+ - invalidMerchant
+ - invalidResponse
+ - invalidTransaction
+ - issuerNotAvailable
+ - issuerTimeout
+ - issuerUnavailable
+ - noActionTaken
+ - noCardRecord
+ - noCheckingAccount
+ - noCreditAccount
+ - noFinancialImpact
+ - noReasonToDecline
+ - noSavingsAccount
+ - noSuchIssuer
+ - partialApproval
+ - partialAuthorization
+ - pickUpCard
+ - pickUpCardSpecialCondition
+ - pinChangeRequestDeclined
+ - pinCryptographicErrorFound
+ - pinEntryTriesExceeded
+ - pinNotChanged
+ - pleaseCallIssuer
+ - reenterTransaction
+ - referToCardIssuer
+ - referToCardIssuerSpecialCondition
+ - restrictedCard
+ - reversal
+ - reversalDataInconsistent
+ - revokeAllAuthorizationsOrder
+ - scheduledTransactionstoppedByCardholder
+ - securityViolation
+ - successful
+ - surchargeAmountNotPermitted
+ - suspectFraud
+ - systemMalfunction
+ - transactionAmountExceedsApprovalAmount
+ - transactionCannotBeCompleted
+ - transactionNotAllowedAtMerchant
+ - transactionNotAllowedAtTerminal
+ - transactionNotPermitted
+ - transactionNotPermittedToCardholder
+ - unableToGoOnline
+ - unableToLocateRecordInFile
+ - unableToVerifyPin
+ - unacceptablePin
+ - unknown
+ - unsafePin
+ preauthorizationRequestAmount:
+ type: integer
+ description: Amount that the merchant requested for the authorization. We return the value in the currency's lowest denomination, for example, cents.
+ example: 10000
+ currency:
+ type: string
+ description: Currency of the authorization.
+ batch:
+ type: object
+ title: batch summary
+ description: Object that contains information about the batch. If we can't match a dispute to a batch, we don't return 'batch' object.
+ nullable: true
+ properties: *ref_66
+ card:
+ type: object
+ title: card summary
+ description: Object that contains information about the card.
+ properties: *ref_67
+ merchant:
+ type: object
+ title: merchant summary
+ description: Object that contains information about the merchant.
+ properties: *ref_59
+ example: *ref_60
+ transaction:
+ type: object
+ title: transaction summary
+ description: Object that contains summary information about the transaction.
+ properties: &ref_69
+ transactionId:
+ type: integer
+ description: Unique identifier of the transaction. If we can't match a dispute to a transaction, we don't return 'transactionID' or a 'link' object.
+ example: 12345
+ nullable: true
+ type:
+ type: string
+ description: Indicates the type of transaction.
+ enum:
+ - capture
+ - return
+ date:
+ type: string
+ format: date
+ description: Date of the transaction. The format of this value is **YYYY-MM-DD**.
+ example: '2021-01-01'
+ entryMethod:
+ type: string
+ description: Describes how the merchant received the payment details. If we can't match a dispute to a transaction, we don't return an 'entryMethod' object.
+ nullable: true
+ enum:
+ - barcodeRead
+ - smartChipRead
+ - swipedOriginUnknown
+ - contactlessChip
+ - ecommerce
+ - manuallyEntered
+ - manuallyEnteredFallback
+ - swiped
+ - swipedFallback
+ - swipedError
+ - scannedCheckReader
+ - credentialOnFile
+ - unknown
+ amount:
+ type: integer
+ description: Transaction amount. We return the value in the currency's lowest denomination, for example, cents.
+ example: 25000
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ required:
+ - data
+ examples:
+ paginatedList:
+ summary: Paginated authorizations
+ value: &ref_468
+ limit: 2
+ count: 1
+ hasMore: false
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/authorizations?before=65&limit=2&date=2021-01-01
+ data:
+ - authorizationId: 65
+ createdDate: '2021-09-05'
+ lastModifiedDate: '2021-09-06'
+ authorizationResponse: successful
+ preauthorizationRequestAmount: 10000
+ currency: USD
+ merchant:
+ merchantId: '4525644354'
+ doingBusinessAs: Pizza Doe
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/4525644354
+ batch:
+ batchId: 12
+ date: '2021-01-01'
+ cycle: am
+ link:
+ rel: batch
+ method: get
+ href: https://api.payroc.com/v1/batches/12
+ card:
+ cardNumber: 12456**********4124
+ type: visa
+ cvvPresenceIndicator: true
+ avsRequest: true
+ avsResponse: ''
+ transaction:
+ transactionId: 12345
+ type: capture
+ date: ''
+ entryMethod: swiped
+ amount: 100
+ link:
+ rel: transaction
+ method: get
+ href: https://api.payroc.com/v1/transactions/12345
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_61
+ paginationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_62
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /authorizations/{authorizationId}:
+ get:
+ tags:
+ - Settlement
+ summary: Retrieve authorization
+ description: Retrieve a specific authorization.
+ operationId: getAuthorization
+ parameters:
+ - name: authorizationId
+ description: Unique identifier of the authorization.
+ in: path
+ required: true
+ style: simple
+ schema: &ref_218
+ type: integer
+ example: 12345
+ responses:
+ '200':
+ description: Successful request. Returns the requested authorization.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: authorization
+ description: Object that contains information about the authorization.
+ properties: *ref_68
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /disputes:
+ get:
+ tags:
+ - Settlement
+ summary: List disputes
+ description: Retrieve a list of disputes.
+ operationId: getdisputes
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - name: date
+ in: query
+ required: true
+ description: Date that the dispute was submitted.
+ schema:
+ type: string
+ format: date
+ example: '2021-09-05'
+ - name: merchantId
+ in: query
+ description: Unique identifier of the merchant.
+ schema: *ref_58
+ example: '4525644354'
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of disputes.
+ content:
+ application/json:
+ schema:
+ type: object
+ allOf:
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of dispute objects.
+ items:
+ type: object
+ title: dispute
+ description: Object that contains information about the dispute.
+ properties: &ref_285
+ disputeId:
+ type: integer
+ description: Unique identifier of the dispute.
+ example: 12345
+ disputeType:
+ type: string
+ description: Type of dispute.
+ enum:
+ - prearbitration
+ - issuerReversal
+ - firstDisputeWithReversal
+ - firstDispute
+ currentStatus:
+ allOf:
+ - type: object
+ title: dispute status
+ description: Object that contains information about the current status of the dispute.
+ properties: &ref_70
+ disputeStatusId:
+ type: integer
+ description: Unique identifier of the dispute status.
+ example: 12345
+ status:
+ type: string
+ description: Status of the dispute.
+ enum:
+ - prearbitrationInProcess
+ - prearbitrationAccepted
+ - prearbitrationDeclined
+ - arbitrationFiledWithCardBand
+ - arbitrationFundsToBeReturned
+ - arbitrationLost
+ - arbitrationSettledPartialAmount
+ - precomplianceInProcess
+ - precomplianceAccepted
+ - precomplianceDeclined
+ - complianceFiledWithCardBand
+ - complianceLost
+ - complianceSettledPartialAmount
+ - invalid
+ - issuerReversal
+ - new
+ - rejected
+ - representmentInProgress
+ - representmentFailed
+ - representmentPaid
+ - representmentReceived
+ - stand
+ statusDate:
+ type: string
+ format: date
+ description: Date that the status changed. The format of this value is **YYYY-MM-DD**.
+ example: '2024-02-01'
+ - type: object
+ properties:
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ createdDate:
+ type: string
+ format: date
+ description: Date that we received the dispute. The format of this value is **YYYY-MM-DD**.
+ example: '2024-02-20'
+ lastModifiedDate:
+ type: string
+ format: date
+ description: Date that the dispute was last changed. The format of this value is **YYYY-MM-DD**.
+ example: '2024-02-25'
+ receivedDate:
+ type: string
+ format: date
+ description: Date that the acquiring bank received the dispute. The format of this value is **YYYY-MM-DD**.
+ example: '2024-02-18'
+ description:
+ type: string
+ description: Description of the dispute.
+ referenceNumber:
+ type: string
+ description: Reference number from the acquiring bank.
+ disputeAmount:
+ type: integer
+ description: Dispute amount. We return the value in the currency's lowest denomination, for example, cents.
+ feeAmount:
+ type: integer
+ description: Value of the fees for the dispute. We return the value in the currency's lowest denomination, for example, cents.
+ firstDispute:
+ type: boolean
+ description: Indicates if this is the first dispute for the transaction.
+ example: true
+ authorizationCode:
+ type: string
+ description: Authorization code.
+ currency:
+ type: string
+ description: Currency of the dispute.
+ card:
+ type: object
+ title: card summary
+ description: Object that contains information about the card.
+ properties: *ref_67
+ merchant:
+ type: object
+ title: merchant summary
+ description: Object that contains information about the merchant.
+ properties: *ref_59
+ example: *ref_60
+ transaction:
+ type: object
+ title: transaction summary
+ description: Object that contains summary information about the transaction.
+ properties: *ref_69
+ required:
+ - data
+ examples:
+ paginatedList:
+ summary: Paginated disputes
+ value: &ref_469
+ limit: 2
+ count: 1
+ hasMore: false
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/disputes?before=65&limit=2&date=2021-01-01
+ data:
+ - disputeId: 65
+ disputeType: firstDispute
+ currentStatus:
+ disputeStatusId: 123
+ status: new
+ statusDate: '2021-09-06'
+ link:
+ rel: statuses
+ method: get
+ href: https://api.payroc.com/v1/disputes/12345/statuses
+ createdDate: '2021-09-05'
+ lastModifiedDate: '2021-09-06'
+ receivedDate: ''
+ description: ''
+ referenceNumber: '35435435'
+ disputeAmount: 1000
+ feeAmount: 100
+ firstDispute: true
+ authorizationCode: '574254'
+ currency: USD
+ merchant:
+ merchantId: '4525644354'
+ doingBusinessAs: Pizza Doe
+ link:
+ rel: merchant
+ method: get
+ href: https://api.payroc.com/v1/merchants/4525644354
+ card:
+ cardNumber: 12456**********4124
+ type: visa
+ cvvPresenceIndicator: true
+ avsRequest: true
+ avsResponse: ''
+ transaction:
+ transactionId: 12345
+ type: capture
+ date: ''
+ entryMethod: swiped
+ amount: 100
+ link:
+ rel: transaction
+ method: get
+ href: https://api.payroc.com/v1/transactions/12345
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_61
+ paginationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_62
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /disputes/{disputeId}/statuses:
+ get:
+ tags:
+ - Settlement
+ summary: List dispute statuses
+ description: Retrieve the status history for a specific dispute.
+ operationId: getdisputesStatuses
+ parameters:
+ - name: disputeId
+ description: Unique identifier of the dispute.
+ in: path
+ required: true
+ style: simple
+ schema: &ref_219
+ type: integer
+ example: 12345
+ responses:
+ '200':
+ description: Successful request. Returns the status history for a specific dispute.
+ content:
+ application/json:
+ schema:
+ type: array
+ description: Collection of status
+ items:
+ type: object
+ title: dispute status
+ description: Object that contains information about the current status of the dispute.
+ properties: *ref_70
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ parameterError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_61
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/payment-plans:
+ post:
+ tags:
+ - Payment plans
+ summary: Create payment plan
+ description: Create a new payment plan.
+ operationId: createPaymentPlan
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_74
+ - paymentPlanId
+ - name
+ - currency
+ - frequency
+ - onDelete
+ - onUpdate
+ - type
+ type: object
+ properties: &ref_75
+ paymentPlanId:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigns to the payment plan.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ readOnly: true
+ description: Unique identifier of the terminal that the payment plan is assigned to.
+ name:
+ maxLength: 128
+ minLength: 5
+ type: string
+ description: Name of the payment plan.
+ description:
+ maxLength: 128
+ minLength: 0
+ type: string
+ description: Description of the payment plan.
+ currency:
+ type: string
+ description: |
+ Currency code for the payment plan. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ setupOrder:
+ type: object
+ description: Object that contains information about the initial cost that a customer pays to set up the subscription.
+ allOf: &ref_286
+ - type: object
+ properties: &ref_73
+ amount:
+ type: integer
+ format: int64
+ description: Total amount before surcharges. The value is in the currency's lowest denomination, for example, cents.
+ description:
+ maxLength: 1024
+ minLength: 0
+ type: string
+ description: Description of the transaction.
+ breakdown:
+ required: &ref_71
+ - subtotal
+ type: object
+ description: |
+ Object that contains information about the taxes that apply to the transaction.
+ properties: &ref_72
+ subtotal:
+ type: integer
+ format: int64
+ description: Total amount for the transaction before tax. The value is in the currency's lowest denomination, for example, cents.
+ taxes:
+ type: array
+ description: Array of tax objects.
+ items:
+ required: &ref_102
+ - name
+ - rate
+ type: object
+ properties: &ref_103
+ name:
+ maxLength: 64
+ minLength: 1
+ type: string
+ description: Name of the tax.
+ rate:
+ maximum: 99.99999
+ exclusiveMaximum: false
+ minimum: 0
+ exclusiveMinimum: false
+ type: number
+ format: double
+ description: Tax percentage for the transaction.
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ readOnly: true
+ description: Amount of tax that was applied to the transaction. The value is in the currency's lowest denomination, for example, cents.
+ - type: object
+ properties:
+ amount:
+ type: integer
+ format: int64
+ description: Total amount before surcharges. The value is in the currency's lowest denomination, for example, cents.
+ description:
+ maxLength: 1024
+ minLength: 1
+ type: string
+ description: Description of the transaction.
+ breakdown:
+ required: *ref_71
+ type: object
+ description: |
+ Object that contains information about the taxes that apply to the transaction.
+ properties: *ref_72
+ recurringOrder:
+ type: object
+ description: |
+ Object that contains information about the cost of each payment.
+ **Note:** Send this object only if the value for **type** is `automatic`.
+ allOf: &ref_81
+ - type: object
+ properties: *ref_73
+ - type: object
+ properties:
+ amount:
+ type: integer
+ format: int64
+ description: Total amount before surcharges. The value is in the currency's lowest denomination, for example, cents.
+ description:
+ maxLength: 1024
+ minLength: 1
+ type: string
+ description: Description of the transaction.
+ breakdown:
+ required: *ref_71
+ type: object
+ description: |
+ Object that contains information about the taxes that apply to the transaction.
+ properties: *ref_72
+ length:
+ minimum: 0
+ default: 0
+ type: integer
+ format: int32
+ description: |
+ Object that contains information about the cost of each payment.
+ To indicate that the payment plan should run indefinitely, send a value of `0`.
+ type:
+ type: string
+ default: automatic
+ description: |
+ Indicates how the merchant takes the payment from the customer's account.
+ - `manual` - The merchant manually collects payments from the customer.
+ - `automatic` - The terminal automatically collects payments from the customer.
+ enum:
+ - manual
+ - automatic
+ frequency:
+ type: string
+ description: Indicates how often the merchant or the terminal collects a payment from the customer.
+ enum:
+ - weekly
+ - fortnightly
+ - monthly
+ - quarterly
+ - yearly
+ onUpdate:
+ type: string
+ default: continue
+ description: |
+ Indicates whether any changes that the merchant makes to the payment plan apply to existing subscriptions.
+ - `update` - Changes apply to existing subscriptions.
+ - `continue` - Changes don't apply to existing subscriptions.
+ enum:
+ - update
+ - continue
+ onDelete:
+ type: string
+ default: complete
+ description: |
+ Indicates what happens to existing subscriptions if the merchant deletes the payment plan.
+ - `complete` - Stops existing subscriptions.
+ - `continue` - Continues existing subscriptions.
+ enum:
+ - complete
+ - continue
+ examples:
+ paymentPlanRequest:
+ summary: Payment Plan
+ description: Payment Plan
+ value: &ref_471
+ paymentPlanId: 1001_yearly_plan
+ name: 1001 yearly payment plan
+ description: 1001 yearly payment plan
+ currency: EUR
+ setupOrder:
+ amount: 1010
+ description: payment plan setup order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ recurringOrder:
+ amount: 1010
+ description: payment plan setup order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ length: 5
+ type: automatic
+ frequency: yearly
+ onUpdate: continue
+ onDelete: complete
+ required: true
+ responses:
+ '201':
+ description: Successful request. We created the payment plan.
+ content:
+ application/json:
+ schema:
+ required: *ref_74
+ type: object
+ properties: *ref_75
+ examples:
+ createdPaymentPlan:
+ summary: Payment Plan
+ description: Payment Plan
+ value: &ref_76
+ paymentPlanId: 1001_yearly_plan
+ processingTerminalId: '1001'
+ name: 1001 yearly payment plan
+ description: 1001 yearly payment plan
+ currency: EUR
+ setupOrder:
+ amount: 1010
+ description: payment plan setup order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ recurringOrder:
+ amount: 1010
+ description: payment plan recurring order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ length: 5
+ type: automatic
+ frequency: yearly
+ onUpdate: continue
+ onDelete: complete
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: &ref_79
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ resourceExists:
+ summary: Resource already exists
+ description: Resource already exists
+ value: &ref_472
+ type: https://docs.payroc.com/api/errors#resource-already-exists
+ title: Resource already exists
+ status: 409
+ detail: The resource you attempted to create already exists
+ instance: https://api.payroc.com/v1/merchant/12345
+ '415':
+ description: Unsupported media type
+ content: &ref_80
+ application/problem+json:
+ schema:
+ type: object
+ properties: &ref_228
+ type:
+ type: string
+ description: URI reference identifying the problem type
+ example: https://docs.payroc.com/api/errors#unsupported-media-type
+ title:
+ type: string
+ description: Short description of the issue.
+ example: Unsupported media type
+ status:
+ type: integer
+ description: Http status code
+ example: 415
+ detail:
+ type: string
+ description: Explanation of the problem
+ example: You submitted a payload in an unsupported format.
+ required: &ref_229
+ - type
+ - title
+ - status
+ - detail
+ examples:
+ unsupportedMediaType:
+ summary: Unsupported media type
+ description: The payload is in an unsupported format.
+ value: &ref_473
+ type: https://docs.payroc.com/api/errors#unsupported-media-type
+ title: Unsupported media type
+ status: 415
+ detail: You submitted a payload in an unsupported format
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Payment plans
+ summary: List payment plans
+ description: Retrieve a list of payment plans.
+ operationId: listPaymentPlans
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of payment plans.
+ content:
+ application/json:
+ schema:
+ required: &ref_287
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ allOf: &ref_288
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of paymentPlan objects.
+ items:
+ required: *ref_74
+ type: object
+ properties: *ref_75
+ examples:
+ paginatedResults:
+ summary: Payment Plan
+ description: Payment Plan
+ value: &ref_470
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - paymentPlanId: 1001_yearly_plan
+ processingTerminalId: '1001'
+ name: 1001 yearly plan
+ description: payment plan, setup order with taxes
+ currency: EUR
+ length: 0
+ type: automatic
+ frequency: yearly
+ onUpdate: continue
+ onDelete: complete
+ - paymentPlanId: 1001_payment_plan_premium
+ processingTerminalId: '1001'
+ name: 1001 payment plan premium
+ description: a template payment plan for premium users
+ currency: EUR
+ length: 0
+ type: automatic
+ frequency: yearly
+ onUpdate: continue
+ onDelete: complete
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/processing-terminals/1001/payment-plans?limit=2&after=M4MY49Z5JB
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/processing-terminals/1001/payment-plans?limit=2&before=GKB49GZ6DL
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/payment-plans/{paymentPlanId}:
+ get:
+ tags:
+ - Payment plans
+ summary: Retrieve payment plan
+ description: Retrieve a specific payment plan.
+ operationId: getPaymentPlan
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: paymentPlanId
+ in: path
+ description: Unique identifier that the merchant assigned to the payment plan.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the requested payment plan.
+ content:
+ application/json:
+ schema:
+ required: *ref_74
+ type: object
+ properties: *ref_75
+ examples:
+ paymentPlan:
+ summary: Payment Plan
+ description: Payment Plan
+ value: *ref_76
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ patch:
+ tags:
+ - Payment plans
+ summary: Update payment plan
+ description: |
+ Make changes to an existing payment plan.
+
+ Structure your request to follow the RFC 6902 standard.
+ operationId: updatePaymentPlan
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: paymentPlanId
+ in: path
+ description: Unique identifier that the merchant assigned to the payment plan.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: array
+ description: A JSONPatch document as defined by RFC 6902
+ example: *ref_77
+ items: *ref_78
+ required: true
+ responses:
+ '200':
+ description: Successful request. We updated the payment plan.
+ content:
+ application/json:
+ schema:
+ required: *ref_74
+ type: object
+ properties: *ref_75
+ examples:
+ paymentPlan:
+ summary: Payment Plan
+ description: Payment Plan
+ value: *ref_76
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ tags:
+ - Payment plans
+ summary: Delete payment plan
+ description: |
+ Delete an existing payment plan.
+ **Note:** After you delete a payment plan, you can't reuse the paymentPlanId.
+ operationId: deletePaymentPlan
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: paymentPlanId
+ in: path
+ description: Unique identifier that the merchant assigned to the payment plan.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ responses:
+ '204':
+ description: Successful request. We deleted the payment plan.
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/subscriptions:
+ post:
+ tags:
+ - Subscriptions
+ summary: Create subscription
+ description: Create a new subscription.
+ operationId: createSubscription
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ description: Unique identifier that our gateway assigned to the terminal.
+ required: true
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_293
+ - paymentMethod
+ - paymentPlanId
+ - startDate
+ - subscriptionId
+ type: object
+ properties: &ref_294
+ subscriptionId:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigned to the subscription.
+ paymentPlanId:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigned to the payment plan.
+ paymentMethod:
+ type: object
+ description: Object that contains information about the customer's payment details.
+ oneOf:
+ - required: &ref_108
+ - type
+ - token
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: &ref_109
+ type:
+ type: string
+ description: Method that the payment device used to take the payment.
+ enum:
+ - secureToken
+ accountType:
+ type: string
+ description: |
+ Indicates the customer’s account type.
+ **Note:** Credit card transactions don't require **accountType**.
+ enum:
+ - checking
+ - savings
+ token:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: Unique token that the gateway assigned to the payment details.
+ name:
+ maxLength: 128
+ minLength: 5
+ type: string
+ description: |
+ Name of the subscription.
+ This value replaces the name inherited from the payment plan.
+ description:
+ maxLength: 128
+ minLength: 1
+ type: string
+ description: |
+ Description of the subscription.
+ This value replaces the description inherited from the payment plan.
+ setupOrder:
+ description: Object that contains information about the initial cost that a customer pays to set up the subscription.
+ type: object
+ allOf: &ref_82
+ - type: object
+ properties: *ref_73
+ - type: object
+ properties:
+ orderId:
+ maxLength: 24
+ minLength: 1
+ type: string
+ description: A unique identifier assigned by the merchant.
+ amount:
+ type: integer
+ format: int64
+ description: Total amount before surcharges. The value is in the currency's lowest denomination, for example, cents.
+ description:
+ maxLength: 1024
+ minLength: 1
+ type: string
+ description: Description of the transaction.
+ breakdown:
+ required: *ref_71
+ type: object
+ description: |
+ Object that contains information about the taxes that apply to the transaction.
+ properties: *ref_72
+ recurringOrder:
+ type: object
+ description: |
+ Object that contains information about the cost of each payment.
+ **Note:** Send this object only if the value for **type** is `automatic`.
+ allOf: *ref_81
+ startDate:
+ type: string
+ format: date
+ description: |
+ Format: **YYYY-MM-DD**
+ Subscription's start date.
+ endDate:
+ type: string
+ format: date
+ description: |
+ Format: **YYYY-MM-DD**
+ Subscription's end date.
+ **Note:** If you provide values for both **length** and **endDate**,
+ our gateway uses the value for **endDate** to determine when the subscription should end.
+ length:
+ minimum: 0
+ type: integer
+ format: int32
+ description: |
+ Total number of billing cycles. To indicate that the subscription should run indefinitely, send a value of `0`.
+ This value replaces the **length** inherited from the payment plan.
+ **Note:** If you provide values for both **length** and **endDate**,
+ our gateway uses the value for **endDate** to determine when the subscription should end.
+ pauseCollectionFor:
+ type: integer
+ format: int32
+ description: |
+ Number of billing cycles that the merchant wants to pause payments for.
+ For example, if the merchant wants to offer a free trial period.
+ examples:
+ createSubscription:
+ summary: Subscription
+ description: Subscription
+ value: &ref_475
+ subscriptionId: 11001_subscription_cinema
+ paymentPlanId: 1001_payment_plan_yearly
+ paymentMethod:
+ type: secureToken
+ token: '2967533500670317'
+ name: subscription from postman
+ description: created through postman for card token
+ setupOrder:
+ amount: 1010
+ description: setup order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ orderId: setup order
+ recurringOrder:
+ amount: 1010
+ description: recurring order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ startDate: '2023-07-01'
+ endDate: '2025-07-01'
+ length: 2
+ pauseCollectionFor: 0
+ required: true
+ responses:
+ '201':
+ description: Successful request. We created the subscription.
+ content:
+ application/json:
+ schema:
+ required: &ref_83
+ - subscriptionId
+ - processingTerminalId
+ - paymentPlan
+ - secureToken
+ - name
+ - currency
+ - currentState
+ - startDate
+ - type
+ - frequency
+ type: object
+ properties: &ref_84
+ subscriptionId:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigned to the subscription.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier of the terminal that the subscription is linked to.
+ paymentPlan:
+ required: &ref_289
+ - name
+ - paymentPlanId
+ type: object
+ properties: &ref_290
+ paymentPlanId:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigns to the payment plan.
+ name:
+ maxLength: 128
+ minLength: 5
+ type: string
+ description: Name of the payment plan.
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ secureToken:
+ required: &ref_86
+ - customerName
+ - secureTokenId
+ - status
+ - token
+ type: object
+ description: Object that contains information about the secure token.
+ properties: &ref_87
+ secureTokenId:
+ maxLength: 200
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigned to the secure token.
+ customerName:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Customer's name.
+ token:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: |
+ Token that the merchant can use in future transactions to represent the customer's payment details. The token:
+ - Begins with the six-digit identification number **296753**.
+ - Contains up to 12 digits.
+ - Contains a single check digit that we calculate using the Luhn algorithm.
+ status:
+ type: string
+ description: |
+ Status of the customer's bank account. The processor performs a security check on the customer's bank account and returns the status of the account.
+ **Note**: Depending on the merchant's account settings, this feature may be unavailable.
+ enum:
+ - notValidated
+ - cvvValidated
+ - validationFailed
+ - issueNumberValidated
+ - cardNumberValidated
+ - bankAccountValidated
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ name:
+ maxLength: 128
+ minLength: 5
+ type: string
+ description: Name of the subscription.
+ description:
+ maxLength: 128
+ minLength: 1
+ type: string
+ description: Description of the subscription.
+ currency:
+ type: string
+ description: Currency code for the subscription. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ setupOrder:
+ description: Object that contains information about the initial cost that a customer pays to set up the subscription.
+ type: object
+ allOf: *ref_82
+ recurringOrder:
+ type: object
+ description: |
+ Object that contains information about the cost of each payment.
+ **Note:** Send this object only if the value for **type** is `automatic`.
+ allOf: *ref_81
+ currentState:
+ required: &ref_88
+ - paidInvoices
+ - status
+ type: object
+ properties: &ref_89
+ status:
+ type: string
+ description: |
+ Status of the Subscription.
+
+ - 'active' - Subscription is active.
+ - 'completed' - Subscription has reached the end date or the total number of billing cycles.
+ - 'cancelled' - Merchant deactivated the subscription.
+ - 'suspended' - Subscription is suspended. For example, if the customer misses payments.
+ enum:
+ - active
+ - completed
+ - suspended
+ - cancelled
+ nextDueDate:
+ type: string
+ description: Date that the merchant collects the next payment.
+ format: date
+ paidInvoices:
+ minimum: 0
+ type: integer
+ description: Number of payments that the merchant has collected.
+ format: int32
+ outstandingInvoices:
+ minimum: 0
+ type: integer
+ description: |
+ Number of payments until the end of the subscription.
+ Our gateway returns a value for **outstandingInvoices** only if the subscription
+ has an end date or a fixed number of billing cycles.
+ format: int32
+ description: A snapshot of the subscription's current state.
+ startDate:
+ type: string
+ format: date
+ description: |
+ Format: **YYYY-MM-DD**
+ Subscription's start date.
+ endDate:
+ type: string
+ format: date
+ description: |
+ Format: **YYYY-MM-DD**
+ Subscription's end date.
+ **Note:** If you provide values for both **length** and **endDate**,
+ our gateway uses the value for **endDate** to determine when the subscription should end.
+ length:
+ minimum: 0
+ type: integer
+ format: int32
+ description: |
+ Total number of billing cycles. To indicate that the subscription should run indefinitely, send a value of `0`. This value replaces the **length** inherited from the payment plan.
+ **Note:** If you provide values for both **length** and **endDate**, our gateway uses the value for **endDate** to determine when the subscription should end.
+ type:
+ type: string
+ description: |
+ How the merchant takes the payment from the customer’s account.
+ - `manual` – The merchant manually collects payments from the customer.
+ - `automatic` – The terminal automatically collects payments from the customer.
+ enum:
+ - manual
+ - automatic
+ frequency:
+ type: string
+ description: Indicates how often the merchant or the terminal collects a payment from the customer.
+ enum:
+ - weekly
+ - fortnightly
+ - monthly
+ - quarterly
+ - yearly
+ pauseCollectionFor:
+ minimum: 0
+ type: integer
+ format: int32
+ description: |
+ Number of billing cycles that the merchant wants to pause payments for.
+ For example, if the merchant wants to offer a free trial period.
+ examples:
+ createdSubscription:
+ summary: Subscription
+ description: Subscription
+ value: &ref_85
+ subscriptionId: 1001_subscription_cinema
+ processingTerminalId: '1001'
+ paymentPlan:
+ paymentPlanId: 1001_paymentplan_yearly
+ name: yearly payment plan
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/payment-plans/1001_paymentplan_yearly
+ secureToken:
+ secureTokenId: SecureCard1001
+ customerName: Joe Bloggs
+ token: '2967533500670317'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens/SecureCard1001
+ name: avant-garde
+ description: avant-garde cinema subscription
+ currency: EUR
+ setupOrder:
+ orderId: setup-order
+ amount: 1010
+ description: setup order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ recurringOrder:
+ amount: 1010
+ description: recurring order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ currentState:
+ status: active
+ nextDueDate: '2023-04-25'
+ paidInvoices: 0
+ outstandingInvoices: 3
+ startDate: '2023-04-25'
+ endDate: '2025-04-25'
+ length: 24
+ type: automatic
+ frequency: yearly
+ pauseCollectionFor: 0
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Subscriptions
+ summary: List subscriptions
+ description: |
+ List subscriptions linked to a terminal.
+ To filter your results, use the query parameters.
+ operationId: listSubscriptions
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: customerName
+ in: query
+ description: Filter by the customer's name.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: last4
+ in: query
+ description: Filter by the last four digits of the card or account number.
+ schema:
+ pattern: '[0-9]{4}'
+ type: string
+ - name: paymentPlan
+ in: query
+ description: Filter by the name of the payment plan.
+ schema:
+ maxLength: 128
+ minLength: 1
+ type: string
+ - name: frequency
+ in: query
+ description: Filter by the frequency of subscription payments.
+ schema:
+ type: string
+ enum:
+ - weekly
+ - fortnightly
+ - monthly
+ - quarterly
+ - yearly
+ - name: status
+ in: query
+ description: Filter by the current status of the subscription.
+ schema:
+ type: string
+ enum:
+ - active
+ - completed
+ - suspended
+ - cancelled
+ - name: endDate
+ in: query
+ description: |
+ Format: `YYYY-MM-DD`
+ Filter subscriptions that end on a specific date.
+ schema:
+ type: string
+ format: date
+ - name: nextDueDate
+ in: query
+ description: |
+ Format: `YYYY-MM-DD`
+ Filter subscriptions by the date that the next payment is collected.
+ schema:
+ type: string
+ format: date
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of subscriptions.
+ content:
+ application/json:
+ schema:
+ required: &ref_291
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ allOf: &ref_292
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of subscriptions.
+ items:
+ required: *ref_83
+ type: object
+ properties: *ref_84
+ examples:
+ paginatedResults:
+ summary: Paginated Subscription
+ description: Example of Paginated Subscription
+ value: &ref_474
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - subscriptionId: subscription 6
+ processingTerminalId: '1001'
+ paymentPlan:
+ paymentPlanId: '5'
+ name: platinum plan
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/payment-plans/5
+ secureToken:
+ secureTokenId: SecureCard1001
+ customerName: Joe Bloggs
+ token: '2967533500670317'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens/SecureCard1001
+ name: subscription 6
+ description: this is description
+ currency: EUR
+ setupOrder:
+ orderId: order 201
+ amount: 1010
+ description: payment plan setup order
+ recurringOrder:
+ amount: 100
+ currentState:
+ status: active
+ nextDueDate: '2024-04-11'
+ paidInvoices: 1
+ outstandingInvoices: 10
+ startDate: '2023-04-11'
+ endDate: '2033-04-11'
+ length: 0
+ type: automatic
+ frequency: yearly
+ pauseCollectionFor: 0
+ - subscriptionId: subscripion 5
+ processingTerminalId: '1001'
+ paymentPlan:
+ paymentPlanId: '1'
+ name: gold plan
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/payment-plans/1
+ secureToken:
+ secureTokenId: SecureCard1001
+ customerName: Joe Bloggs
+ token: '2967533500670317'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens/SecureCard1001
+ name: subscription 5
+ description: some description
+ currency: EUR
+ setupOrder:
+ orderId: order-509
+ amount: 1010
+ recurringOrder:
+ amount: 100
+ currentState:
+ status: active
+ nextDueDate: '2024-04-11'
+ paidInvoices: 1
+ outstandingInvoices: 10
+ startDate: '2023-04-11'
+ endDate: '2033-04-11'
+ length: 0
+ type: automatic
+ frequency: yearly
+ pauseCollectionFor: 0
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/processing-terminals/1001/subscriptions?limit=2&after=LN3K88F1UH
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/processing-terminals/1001/subscriptions?limit=2&before=DBDVNUL6RG
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/subscriptions/{subscriptionId}:
+ get:
+ tags:
+ - Subscriptions
+ summary: Retrieve subscription
+ description: Retrieve a specific subscription.
+ operationId: getSubscription
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: subscriptionId
+ in: path
+ description: Unique identifier of the subscription that you want to view.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the requested subscription.
+ content:
+ application/json:
+ schema:
+ required: *ref_83
+ type: object
+ properties: *ref_84
+ examples:
+ subscription:
+ summary: Subscription
+ description: Subscription
+ value: *ref_85
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ patch:
+ tags:
+ - Subscriptions
+ summary: Update subscription
+ description: |
+ Make changes to a subscription.
+
+ Structure your request to follow the RFC 6902 standard.
+ operationId: updateSubscription
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: subscriptionId
+ in: path
+ description: Unique identifier of the subscription that you want to update.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: array
+ description: A JSONPatch document as defined by RFC 6902
+ example: *ref_77
+ items: *ref_78
+ required: true
+ responses:
+ '200':
+ description: Successful request. We have updated the subscription.
+ content:
+ application/json:
+ schema:
+ required: *ref_83
+ type: object
+ properties: *ref_84
+ examples:
+ subscription:
+ summary: Subscription
+ description: Subscription
+ value: *ref_85
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/subscriptions/{subscriptionId}/deactivate:
+ post:
+ tags:
+ - Subscriptions
+ summary: Deactivate subscription
+ description: Deactivate a subscription.
+ operationId: deactivateSubscription
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: subscriptionId
+ in: path
+ description: Unique identifier of the subscription that you want to deactivate.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. We deactivated the subscription.
+ content:
+ application/problem+json:
+ schema:
+ required: *ref_83
+ type: object
+ properties: *ref_84
+ examples:
+ deactivateSubscription:
+ summary: Deactivate subscription
+ description: Deactivate a subscription
+ value: &ref_476
+ subscriptionId: 1001_subscription_cinema
+ processingTerminalId: '1001'
+ paymentPlan:
+ paymentPlanId: 1001_paymentplan_yearly
+ name: yearly payment plan
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/payment-plans/1001_paymentplan_yearly
+ secureToken:
+ secureTokenId: SecureCard1001
+ customerName: Joe Bloggs
+ token: '2967533500670317'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens/SecureCard1001
+ name: avant-garde
+ description: avant-garde cinema subscription
+ currency: EUR
+ setupOrder:
+ orderId: setup-order
+ amount: 1010
+ description: setup order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ recurringOrder:
+ amount: 1010
+ description: recurring order
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ currentState:
+ status: cancelled
+ nextDueDate: '2023-04-25'
+ paidInvoices: 0
+ outstandingInvoices: 3
+ startDate: '2023-04-25'
+ endDate: '2025-04-25'
+ length: 24
+ type: automatic
+ frequency: yearly
+ pauseCollectionFor: 0
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/subscriptions/{subscriptionId}/reactivate:
+ post:
+ tags:
+ - Subscriptions
+ summary: Re-activate subscription
+ description: Re-activate an existing subscription.
+ operationId: reactivateSubscription
+ parameters:
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: subscriptionId
+ in: path
+ description: Unique identifier of the subscription that you want to re-activate.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. We re-activated the subscription.
+ content:
+ application/json:
+ schema:
+ required: *ref_83
+ type: object
+ properties: *ref_84
+ examples:
+ subscription:
+ summary: Subscription
+ description: Subscription
+ value: *ref_85
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/subscriptions/{subscriptionId}/pay:
+ post:
+ tags:
+ - Subscriptions
+ summary: Pay manual subscription
+ description: Process payment for a manual subscription.
+ operationId: paySubscription
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: subscriptionId
+ in: path
+ description: Unique identifier of the subscription that you want to make a payment to.
+ required: true
+ schema:
+ maxLength: 48
+ minLength: 1
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_295
+ - order
+ properties: &ref_296
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who initiated the request.
+ order:
+ description: Object that contains information about the initial cost that a customer pays to set up the subscription.
+ type: object
+ allOf: *ref_82
+ examples:
+ subscriptionPaymentRequest:
+ summary: Subscription manual payment
+ description: Subscription manual payment
+ value: &ref_477
+ operator: Giuseppe Green
+ order:
+ amount: 1010
+ description: manual payment
+ breakdown:
+ subtotal: 1000
+ taxes:
+ - name: VAT
+ rate: 1
+ orderId: manual payment orderx12s
+ required: true
+ responses:
+ '201':
+ description: Successful request. We have processed the payment for the subscription.
+ content:
+ application/json:
+ schema:
+ required: &ref_297
+ - subscriptionId
+ - processingTerminalId
+ - payment
+ - secureToken
+ - currentState
+ type: object
+ properties: &ref_298
+ subscriptionId:
+ type: string
+ description: Unique identifier that the merchant assigned to the subscription.
+ processingTerminalId:
+ type: string
+ description: Unique identifier of the terminal that the subscription is linked to.
+ payment:
+ required: &ref_139
+ - amount
+ - currency
+ - dateTime
+ - paymentId
+ - status
+ - responseCode
+ - responseMessage
+ type: object
+ description: Object that contains information about a payment.
+ properties: &ref_140
+ paymentId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier of the payment.
+ dateTime:
+ type: string
+ format: date-time
+ description: Date and time that the payment was processed.
+ currency:
+ type: string
+ description: Currency code for the payment. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ amount:
+ type: integer
+ format: int64
+ description: Amount of the payment. This value is in the currency’s lowest denomination, for example, cents.
+ status:
+ type: string
+ description: Current status of the payment.
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - referral
+ - pickup
+ - reversal
+ - returned
+ - admin
+ - expired
+ - accepted
+ - review
+ responseCode:
+ type: string
+ description: |
+ Response from the processor.
+ - `A` - The processor approved the transaction.
+ - `D` - The processor declined the transaction.
+ - `E` - The processor received the transaction but will process the transaction later.
+ - `P` - The processor authorized a portion of the original amount of the transaction.
+ - `R` - The issuer declined the transaction and indicated that the customer should contact their bank.
+ - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
+ enum:
+ - A
+ - D
+ - E
+ - P
+ - R
+ - C
+ responseMessage:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Description of the response from the processor.
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ secureToken:
+ required: *ref_86
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_87
+ currentState:
+ required: *ref_88
+ type: object
+ properties: *ref_89
+ description: A snapshot of the subscription's current state.
+ examples:
+ subscriptionPaymentResponse:
+ summary: Subscription manual payment
+ description: Subscription manual payment
+ value: &ref_478
+ subscriptionId: 1017_subscription_metro
+ processingTerminalId: '1017'
+ payment:
+ paymentId: GTZH5WVXK9
+ dateTime: '2023-07-27T23:36:03.506+01:00'
+ amount: 1010
+ currency: CAD
+ status: ready
+ responseCode: A
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/bank-transfer-payments/GTZH5WVXK9
+ secureToken:
+ secureTokenId: MREF_465772d1-ab4e-4881-8052-5021a745ed18Df
+ customerName: Joe Bloggs
+ token: '2967536686508441'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1017/secure-tokens/MREF_465772d1-ab4e-4881-8052-5021a745ed18Df
+ currentState:
+ status: active
+ nextDueDate: '2024-07-01'
+ paidInvoices: 1
+ outstandingInvoices: 2
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/secure-tokens:
+ post:
+ tags:
+ - Secure tokens
+ summary: Create secure token
+ description: Save the customer's payment details to use in future transactions.
+ operationId: createSecureToken
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ required: true
+ description: Unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_329
+ - source
+ type: object
+ properties: &ref_330
+ secureTokenId:
+ maxLength: 200
+ minLength: 1
+ type: string
+ description: |
+ Unique identifier that the merchant created for the secure token that represents the customer's payment details.
+ If the merchant doesn't create a secureTokenId, the gateway generates one and returns it in the response.
+ operator:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Operator who saved the customer's payment details.
+ mitAgreement:
+ type: string
+ description: |
+ Indicates how the merchant can use the customer's card details, as agreed by the customer:
+
+ - `unscheduled` - Transactions for a fixed or variable amount that are run at a certain pre-defined event.
+ - `recurring` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Recurring transactions don't have a fixed duration and run until the customer cancels the agreement.
+ - `installment` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Installment transactions have a fixed duration.
+ enum:
+ - unscheduled
+ - recurring
+ - installment
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: &ref_98
+ firstName:
+ maxLength: 60
+ minLength: 0
+ type: string
+ description: Customer's first name.
+ lastName:
+ maxLength: 60
+ minLength: 0
+ type: string
+ description: Customer's last name.
+ dateOfBirth:
+ type: string
+ format: date
+ description: Customer's date of birth. The format for this value is **YYYY-MM-DD**.
+ referenceNumber:
+ maxLength: 48
+ minLength: 0
+ type: string
+ description: |
+ Identifier of the transaction, also known as a customer code.
+
+ For requests, you must send a value for **referenceNumber** if the customer provides one.
+ billingAddress:
+ required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ shippingAddress:
+ description: Object that contains information about the customer and their shipping address.
+ type: object
+ properties: &ref_121
+ recipientName:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Recipient's name.
+ address:
+ required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ contactMethods:
+ uniqueItems: true
+ description: Customer's contact information.
+ type: array
+ items:
+ oneOf: *ref_2
+ notificationLanguage:
+ maxLength: 2
+ minLength: 2
+ type: string
+ format: iso-639-1
+ example: en
+ description: |
+ Language that the customer uses for notifications.
+
+ This code follows the ISO 639-1 alpha-2 standard.
+ enum:
+ - en
+ - fr
+ ipAddress:
+ required: &ref_104
+ - type
+ - value
+ type: object
+ writeOnly: true
+ description: Object that contains information about the IP address of the device that sent the request.
+ properties: &ref_105
+ type:
+ type: string
+ description: Internet protocol version of the IP address.
+ enum:
+ - ipv4
+ - ipv6
+ value:
+ type: string
+ description: IP address of the merchant's POS.
+ source:
+ description: Object that contains information about the payment method to tokenize.
+ type: object
+ oneOf:
+ - required: &ref_161
+ - type
+ - accountNumber
+ - nameOnAccount
+ - routingNumber
+ type: object
+ writeOnly: true
+ title: ACH
+ description: Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
+ properties: &ref_162
+ type:
+ type: string
+ description: Method that the terminal used to take the payment.
+ enum:
+ - ach
+ accountType:
+ type: string
+ description: |
+ Indicates the customer’s account type.
+ **Note:** Credit card transactions don't require **accountType**.
+ enum:
+ - checking
+ - savings
+ secCode:
+ type: string
+ description: |
+ Indicates the type of authorization for the transaction.
+ - `web` – Online transaction.
+ - `tel` – Telephone transaction.
+ - `ccd` – Corporate credit card or debit card transaction.
+ - `ppd` – Pre-arranged transaction.
+ enum:
+ - web
+ - tel
+ - ccd
+ - ppd
+ nameOnAccount:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Customer's name.
+ accountNumber:
+ maxLength: 17
+ minLength: 4
+ pattern: ^[0-9]*$
+ type: string
+ description: |
+ Customer’s bank account number.
+ **Note:** In responses, our gateway shows only the last four digits of the account number. For example, `*****5929`.
+ routingNumber:
+ maxLength: 9
+ minLength: 9
+ pattern: ^[0-9]*$
+ type: string
+ description: |
+ Routing number of the customer’s account.
+ **Note:** In responses, our gateway shows only the last four digits of the account’s routing number. For example, *****4162.
+ - required: &ref_163
+ - type
+ - nameOnAccount
+ - accountNumber
+ - transitNumber
+ - institutionNumber
+ type: object
+ writeOnly: true
+ title: PAD
+ description: Object that contains information about the payment details for the customer’s preauthorized electronic debit (PAD) transactions.
+ properties: &ref_164
+ type:
+ type: string
+ description: Method that the payment device used to take the payment.
+ enum:
+ - pad
+ accountType:
+ type: string
+ description: |
+ Indicates the customer’s account type.
+ **Note:** Credit card transactions don't require **accountType**.
+ enum:
+ - checking
+ - savings
+ nameOnAccount:
+ maxLength: 29
+ minLength: 1
+ type: string
+ description: Customer's name.
+ accountNumber:
+ maxLength: 12
+ minLength: 7
+ pattern: ^[0-9]*$
+ type: string
+ description: |
+ Customer’s account number.
+ **Note:** In responses, our gateway shows only the last four digits of the account number. For example, `*****5929`.
+ transitNumber:
+ maxLength: 5
+ minLength: 5
+ pattern: ^[0-9]*$
+ type: string
+ description: Five-digit code that represents the customer’s bank branch.
+ institutionNumber:
+ maxLength: 3
+ minLength: 3
+ pattern: ^[0-9]*$
+ type: string
+ description: Three-digit code that represents the customer’s bank.
+ - required: &ref_106
+ - type
+ - cardDetails
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: &ref_107
+ type:
+ type: string
+ description: Method that the terminal used to take the payment.
+ enum:
+ - card
+ accountType:
+ type: string
+ description: |
+ Indicates the customer’s account type.
+ **Note:** Credit card transactions don't require **accountType**.
+ enum:
+ - checking
+ - savings
+ cardDetails:
+ type: object
+ oneOf:
+ - required: &ref_309
+ - entryMethod
+ - device
+ - rawData
+ type: object
+ title: Raw
+ description: Object that contains information about the unencrypted card details.
+ properties: &ref_310
+ entryMethod:
+ type: string
+ description: Method that the device used to capture the card details.
+ enum:
+ - raw
+ downgradeTo:
+ type: string
+ description: |
+ If an offline transaction is not approved using the initial entry method, reprocess the transaction using a downgraded entry method.
+ For example, an Integrated Circuit Card (ICC) transaction can be downgraded to a swiped transaction or to a keyed transaction.
+ enum:
+ - keyed
+ - swiped
+ device:
+ required: &ref_90
+ - model
+ - serialNumber
+ type: object
+ properties: &ref_91
+ model:
+ type: string
+ description: Model of the device that the merchant used to process the transaction.
+ enum:
+ - bbposChp
+ - bbposChp2x
+ - bbposChp3x
+ - bbposRambler
+ - bbposWp
+ - bbposWp2
+ - bbposWp3
+ - genericCtlsMsr
+ - genericMsr
+ - idtechAugusta
+ - idtechMinismart
+ - idtechSredkey
+ - idtechVp3300
+ - idtechVp5300
+ - idtechVp6300
+ - idtechVp6800
+ - ingenicoAxiumDx4000
+ - ingenicoAxiumDx8000
+ - ingenicoAxiumEx8000
+ - ingenicoIct220
+ - ingenicoIpp320
+ - ingenicoIpp350
+ - ingenicoIuc285
+ - ingenicoL3000
+ - ingenicoL7000
+ - ingenicoS2000
+ - ingenicoS3000
+ - ingenicoS4000
+ - ingenicoS5000
+ - ingenicoS7000
+ - paxA80
+ - paxA920
+ - paxA920Pro
+ - paxE500
+ - paxE700
+ - paxE800
+ - paxIm30
+ - uic680
+ - uicBezel8
+ category:
+ type: string
+ description: Indicates if the device is attended or unattended.
+ enum:
+ - attended
+ - unattended
+ default: attended
+ serialNumber:
+ maxLength: 45
+ minLength: 1
+ type: string
+ description: Serial number of the physical device.
+ firmwareVersion:
+ type: string
+ description: Firmware version of the physical device.
+ config:
+ required: &ref_307
+ - quickChip
+ type: object
+ properties: &ref_308
+ quickChip:
+ type: boolean
+ default: false
+ description: Indicates if Quick Chip mode is active on a merchant’s POS terminal.
+ description: Object that contains information about the configuration of the POS terminal.
+ description: Object that contains information about the physical device the merchant used to capture the customer’s card details.
+ rawData:
+ maxLength: 2147483647
+ minLength: 1
+ type: string
+ format: hexadecimal
+ description: Unencrypted data from the POS terminal.
+ cardholderSignature:
+ type: string
+ description: Cardholder's signature in the format described in the [Special Fields and Parameters](https://worldnet.payroc.com/selfcare:api_specification:special_fields_and_parameters#the_signature_field_format) section.
+ - required: &ref_311
+ - entryMethod
+ - device
+ - iccData
+ type: object
+ title: Chip
+ description: Object that contains information about the Integrated Circuit Card (ICC).
+ properties: &ref_312
+ entryMethod:
+ type: string
+ description: Method that the device used to capture the card details.
+ enum:
+ - icc
+ downgradeTo:
+ type: string
+ description: |
+ If an offline transaction is not approved using the initial entry method, reprocess the transaction using a downgraded entry method.
+ For example, an Integrated Circuit Card (ICC) transaction can be downgraded to a swiped transaction or a keyed transaction.
+ enum:
+ - keyed
+ - swiped
+ device:
+ required: &ref_92
+ - model
+ - dataKsn
+ - serialNumber
+ type: object
+ description: Object that contains information about the encryption details of the POS terminal.
+ allOf: &ref_93
+ - required: *ref_90
+ type: object
+ properties: *ref_91
+ description: Object that contains information about the physical device the merchant used to capture the customer’s card details.
+ - type: object
+ properties:
+ dataKsn:
+ maxLength: 20
+ minLength: 20
+ type: string
+ format: hexadecimal
+ description: Key serial number.
+ iccData:
+ type: string
+ format: hexadecimal
+ description: EMV tags in Tag-Length-Value (TLV) format.
+ firstDigitOfPan:
+ maxLength: 1
+ minLength: 1
+ type: string
+ description: First digit of the card number.
+ cardholderSignature:
+ type: string
+ description: Cardholder’s signature. For more information about the format of the signature, see Special Fields and Parameters.
+ - required: &ref_321
+ - entryMethod
+ - keyedData
+ type: object
+ title: Keyed
+ description: Object that contains information about the keyed card details.
+ properties: &ref_322
+ entryMethod:
+ type: string
+ description: Method that the device used to capture the card details.
+ enum:
+ - keyed
+ keyedData:
+ type: object
+ oneOf:
+ - required: &ref_313
+ - dataFormat
+ - device
+ - encryptedData
+ type: object
+ title: Encrypted
+ description: Object that contains information about the encrypted card data for keyed transactions.
+ properties: &ref_314
+ dataFormat:
+ type: string
+ description: "Indicates the data format of the customer’s card data.\n-\t`plainText` – Data is not truncated and shows the raw data.\n-\t`fullyEncrypted` – Data is truncated to show only the first digit of the customer’s account number.\n-\t`partiallyEncrypted` – Data is truncated to show only the first six digits and the last four digits of the customer’s card number.\n"
+ enum:
+ - fullyEncrypted
+ device:
+ required: *ref_92
+ type: object
+ description: Object that contains information about the encryption details of the POS terminal.
+ allOf: *ref_93
+ encryptedData:
+ maxLength: 2147483647
+ minLength: 1
+ type: string
+ description: Encrypted card data.
+ format: hexadecimal
+ firstDigitOfPan:
+ maxLength: 1
+ minLength: 1
+ type: string
+ description: First digit of the customer’s card number.
+ - required: &ref_315
+ - dataFormat
+ - device
+ - encryptedPan
+ - expiryDate
+ - maskedPan
+ type: object
+ title: Partially encrypted
+ description: Object that contains information about the partially-encrypted card data for keyed transactions.
+ properties: &ref_316
+ dataFormat:
+ type: string
+ description: "Indicates the data format of the customer’s card data.\n-\t`plainText` – Data is not truncated and shows the raw data.\n-\t`fullyEncrypted` – Data is truncated to show only the first digit of the customer’s account number.\n-\t`partiallyEncrypted` – Data is truncated to show only the first six digits and the last four digits of the customer’s card number.\n"
+ enum:
+ - partiallyEncrypted
+ device:
+ required: *ref_92
+ type: object
+ description: Object that contains information about the encryption details of the POS terminal.
+ allOf: *ref_93
+ encryptedPan:
+ maxLength: 2147483647
+ minLength: 1
+ type: string
+ format: hexadecimal
+ description: Encrypted card number.
+ maskedPan:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: |
+ Masked card number.
+ The gateway shows only the first six digits and the last four digits of the account number. For example, `548010*****5929`.
+ expiryDate:
+ pattern: '[0-9]{4}'
+ type: string
+ description: Expiry date of the customer’s card.
+ cvv:
+ pattern: '[0-9]{3,4}'
+ type: string
+ description: Security code of the customer’s card.
+ cvvEncrypted:
+ type: string
+ format: hexadecimal
+ description: Encrypted security code data.
+ issueNumber:
+ pattern: '[0-9]{1,2}'
+ type: string
+ description: Issue number of the customer’s card.
+ - required: &ref_317
+ - dataFormat
+ - cardNumber
+ type: object
+ title: Unencrypted
+ description: Object that contains information about the plain-text card data for keyed transactions.
+ properties: &ref_318
+ dataFormat:
+ type: string
+ description: "Indicates the data format of the customer’s card data.\n-\t`plainText` – Data is not truncated and shows the raw data.\n-\t`fullyEncrypted` – Data is truncated to show only the first digit of the customer’s account number.\n-\t`partiallyEncrypted` – Data is truncated to show only the first six digits and the last four digits of the customer’s card number.\n"
+ enum:
+ - plainText
+ device:
+ required: *ref_90
+ type: object
+ properties: *ref_91
+ description: Object that contains information about the physical device the merchant used to capture the customer’s card details.
+ cardNumber:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: Customer’s card number.
+ expiryDate:
+ pattern: '[0-9]{4}'
+ type: string
+ description: |
+ Expiry date of the customer’s card.
+ **Note:** This field is required for most BIN lookups or electronic voucher transactions.
+ cvv:
+ pattern: '[0-9]{3,4}'
+ type: string
+ description: Security code of the customer’s card.
+ issueNumber:
+ pattern: '[0-9]{1,2}'
+ type: string
+ description: Issue number of the customer’s card.
+ cardholderName:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Cardholder’s name.
+ cardholderSignature:
+ type: string
+ description: Cardholder’s signature. For more information about the format of the signature, see Special Fields and Parameters.
+ pinDetails:
+ type: object
+ oneOf:
+ - required: &ref_94
+ - dataFormat
+ - pin
+ - pinKsn
+ type: object
+ title: Encrypted
+ description: Object that contains information about encrypted PIN details.
+ properties: &ref_95
+ dataFormat:
+ type: string
+ description: Indicates the format of the PIN data.
+ enum:
+ - dukpt
+ pin:
+ maxLength: 2147483647
+ minLength: 1
+ type: string
+ description: |
+ Encrypted PIN.
+ **Note:** PIN is encrypted using the DUKPT scheme.
+ format: hexadecimal
+ pinKsn:
+ maxLength: 20
+ minLength: 20
+ type: string
+ description: Key serial number.
+ format: hexadecimal
+ ebtDetails:
+ required: &ref_96
+ - benefitCategory
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ allOf: &ref_97
+ - required: &ref_129
+ - benefitCategory
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ properties: &ref_130
+ benefitCategory:
+ type: string
+ description: |
+ Indicates if the balance relates to an EBT Cash account or an EBT SNAP account.
+ - `cash` – EBT Cash
+ - `foodStamp` – EBT SNAP
+ enum:
+ - cash
+ - foodStamp
+ withdrawal:
+ type: boolean
+ description: |
+ Indicates a request to withdraw cash.
+ **Note:** Cash withdrawal is available only for EBT Cash benefit accounts.
+ - type: object
+ properties:
+ voucher:
+ required: &ref_319
+ - approvalCode
+ - serialNumber
+ type: object
+ properties: &ref_320
+ approvalCode:
+ maxLength: 6
+ minLength: 6
+ type: string
+ description: Authorization code that the processor issued for the transaction.
+ serialNumber:
+ maxLength: 15
+ minLength: 7
+ type: string
+ description: Serial number of the voucher.
+ description: |
+ Object that contains information about the EBT voucher.
+ **Note:** Voucher is available only for EBT Cash benefit accounts.
+ - required: &ref_327
+ - entryMethod
+ - swipedData
+ type: object
+ title: Swiped
+ description: Object that contains information about the customer’s card details for swiped transactions.
+ properties: &ref_328
+ entryMethod:
+ type: string
+ description: Method that the device used to capture the card details.
+ enum:
+ - swiped
+ downgradeTo:
+ type: string
+ description: |
+ If an offline transaction is not approved using the initial entry method, reprocess the transaction using a downgraded entry method.
+ For example, a swiped transaction can be downgraded to a keyed transaction.
+ enum:
+ - keyed
+ - swiped
+ swipedData:
+ type: object
+ oneOf:
+ - required: &ref_323
+ - dataFormat
+ - device
+ - encryptedData
+ type: object
+ title: Encrypted
+ description: Object that contains information about the encrypted swiped card data.
+ properties: &ref_324
+ dataFormat:
+ type: string
+ description: |
+ Indicates the method the customer’s card data is encrypted.
+ Send swiped card data in encrypted format or `plainText` format.
+ enum:
+ - encrypted
+ device:
+ required: *ref_92
+ type: object
+ description: Object that contains information about the encryption details of the POS terminal.
+ allOf: *ref_93
+ encryptedData:
+ maxLength: 2147483647
+ minLength: 1
+ type: string
+ format: hexadecimal
+ description: Encrypted data received from the magnetic stripe reader.
+ firstDigitOfPan:
+ maxLength: 1
+ minLength: 1
+ type: string
+ description: First digit of the of the card number.
+ fallback:
+ type: boolean
+ description: Indicates a technical issue with the ICC transaction that resulted in the terminal falling back to a magnetic stripe transaction.
+ fallbackReason:
+ type: string
+ description: Explains the reason for the fallback.
+ enum:
+ - technical
+ - repeatFallback
+ - emptyCandidateList
+ - required: &ref_325
+ - dataFormat
+ - device
+ - trackData
+ type: object
+ title: Unencrypted
+ description: Object that contains information about plain-text swiped card data.
+ properties: &ref_326
+ dataFormat:
+ type: string
+ description: |
+ Indicates the method the customer’s card data is encrypted.
+ Send swiped card data in encrypted format or `plainText` format.
+ enum:
+ - plainText
+ device:
+ required: *ref_90
+ type: object
+ properties: *ref_91
+ description: Object that contains information about the physical device the merchant used to capture the customer’s card details.
+ trackData:
+ maxLength: 256
+ minLength: 16
+ type: string
+ description: Customer’s card data from the swiped transaction.
+ fallback:
+ type: boolean
+ description: Indicates a technical issue with the ICC transaction that resulted in the terminal falling back to a magnetic stripe transaction.
+ fallbackReason:
+ type: string
+ description: Explains the reason for the fallback.
+ enum:
+ - technical
+ - repeatFallback
+ - emptyCandidateList
+ cardholderName:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Cardholder’s name.
+ cardholderSignature:
+ type: string
+ description: Cardholder’s signature. For more information about the format of the signature, see Special Fields and Parameters.
+ pinDetails:
+ type: object
+ oneOf:
+ - required: *ref_94
+ type: object
+ title: Encrypted
+ description: Object that contains information about encrypted PIN details.
+ properties: *ref_95
+ ebtDetails:
+ required: *ref_96
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ allOf: *ref_97
+ threeDSecure:
+ type: object
+ description: Object that contains information for an authentication check on the customer's payment details using the 3-D Secure protocol.
+ oneOf:
+ - required: &ref_110
+ - serviceProvider
+ - mpiReference
+ type: object
+ title: Gateway
+ description: Object that contains the 3-D Secure information from our gateway.
+ properties: &ref_111
+ serviceProvider:
+ type: string
+ description: Provider of your 3-D Secure protocol.
+ enum:
+ - gateway
+ mpiReference:
+ maxLength: 20
+ minLength: 20
+ type: string
+ description: Reference that our gateway assigned to the 3-D Secure authentication response.
+ - required: &ref_112
+ - eci
+ - serviceProvider
+ type: object
+ title: Third party
+ description: Object that contains the 3-D Secure information from a third party.
+ properties: &ref_113
+ serviceProvider:
+ type: string
+ description: Provider of your 3-D Secure protocol.
+ enum:
+ - thirdParty
+ eci:
+ type: string
+ description: E-commerce indicator (ECI) is the result of the authentication check on the payment by the 3-D Secure service.
+ enum:
+ - fullyAuthenticated
+ - attemptedAuthentication
+ xid:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Unique transaction identifier that the merchant assigned to the transaction and sent in the authentication request.
+ cavv:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Cardholder Authentication Value is a cryptographic value that the card issuer sends to prove an online transaction was authorized.
+ dsTransactionId:
+ maxLength: 36
+ minLength: 0
+ type: string
+ description: Directory Server Transaction ID is a unique identifier that the processor assigned to the request.
+ examples:
+ createSecureToken:
+ summary: Secure Token
+ description: Secure Token
+ value: &ref_480
+ operator: Adam Smith
+ mitAgreement: unscheduled
+ customer:
+ firstName: Jessica
+ lastName: Red
+ dateOfBirth: '1990-01-01'
+ referenceNumber: Customer-12
+ billingAddress:
+ address1: Example Street
+ address2: Example address2
+ address3: Example address3
+ city: Fresno
+ state: California
+ country: US
+ postalCode: 93650
+ shippingAddress:
+ recipientName: Example shipping recipientName
+ address:
+ address1: Example shipping street
+ address2: Example shipping address2
+ address3: Exampleshipping address3
+ city: Austin
+ state: Texas
+ country: US
+ postalCode: 73301
+ contactMethods:
+ - type: email
+ value: jessicared@mail.com
+ notificationLanguage: en
+ ipAddress:
+ type: ipv4
+ value: 124.201.101.1
+ source:
+ type: card
+ cardDetails:
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ keyedData:
+ dataFormat: plainText
+ cardNumber: '4001020000000009'
+ expiryDate: '0825'
+ cvv: '713'
+ required: true
+ responses:
+ '201':
+ description: Successful request. We created a secure token that represents your customer's payment details.
+ content:
+ application/json:
+ schema:
+ required: &ref_99
+ - processingTerminalId
+ - secureTokenId
+ - source
+ - status
+ - token
+ type: object
+ description: Object that contains information about the secure token.
+ properties: &ref_100
+ secureTokenId:
+ maxLength: 200
+ minLength: 0
+ type: string
+ description: Unique identifier that the merchant created for the secure token that represents the customer's payment details.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ mitAgreement:
+ type: string
+ description: |
+ Indicates how the merchant can use the customer's card details, as agreed by the customer:
+
+ - `unscheduled` - Transactions for a fixed or variable amount that are run at a certain pre-defined event.
+ - `recurring` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Recurring transactions don't have a fixed duration and run until the customer cancels the agreement.
+ - `installment` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Installment transactions have a fixed duration.
+ enum:
+ - unscheduled
+ - recurring
+ - installment
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ source:
+ description: Object that contains information about the payment method that we tokenized.
+ type: object
+ oneOf:
+ - required: &ref_299
+ - type
+ - nameOnAccount
+ - accountNumber
+ - routingNumber
+ type: object
+ title: ACH account
+ description: Object that contains the customer's account details.
+ properties: &ref_300
+ type:
+ type: string
+ enum:
+ - ach
+ nameOnAccount:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Customer's name.
+ accountNumber:
+ maxLength: 17
+ minLength: 4
+ pattern: ^[0-9]*$
+ type: string
+ description: Customer's account number.
+ routingNumber:
+ maxLength: 9
+ minLength: 9
+ pattern: ^[0-9]*$
+ type: string
+ description: Routing number of the customer's account.
+ - required: &ref_301
+ - type
+ - nameOnAccount
+ - accountNumber
+ - transitNumber
+ - institutionNumber
+ type: object
+ title: PAD account
+ description: Object that contains the customer's account details.
+ properties: &ref_302
+ type:
+ type: string
+ enum:
+ - pad
+ nameOnAccount:
+ maxLength: 29
+ minLength: 1
+ type: string
+ description: Customer's name.
+ accountNumber:
+ maxLength: 12
+ minLength: 7
+ pattern: ^[0-9]*$
+ type: string
+ description: Customer's account number.
+ transitNumber:
+ maxLength: 5
+ minLength: 5
+ pattern: ^[0-9]*$
+ type: string
+ description: Five-digit code that represents the customer's banking branch.
+ institutionNumber:
+ maxLength: 3
+ minLength: 3
+ pattern: ^[0-9]*$
+ type: string
+ description: Three-digit code that represents the customer's bank.
+ - required: &ref_303
+ - type
+ - cardholderName
+ - cardNumber
+ type: object
+ title: Card
+ description: Object that contains the customer's card details.
+ properties: &ref_304
+ type:
+ description: Type of payment.
+ type: string
+ enum:
+ - card
+ cardholderName:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Cardholder's name.
+ cardNumber:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: Primary account number of the customer's card.
+ expiryDate:
+ pattern: '[0-9]{4}'
+ type: string
+ description: Expiry date of the customer's card.
+ token:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: |
+ Token that the merchant can use in future transactions to represent the customer's payment details. The token:
+ - Begins with the six-digit identification number **296753**.
+ - Contains up to 12 digits.
+ - Contains a single check digit that we calculate using the Luhn algorithm.
+ status:
+ type: string
+ description: |
+ Status of the customer's bank account. The processor performs a security check on the customer's bank account and returns the status of the account.
+ **Note**: Depending on the merchant's account settings, this feature may be unavailable.
+ enum:
+ - notValidated
+ - cvvValidated
+ - validationFailed
+ - issueNumberValidated
+ - cardNumberValidated
+ - bankAccountValidated
+ examples:
+ createdSecureToken:
+ summary: Secure Token
+ description: Secure Token
+ value: &ref_101
+ secureTokenId: MREF_fce7bf52-b3b4-4270-aee9-77b938595078Hm
+ processingTerminalId: '1001'
+ mitAgreement: unscheduled
+ customer:
+ firstName: Joe
+ lastName: Bloggs
+ dateOfBirth: '1950-01-01'
+ referenceNumber: Customer-1
+ billingAddress:
+ address1: Example Street
+ address2: Example address2
+ address3: Example address3
+ city: Example Town
+ state: California
+ country: US
+ postalCode: '1234'
+ shippingAddress:
+ recipientName: Example shipping recipientName
+ address:
+ address1: Example shipping street
+ address2: Example shipping address2
+ address3: Exampleshipping address3
+ city: Example shipping city
+ state: Texas
+ country: US
+ postalCode: '1'
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ source:
+ type: card
+ cardholderName: Joe Bloggs
+ cardNumber: 400102******0009
+ expiryDate: '0825'
+ token: '2967532489076298'
+ status: notValidated
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Secure tokens
+ summary: List secure tokens
+ description: Return a list of secure tokens that are currently saved on the terminal.
+ operationId: listSecureTokens
+ parameters:
+ - name: processingTerminalId
+ in: path
+ description: Unique identifier that our gateway assigned to the terminal.
+ required: true
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: secureTokenId
+ in: query
+ description: Filter by the unique secure token.
+ schema:
+ maxLength: 200
+ minLength: 1
+ type: string
+ - name: customerName
+ in: query
+ description: Filter by the customer's name.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: phone
+ in: query
+ description: Filter by the customer's phone number.
+ schema:
+ maxLength: 15
+ minLength: 1
+ type: string
+ - name: email
+ in: query
+ description: Filter by the customer's email address.
+ schema:
+ maxLength: 100
+ minLength: 1
+ type: string
+ - name: token
+ in: query
+ description: Filter by the token that the merchant used in a transaction to represent the customer's payment details.
+ schema:
+ maxLength: 19
+ minLength: 12
+ type: string
+ - name: first6
+ in: query
+ description: Filter by the first six digits of the card number.
+ schema:
+ pattern: '[0-9]{6}'
+ type: string
+ - name: last4
+ in: query
+ description: Filter by the last four digits of the card or account number.
+ schema:
+ pattern: '[0-9]{4}'
+ type: string
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of secure tokens that are currently saved on the terminal.
+ content:
+ application/json:
+ schema:
+ required: &ref_305
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ allOf: &ref_306
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of saved payment details.
+ items:
+ required: *ref_99
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_100
+ examples:
+ paginatedResults:
+ summary: Paginated Secure Token
+ description: Paginated Secure Token
+ value: &ref_479
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - secureTokenId: MREF_bd8abfe6-77ed-4e3b-be9f-91cb2f8801daJ2
+ processingTerminalId: '1001'
+ mitAgreement: unscheduled
+ customer:
+ firstName: Joe
+ lastName: Bloggs
+ dateOfBirth: '1950-01-01'
+ referenceNumber: Customer-1
+ billingAddress:
+ address1: Example Street
+ address2: Example address2
+ address3: Example address3
+ city: Example Town
+ state: California
+ country: US
+ postalCode: '1234'
+ shippingAddress:
+ recipientName: Example shipping recipientName
+ address:
+ address1: Example shipping street
+ address2: Example shipping address2
+ address3: Exampleshipping address3
+ city: Example shipping city
+ state: Texas
+ country: US
+ postalCode: '1'
+ source:
+ type: card
+ cardholderName: Joe Bloggs
+ cardNumber: 500165******0000
+ expiryDate: '0825'
+ token: '2967539621698111'
+ status: notValidated
+ - secureTokenId: MREF_dd8d2205-dae2-482c-b89a-2fc14513d7b7l7
+ processingTerminalId: '1001'
+ mitAgreement: unscheduled
+ customer:
+ firstName: Joe
+ lastName: Bloggs
+ dateOfBirth: '1990-01-01'
+ referenceNumber: Customer-12
+ billingAddress:
+ address1: Example Street
+ address2: Example address2
+ address3: Example address3
+ city: Example Town
+ state: California
+ country: US
+ postalCode: '1234'
+ shippingAddress:
+ recipientName: Example shipping recipientName
+ address:
+ address1: Example shipping street
+ address2: Example shipping address2
+ address3: Exampleshipping address3
+ city: Example shipping city
+ state: Texas
+ country: US
+ postalCode: '1'
+ source:
+ type: card
+ cardholderName: Joe Bloggs
+ cardNumber: 400006******0006
+ expiryDate: '0825'
+ token: '2967530499662487'
+ status: notValidated
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens?limit=2&after=KLOLSOAKSL
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens?limit=2&before=HUAR33GOO6
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-terminals/{processingTerminalId}/secure-tokens/{secureTokenId}:
+ get:
+ tags:
+ - Secure tokens
+ summary: Retrieve secure token
+ description: Return a secure token and its related payment details.
+ operationId: getSecureToken
+ parameters:
+ - name: processingTerminalId
+ in: path
+ description: Unique identifier that our gateway assigned to the terminal.
+ required: true
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: secureTokenId
+ in: path
+ required: true
+ description: Unique identifier that the merchant assigned to the secure token.
+ schema:
+ maxLength: 200
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the secure token and its related payment details.
+ content:
+ application/json:
+ schema:
+ required: *ref_99
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_100
+ examples:
+ secureToken:
+ summary: Secure Token
+ description: Secure Token
+ value: *ref_101
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ patch:
+ tags:
+ - Secure tokens
+ summary: Update secure token
+ description: |
+ Update the customer's payment details that are represented by the secure token.
+
+ Structure your request to follow the RFC 6902 standard.
+ operationId: updateSecureToken
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: processingTerminalId
+ in: path
+ description: Unique identifier that our gateway assigned to the terminal.
+ required: true
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: secureTokenId
+ in: path
+ required: true
+ description: Unique identifier that the merchant assigned to the secure token.
+ schema:
+ maxLength: 200
+ minLength: 1
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: array
+ description: A JSONPatch document as defined by RFC 6902
+ example: *ref_77
+ items: *ref_78
+ required: true
+ responses:
+ '200':
+ description: Successful request. We updated the customer's payment details.
+ content:
+ application/json:
+ schema:
+ required: *ref_99
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_100
+ examples:
+ secureToken:
+ summary: Secure Token
+ description: Secure Token
+ value: *ref_101
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ tags:
+ - Secure tokens
+ summary: Delete secure token
+ description: |
+ Delete a secure token and its represented payment details.
+ **Note**: If you delete a token, you can't reuse its identifier.
+ operationId: deleteSecureToken
+ parameters:
+ - name: processingTerminalId
+ in: path
+ description: Unique identifier that our gateway assigned to the terminal.
+ required: true
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: secureTokenId
+ in: path
+ required: true
+ description: Unique identifier that the merchant assigned to the secure token.
+ schema:
+ maxLength: 200
+ minLength: 1
+ type: string
+ responses:
+ '204':
+ description: Successful request. We deleted the secure token.
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payments:
+ post:
+ tags:
+ - Payments
+ summary: Create payment
+ operationId: payment
+ description: |
+ Run a sale or pre-authorization. You can also:
+ - Save the customer's payment details.
+ - Set up recurring billing.
+ - Process the transaction offline.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_354
+ - channel
+ - order
+ - paymentMethod
+ - processingTerminalId
+ type: object
+ properties: &ref_355
+ channel:
+ type: string
+ description: Channel that the merchant used to receive the payment details.
+ enum:
+ - pos
+ - web
+ - moto
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who ran the transaction.
+ order:
+ required: &ref_114
+ - amount
+ - currency
+ - orderId
+ type: object
+ description: Object that contains information about the payment.
+ allOf: &ref_115
+ - required: &ref_124
+ - amount
+ - currency
+ - orderId
+ type: object
+ description: Object that contains details about the transaction.
+ properties: &ref_125
+ orderId:
+ maxLength: 24
+ minLength: 1
+ type: string
+ description: A unique identifier assigned by the merchant.
+ dateTime:
+ type: string
+ format: date-time
+ readOnly: true
+ description: Date and time that the processor processed the transaction. Our gateway returns this value in the ISO 8601 format.
+ description:
+ maxLength: 1024
+ minLength: 0
+ type: string
+ description: Description of the transaction.
+ amount:
+ type: integer
+ format: int64
+ description: Total amount of the transaction. The value is in the currency’s lowest denomination, for example, cents.
+ currency:
+ type: string
+ description: Currency code for the transaction. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ - type: object
+ properties:
+ orderId:
+ maxLength: 24
+ minLength: 1
+ type: string
+ description: A unique identifier assigned by the merchant.
+ dateTime:
+ type: string
+ format: date-time
+ readOnly: true
+ description: Date and time that the processor processed the transaction. Our gateway returns this value in the ISO 8601 format.
+ description:
+ maxLength: 256
+ minLength: 1
+ type: string
+ description: Description of the transaction.
+ amount:
+ type: integer
+ format: int64
+ description: Total amount of the transaction. The value is in the currency’s lowest denomination, for example, cents.
+ currency:
+ type: string
+ description: Currency code for the transaction. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ breakdown:
+ required: &ref_122
+ - subtotal
+ type: object
+ description: Object that contains information about the breakdown of the transaction.
+ allOf: &ref_123
+ - required: &ref_126
+ - subtotal
+ type: object
+ description: Object that contains information about the breakdown of the transaction.
+ properties: &ref_127
+ subtotal:
+ type: integer
+ format: int64
+ description: |
+ Total amount of the transaction before tax and fees.
+ The value is in the currency’s lowest denomination, for example, cents.
+ cashbackAmount:
+ type: integer
+ format: int64
+ description: Value of cashback for the transaction.
+ tip:
+ description: Object that contains tip information for the transaction.
+ required: &ref_119
+ - type
+ type: object
+ properties: &ref_120
+ type:
+ type: string
+ description: |
+ Indicates if the tip is a fixed amount or a percentage.
+ **Note:** Our gateway applies the percentage tip to the total amount of the transaction after tax.
+ enum:
+ - percentage
+ - fixedAmount
+ mode:
+ type: string
+ readOnly: true
+ description: |
+ Indicates how the tip was added to the transaction.
+ - `prompted` – The customer was prompted to add a tip during payment.
+ - `adjusted` – The customer added a tip on the receipt for the merchant to adjust post-transaction.
+ enum:
+ - prompted
+ - adjusted
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: |
+ If the value for **type** is `fixedAmount`, the value indicates the tip amount in the currency's lowest denomination, for example, cents.
+ percentage:
+ maximum: 100
+ exclusiveMaximum: false
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ format: double
+ description: If the value for **type** is `percentage`, the value indicates the tip as a percentage.
+ taxes:
+ type: array
+ description: List of taxes.
+ items:
+ required: *ref_102
+ type: object
+ properties: *ref_103
+ surcharge:
+ description: Object that contains surcharge information for the transaction.
+ type: object
+ properties: &ref_331
+ bypass:
+ type: boolean
+ description: |
+ Indicates if the merchant wants to remove the surcharge fee from the transaction.
+ `true` - The gateway removes the surcharge fee from the transaction.
+ `false` - The gateway adds the fee to the transaction.
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ readOnly: true
+ description: |
+ If the merchant added a surcharge fee, this value indicates the amount of the surcharge fee
+ in the currency’s lowest denomination, for example, cents.
+ percentage:
+ maximum: 100
+ exclusiveMaximum: false
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ format: double
+ readOnly: true
+ description: If the merchant added a surcharge fee, this value indicates the surcharge percentage.
+ dualPricing:
+ description: Object that contains dual pricing information for the transaction.
+ required: &ref_334
+ - offered
+ type: object
+ properties: &ref_335
+ offered:
+ type: boolean
+ description: Indicates if the merchant offers dual pricing to the customer.
+ choiceRate:
+ description: |
+ Object that contains information about the choice rate.
+ **Note:** For requests, if the value for **offered** is `true`, you must send this object in the request.
+ required: &ref_332
+ - applied
+ - rate
+ - amount
+ type: object
+ readOnly: true
+ properties: &ref_333
+ applied:
+ type: boolean
+ description: |
+ Indicates if the merchant applies a choice rate to the transaction amount.
+
+ Our gateway adds a choice rate to the transaction when the merchant offers an alternative payment type, but the customer chooses to pay by card.
+ default: false
+ rate:
+ maximum: 100
+ exclusiveMaximum: false
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ format: double
+ description: |
+ If the customer used a card to pay for the transaction, this value indicates the percentage that our gateway added to the transaction amount.
+ **Note:** Our gateway returns a value for **rate** only if the value for **applied** in the request is `true`.
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: |
+ If the customer used a card to pay for the transaction, this value indicates the amount that our gateway added to the transaction amount. This value is in the currency’s lowest denomination, for example, cents.
+ **Note:** Our gateway returns a value for **amount** only if the value for **applied** in the request is `true`.
+ alternativeTender:
+ type: string
+ description: |
+ Payment method that the merchant presented to the customer as an alternative to their chosen method.
+ **Note:** For requests, if the value for **offered** is `true`, you must send a value for **alternativeTender** in the request.
+ enum:
+ - card
+ - cash
+ - bankTransfer
+ - type: object
+ properties:
+ dutyAmount:
+ type: integer
+ format: int64
+ description: |
+ Value of duties or fees for the transaction in the currency's
+ lowest denomination, for example, cents.
+ freightAmount:
+ type: integer
+ format: int64
+ description: |
+ Amount for shipping in the currency's lowest denomination, for example, cents.
+ convenienceFee:
+ required: &ref_336
+ - amount
+ type: object
+ readOnly: true
+ description: Object that contains convenience fee information for the transaction.
+ properties: &ref_337
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: |
+ If the merchant added a convenience fee, this value indicates the amount of the convenience fee
+ in the currency’s lowest denomination, for example, cents.
+ items:
+ type: array
+ items:
+ description: Array of 'lineItem' objects. Each object contains information about the items in the transaction.
+ required: &ref_338
+ - quantity
+ - unitPrice
+ type: object
+ properties: &ref_339
+ commodityCode:
+ maxLength: 45
+ minLength: 0
+ type: string
+ description: Commodity code of the item.
+ productCode:
+ maxLength: 45
+ minLength: 0
+ type: string
+ description: Product code of the item.
+ description:
+ maxLength: 250
+ minLength: 0
+ type: string
+ description: Description of the item.
+ unitOfMeasure:
+ type: string
+ description: Measurement for each unit of item, for example, 'GRM' (grams).
+ enum:
+ - ACR
+ - AMH
+ - AMP
+ - APZ
+ - ARE
+ - ASM
+ - ASV
+ - ATM
+ - ATT
+ - BAR
+ - BFT
+ - BHP
+ - BHX
+ - BIL
+ - BLD
+ - BLL
+ - BQL
+ - BTU
+ - BUA
+ - BUI
+ - BX
+ - CCT
+ - CDL
+ - CEL
+ - CEN
+ - CGM
+ - CKG
+ - CLF
+ - CLT
+ - CMK
+ - CMT
+ - CNP
+ - CNT
+ - COU
+ - CS
+ - CTM
+ - CUR
+ - CWA
+ - DAA
+ - DAD
+ - DAY
+ - DEC
+ - DLT
+ - DMK
+ - DMQ
+ - DMT
+ - DPC
+ - DPT
+ - DRA
+ - DRI
+ - DRL
+ - DRM
+ - DTH
+ - DTN
+ - DWT
+ - DZN
+ - DZP
+ - DZR
+ - EA
+ - EAC
+ - FAH
+ - FAR
+ - FOT
+ - FTK
+ - FTQ
+ - GBQ
+ - GFI
+ - GGR
+ - GII
+ - GLD
+ - GLI
+ - GLL
+ - GRM
+ - GRN
+ - GRO
+ - GRT
+ - GWH
+ - HAR
+ - HBA
+ - HGM
+ - HIU
+ - HLT
+ - HMQ
+ - HMT
+ - HPA
+ - HTZ
+ - HUR
+ - INH
+ - INK
+ - INQ
+ - ITM
+ - JOU
+ - KBA
+ - KEL
+ - KGM
+ - KGS
+ - KHZ
+ - KJO
+ - KMH
+ - KMK
+ - KMQ
+ - KMT
+ - KNI
+ - KNS
+ - KNT
+ - KPA
+ - KPH
+ - KPO
+ - KPP
+ - KSD
+ - KSH
+ - KTN
+ - KUR
+ - KVA
+ - KVR
+ - KVT
+ - KWH
+ - KWT
+ - LBR
+ - LBS
+ - LEF
+ - LPA
+ - LTN
+ - LTR
+ - LUM
+ - LUX
+ - MAL
+ - MAM
+ - MAW
+ - MBE
+ - MBF
+ - MBR
+ - MCU
+ - MGM
+ - MHZ
+ - MIK
+ - MIL
+ - MIN
+ - MIO
+ - MIU
+ - MLD
+ - MLT
+ - MMK
+ - MMQ
+ - MMT
+ - MON
+ - MPA
+ - MQH
+ - MQS
+ - MSK
+ - MTK
+ - MTQ
+ - MTR
+ - MTS
+ - MVA
+ - MWH
+ - NAR
+ - NBB
+ - NCL
+ - NEW
+ - NIU
+ - NMB
+ - NMI
+ - NMP
+ - NMR
+ - NPL
+ - NPT
+ - NRL
+ - NTT
+ - OHM
+ - ONZ
+ - OZA
+ - OZI
+ - PAL
+ - PCB
+ - PCE
+ - PGL
+ - PK
+ - PSC
+ - PTD
+ - PTI
+ - PTL
+ - QAN
+ - QTD
+ - QTI
+ - QTL
+ - QTR
+ - RPM
+ - RPS
+ - SAN
+ - SCO
+ - SCR
+ - SEC
+ - SET
+ - SHT
+ - SIE
+ - SMI
+ - SST
+ - ST
+ - STI
+ - TAH
+ - TNE
+ - TPR
+ - TQD
+ - TRL
+ - TSD
+ - TSH
+ - VLT
+ - WCD
+ - WEB
+ - WEE
+ - WHR
+ - WSD
+ - WTT
+ - YDK
+ - YDQ
+ unitPrice:
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ description: Price of each unit.
+ quantity:
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ description: Number of units.
+ format: double
+ discountRate:
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ description: Discount rate that the merchant applies to the item.
+ format: double
+ taxes:
+ type: array
+ description: List of taxes to be applied to the item.
+ items:
+ required: *ref_102
+ type: object
+ properties: *ref_103
+ dccOffer:
+ required: &ref_133
+ - fxAmount
+ - fxCurrency
+ - fxRate
+ - markup
+ type: object
+ properties: &ref_134
+ accepted:
+ type: boolean
+ writeOnly: true
+ description: Indicates if the cardholder accepted the dynamic currency conversion (DCC) offer.
+ offerReference:
+ type: string
+ description: Identifier of the DCC offer.
+ fxAmount:
+ type: integer
+ format: int64
+ description: Amount in the cardholder’s currency in the currency’s lowest denomination, for example, cents.
+ fxCurrency:
+ type: string
+ description: Three-letter currency code for the cardholder’s account. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ fxCurrencyCode:
+ maxLength: 3
+ minLength: 3
+ type: string
+ readOnly: true
+ description: Three-digit currency code for the cardholder’s account. This code follows the ISO 4217 standard.
+ fxCurrencyExponent:
+ type: integer
+ readOnly: true
+ description: |
+ Number of decimal places between the smallest currency unit and a whole currency unit.
+
+ For example, for GBP, the smallest currency unit is 1p and it is equal to £0.01.
+ If you use GBP, the value for **fxCurrencyExponent** is 2.
+ format: int32
+ fxRate:
+ type: number
+ description: Foreign exchange rate for the currency.
+ format: double
+ markup:
+ type: number
+ description: Mark-up percentage rate that the DCC provider applies to the foreign exchange rate.
+ format: double
+ markupText:
+ type: string
+ readOnly: true
+ description: Supporting text for the mark-up rate.
+ provider:
+ type: string
+ readOnly: true
+ description: Name of the DCC provider.
+ source:
+ type: string
+ readOnly: true
+ description: Source that the DCC provider uses to get the foreign exchange rates.
+ description: Object that contains the exchange rates offer for a foreign card.
+ standingInstructions:
+ required: &ref_341
+ - processingModel
+ - sequence
+ type: object
+ description: If you don't use our Subscriptions mechanism, include this section to configure your standing/recurring orders.
+ properties: &ref_342
+ sequence:
+ type: string
+ description: Position of the transaction in the payment plan sequence.
+ enum:
+ - first
+ - subsequent
+ processingModel:
+ type: string
+ description: |
+ Indicates the type of payment instruction.
+
+ - 'unscheduled' – The payment is not part of a regular billing cycle.
+ - 'recurring' – The payment is part of a regular billing cycle with no end date.
+ - 'installment' – The payment is part of a regular billing cycle with an end date.
+ enum:
+ - unscheduled
+ - recurring
+ - installment
+ referenceDataOfFirstTxn:
+ description: Object that contains information about the initial payment for the payment instruction.
+ type: object
+ properties: &ref_340
+ paymentId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: |
+ Unique identifier of the first payment.
+ **Note:** We recommend that you always send a value for **paymentId**.
+ cardSchemeReferenceId:
+ maxLength: 64
+ minLength: 1
+ type: string
+ description: Identifier that the card brand assigns to the payment instruction.
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ ipAddress:
+ required: *ref_104
+ type: object
+ writeOnly: true
+ description: Object that contains information about the IP address of the device that sent the request.
+ properties: *ref_105
+ paymentMethod:
+ type: object
+ description: Object that contains information about the customer's payment details.
+ oneOf:
+ - required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ - required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ - required: &ref_157
+ - type
+ - encryptedData
+ - serviceProvider
+ type: object
+ writeOnly: true
+ title: Digital wallet
+ description: Object that contains information about the payment details in the customer’s digital wallet.
+ properties: &ref_158
+ type:
+ type: string
+ description: Method that the terminal used to take the payment.
+ enum:
+ - digitalWallet
+ accountType:
+ type: string
+ description: |
+ Indicates the customer’s account type.
+ **Note:** Credit card transactions don't require **accountType**.
+ enum:
+ - checking
+ - savings
+ serviceProvider:
+ type: string
+ description: Provider of the digital wallet.
+ enum:
+ - apple
+ - google
+ cardholderName:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Cardholder’s name.
+ encryptedData:
+ maxLength: 20480
+ minLength: 128
+ type: string
+ description: Encrypted data of the digital wallet.
+ - required: &ref_155
+ - type
+ - token
+ type: object
+ writeOnly: true
+ title: Single-use token
+ description: Object that contains information about the single-use token, which represents the customer’s payment details.
+ properties: &ref_156
+ type:
+ type: string
+ description: Method that the payment device used to take the payment.
+ enum:
+ - singleUseToken
+ accountType:
+ type: string
+ description: |
+ Indicates the customer’s account type.
+ **Note:** Credit card transactions don't require **accountType**.
+ enum:
+ - checking
+ - savings
+ token:
+ maxLength: 128
+ minLength: 128
+ type: string
+ description: Unique token that the gateway assigned to the payment details.
+ pinDetails:
+ type: object
+ oneOf:
+ - required: *ref_94
+ type: object
+ title: Encrypted
+ description: Object that contains information about encrypted PIN details.
+ properties: *ref_95
+ - required: &ref_350
+ - dataFormat
+ - pin
+ type: object
+ title: Unencrypted
+ description: Object that contains information about the unencrypted PIN details.
+ properties: &ref_351
+ dataFormat:
+ type: string
+ description: Indicates the format of the PIN data.
+ enum:
+ - raw
+ pin:
+ maxLength: 2147483647
+ minLength: 1
+ type: string
+ description: Customer’s unencrypted PIN.
+ ebtDetails:
+ required: *ref_96
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ allOf: *ref_97
+ threeDSecure:
+ type: object
+ description: Object that contains information for an authentication check on the customer's payment details using the 3-D Secure protocol.
+ oneOf:
+ - required: *ref_110
+ type: object
+ title: Gateway
+ description: Object that contains the 3-D Secure information from our gateway.
+ properties: *ref_111
+ - required: *ref_112
+ type: object
+ title: Third party
+ description: Object that contains the 3-D Secure information from a third party.
+ properties: *ref_113
+ credentialOnFile:
+ type: object
+ description: Object that contains information about saving the customer’s payment details.
+ properties: &ref_128
+ externalVault:
+ type: boolean
+ default: false
+ description: Indicates if the merchant uses a third-party vault to store the customer’s payment details.
+ tokenize:
+ type: boolean
+ description: Indicates if our gateway should tokenize the customer’s payment details as part of the transaction.
+ secureTokenId:
+ maxLength: 200
+ minLength: 0
+ type: string
+ description: |
+ Unique identifier that the merchant creates for the secure token that represents the customer’s payment details.
+ **Note**: If you do not send a value for the **secureTokenId**, our gateway generates a unique identifier for the token.
+ mitAgreement:
+ type: string
+ description: |
+ Indicates how the merchant can use the customer’s card details, as agreed by the customer:
+
+ - `unscheduled` - Transactions for a fixed or variable amount that are run at a certain pre-defined event.
+ - `recurring` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Recurring transactions don’t have a fixed duration and run until the customer cancels the agreement.
+ - `installment` - Transactions for a fixed amount that are run at regular intervals, for example, monthly. Installment transactions have a fixed duration.
+
+ **Note**: If you send a value for **mitAgreement**, you must send the **standingInstructions** object in the **paymentOrder** object.
+ enum:
+ - unscheduled
+ - recurring
+ - installment
+ offlineProcessing:
+ required: &ref_352
+ - operation
+ type: object
+ description: Object that contains information about the transaction if the merchant ran it when the terminal was offline.
+ properties: &ref_353
+ operation:
+ type: string
+ description: Status of the transaction.
+ enum:
+ - offlineDecline
+ - offlineApproval
+ - deferredAuthorization
+ approvalCode:
+ maxLength: 48
+ minLength: 0
+ type: string
+ description: Approval code for the transaction from the processor.
+ dateTime:
+ type: string
+ format: date-time
+ description: Date and time that the merchant ran the transaction. The date follows the ISO 8601 standard.
+ autoCapture:
+ type: boolean
+ default: true
+ description: |
+ Indicates if we should automatically capture the payment amount.
+
+ - `true` - Run a sale and automatically capture the transaction.
+ - `false`- Run a pre-authorization and capture the transaction later.
+
+ **Note**: If you send `false` and the terminal doesn't support pre-authorization, we set the transaction's status to pending. The merchant must capture the transaction to take payment from the customer.
+ processAsSale:
+ type: boolean
+ default: false
+ description: |
+ Indicates if we should immediately settle the sale transaction. The merchant cannot adjust the transaction if we immediately settle it.
+ **Note**: If the value for **processAsSale** is `true`, the gateway ignores the value in **autoCapture**.
+ examples:
+ paymentRequest:
+ summary: Payment
+ description: Payment
+ value: &ref_482
+ channel: web
+ processingTerminalId: '1023'
+ operator: Postman
+ order:
+ orderId: order123
+ description: Example payment
+ currency: USD
+ amount: 100
+ customer:
+ firstName: Robert
+ lastName: Red
+ billingAddress:
+ address1: billing address1
+ address2: billing address2
+ address3: billing address3
+ city: Los Angeles
+ state: California
+ country: US
+ postalCode: 90005
+ shippingAddress:
+ recipientName: shipping recipientName
+ address:
+ address1: shipping address1
+ address2: shipping address2
+ address3: shipping address3
+ city: San Diego
+ state: California
+ country: US
+ postalCode: 91911
+ paymentMethod:
+ type: card
+ cardDetails:
+ entryMethod: keyed
+ keyedData:
+ dataFormat: plainText
+ device:
+ model: paxA80
+ serialNumber: WPC202833004712
+ expiryDate: '0328'
+ cardNumber: '5001650000000000'
+ required: true
+ responses:
+ '201':
+ description: Successful request. We processed the transaction.
+ content:
+ application/json:
+ schema:
+ required: &ref_116
+ - card
+ - order
+ - paymentId
+ - processingTerminalId
+ - transactionResult
+ type: object
+ properties: &ref_117
+ paymentId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier that our gateway assigned to the transaction.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier of the terminal that initiated the transaction.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who initiated the request.
+ order:
+ required: *ref_114
+ type: object
+ description: Object that contains information about the payment.
+ allOf: *ref_115
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ card:
+ required: &ref_137
+ - cardNumber
+ - entryMethod
+ - expiryDate
+ - type
+ type: object
+ properties: &ref_138
+ type:
+ type: string
+ description: Card brand that the card is linked to. For example, Visa.
+ entryMethod:
+ type: string
+ description: Method that the device used to capture the card details.
+ enum:
+ - icc
+ - keyed
+ - swiped
+ - swipedFallback
+ - contactlessIcc
+ - contactlessMsr
+ cardholderName:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Cardholder’s name.
+ cardholderSignature:
+ type: string
+ description: Cardholder’s signature.
+ cardNumber:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: |
+ Masked card number. Our gateway shows only the first six digits and the last four digits of the card number, for example, 548010******5929.
+ expiryDate:
+ pattern: '[0-9]{4}'
+ type: string
+ description: Expiration date of the card. The format of this value is **MMYY**.
+ secureToken:
+ required: *ref_86
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_87
+ securityChecks:
+ type: object
+ properties: &ref_343
+ cvvResult:
+ type: string
+ description: |
+ Indicates if the card verification value (CVV) that the customer provided in the request matches the CVV on the card.
+ - `M` – The CVV matches the card’s CVV.
+ - `N` – The CVV doesn’t match the card’s CVV.
+ - `P` – The CVV wasn’t processed.
+ - `U` – The CVV isn’t registered.
+
+ **Note:** Our gateway doesn’t automatically decline transactions when the CVV doesn’t match the card’s CVV, unless the merchant selects this setting in their account.
+ enum:
+ - M
+ - 'N'
+ - P
+ - U
+ avsResult:
+ type: string
+ description: |
+ Indicates if the address that the customer provided in the request matches the address linked to the card.
+
+ - `Y` – The address in the request matches the address linked to the card.
+ - `N` – The address in the request doesn’t match the address linked to the card.
+ - `A` – The street address matches, but ZIP code or postal code doesn’t match.
+ - `Z` - The ZIP code or postal code matches, but street address doesn’t match.
+ - `U` – The address information is unavailable.
+ - `G` – The issuer or card brand doesn’t support the Address Verification Service (AVS).
+ - `R` – The AVS is currently unavailable. Try again later.
+ - `S` – There was no AVS data in the request, or it was sent in the wrong format.
+ - `F` - For UK addresses, the address in the request matches the address linked to the card.
+ - `W` – For US addresses, the nine-digit ZIP code or postal code in the request matches the address linked to the card but the street address doesn’t.
+ - `X` – For US addresses, the nine-digit ZIP code or postal code and the street address matches the address linked to the card.
+
+ **Note:** Our gateway doesn’t automatically decline transactions when the address doesn’t match the address linked to the card,
+ unless the merchant selects this setting in their account.
+ enum:
+ - 'Y'
+ - A
+ - Z
+ - 'N'
+ - U
+ - R
+ - G
+ - S
+ - F
+ - W
+ - X
+ description: Object that contains information about card verification and security checks.
+ emvTags:
+ type: array
+ uniqueItems: true
+ description: Array of emvTag objects.
+ items:
+ required: &ref_344
+ - hex
+ - value
+ type: object
+ description: Object that contains information about the EMV tag.
+ properties: &ref_345
+ hex:
+ type: string
+ description: Hex code of the EMV tag.
+ value:
+ type: string
+ description: Value of the EMV tag.
+ balances:
+ type: array
+ description: |
+ Array of cardBalance objects.
+ Our gateway returns this array only when the customer uses an Electronic Benefit Transfer (EBT) card.
+ **Note:** This field reflects the remaining balance on the card after deducting the amount of this transaction.
+ items:
+ required: &ref_346
+ - amount
+ - benefitCategory
+ - currency
+ type: object
+ properties: &ref_347
+ benefitCategory:
+ type: string
+ enum:
+ - cash
+ - foodStamp
+ description: |
+ Indicates if the balance relates to an EBT Cash account or EBT SNAP account.
+ - `cash` – EBT Cash
+ - `foodStamp` – EBT SNAP
+ amount:
+ type: integer
+ format: int64
+ description: Current balance of the account. This value is in the currency's lowest denomination, for example, cents.
+ currency:
+ type: string
+ description: Currency code of the account. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ description: Object that contains information about the total funds available in the card.
+ description: Object that contains information about the card.
+ refunds:
+ type: array
+ uniqueItems: true
+ description: |
+ Array of refundSummary objects.
+ Each object contains information about refunds linked to the transaction.
+ items:
+ required: &ref_168
+ - amount
+ - currency
+ - dateTime
+ - refundId
+ - status
+ - responseCode
+ - responseMessage
+ type: object
+ description: Object that contains information about a refund.
+ properties: &ref_169
+ refundId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier of the refund.
+ dateTime:
+ type: string
+ format: date-time
+ description: Date and time that the refund was processed.
+ currency:
+ type: string
+ description: Currency code for the refund. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ amount:
+ type: integer
+ format: int64
+ description: Amount of the refund. This value is in the currency’s lowest denomination, for example, cents.
+ status:
+ type: string
+ description: Current status of the refund.
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - referral
+ - pickup
+ - reversal
+ - returned
+ - admin
+ - expired
+ - accepted
+ - review
+ responseCode:
+ type: string
+ description: |
+ Response from the processor.
+ - `A` - The processor approved the transaction.
+ - `D` - The processor declined the transaction.
+ - `E` - The processor received the transaction but will process the transaction later.
+ - `P` - The processor authorized a portion of the original amount of the transaction.
+ - `R` - The issuer declined the transaction and indicated that the customer should contact their bank.
+ - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
+ enum:
+ - A
+ - D
+ - E
+ - P
+ - R
+ - C
+ responseMessage:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Description of the response from the processor.
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ supportedOperations:
+ type: array
+ items: &ref_141
+ type: string
+ enum:
+ - capture
+ - refund
+ - fullyReverse
+ - partiallyReverse
+ - incrementAuthorization
+ - adjustTip
+ - addSignature
+ - setAsReady
+ - setAsPending
+ - setAsDeclined
+ description: |
+ Array of operations that you can perform on the transaction.
+ - `capture` - Capture the payment.
+ - `refund` - Refund the payment.
+ - `fullyReverse` - Fully reverse the transaction.
+ - `partiallyReverse` - Partially reverse the payment.
+ - `incrementAuthorization` - Increase the amount of the authorization.
+ - `adjustTip` - Adjust the tip post-payment.
+ - `addSignature` - Add a signature to the payment.
+ - `setAsReady` - Set the transaction’s status to `ready`.
+ - `setAsPending` - Set the transaction’s status to `pending`.
+ - `setAsDeclined` - Set the transaction’s status to `declined`.
+ transactionResult:
+ required: &ref_142
+ - type
+ - status
+ - responseCode
+ - responseMessage
+ type: object
+ properties: &ref_143
+ type:
+ type: string
+ description: Transaction type.
+ enum:
+ - sale
+ - refund
+ - preAuthorization
+ - preAuthorizationCompletion
+ ebtType:
+ type: string
+ description: Sub-type for EBT transactions
+ enum:
+ - cashPurchase
+ - cashPurchaseWithCashback
+ - foodStampPurchase
+ - foodStampVoucherPurchase
+ - foodStampReturn
+ - foodStampVoucherReturn
+ - cashBalanceInquiry
+ - foodStampBalanceInquiry
+ - cashWithdrawal
+ status:
+ type: string
+ description: Current status of the transaction.
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - referral
+ - pickup
+ - reversal
+ - admin
+ - expired
+ - accepted
+ - review
+ approvalCode:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Authorization code that the processor assigned to the transaction.
+ authorizedAmount:
+ type: integer
+ format: int64
+ description: |
+ Amount that the processor authorized for the transaction. This value is in the currency’s lowest denomination, for example, cents.
+
+ **Notes:**
+ - For partial authorizations, this amount is lower than the amount in the request.
+ - If the value for **authorizedAmount** is negative, this indicates that the merchant sent funds to the customer.
+ currency:
+ type: string
+ description: Currency code for the transaction. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ responseCode:
+ type: string
+ description: |
+ Response from the processor.
+ - `A` - The processor approved the transaction.
+ - `D` - The processor declined the transaction.
+ - `E` - The processor received the transaction but will process the transaction later.
+ - `P` - The processor authorized a portion of the original amount of the transaction.
+ - `R` - The issuer declined the transaction and indicated that the customer should contact their bank.
+ - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
+ enum:
+ - A
+ - D
+ - E
+ - P
+ - R
+ - C
+ responseMessage:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Description of the response from the processor.
+ processorResponseCode:
+ type: string
+ description: Original response code that the processor sent.
+ cardSchemeReferenceId:
+ maxLength: 64
+ minLength: 1
+ type: string
+ description: Identifier that the card brand assigns to the payment instruction.
+ description: Object that contains information about the transaction response details.
+ examples:
+ createdPayment:
+ summary: Payment
+ description: Payment
+ value: &ref_118
+ paymentId: KP77BIWR96
+ processingTerminalId: '1023'
+ operator: Postman
+ order:
+ orderId: order123
+ dateTime: '2023-07-26T17:42:25.018+01:00'
+ description: Example payment
+ amount: 100
+ currency: USD
+ customer:
+ firstName: Robert
+ lastName: Red
+ billingAddress:
+ address1: billing address
+ address2: billing address2
+ address3: billing address3
+ city: Los Angeles
+ state: California
+ country: US
+ postalCode: '90005'
+ shippingAddress:
+ recipientName: shipping recipientName
+ address:
+ address1: shipping address1
+ address2: shipping address2
+ address3: shipping address3
+ city: San Diego
+ state: California
+ country: US
+ postalCode: '91911'
+ card:
+ type: MasterCard
+ entryMethod: keyed
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ securityChecks:
+ cvvResult: M
+ avsResult: 'Y'
+ supportedOperations:
+ - capture
+ - fullyReverse
+ - partiallyReverse
+ - incrementAuthorization
+ - adjustTip
+ - setAsPending
+ transactionResult:
+ type: sale
+ status: ready
+ approvalCode: OK3
+ authorizedAmount: 100
+ currency: USD
+ responseCode: A
+ responseMessage: OK3
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Payments
+ summary: List payments
+ description: Return a list of payments.
+ operationId: listPayments
+ parameters:
+ - name: processingTerminalId
+ in: query
+ description: Filter payments by terminal ID.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: orderId
+ in: query
+ description: Filter payments by order ID.
+ schema:
+ maxLength: 24
+ minLength: 1
+ type: string
+ - name: operator
+ in: query
+ description: Filter payments by operator.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: cardholderName
+ in: query
+ description: Filter payments by the cardholder’s name.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: first6
+ in: query
+ description: Filter payments by the first six digits of the card number that the customer used in the transaction.
+ schema:
+ pattern: '[0-9]{6}'
+ type: string
+ - name: last4
+ in: query
+ description: Filter payments by the last four digits of the card number that the customer used in the transaction.
+ schema:
+ pattern: '[0-9]{4}'
+ type: string
+ - name: tender
+ in: query
+ description: Filter by tender type.
+ schema:
+ type: string
+ enum:
+ - ebt
+ - creditDebit
+ - name: tipMode
+ in: query
+ description: Filter payments by tip.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - noTip
+ - prompted
+ - adjusted
+ - name: type
+ in: query
+ description: Filter payments by transaction type.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - sale
+ - preAuthorization
+ - preAuthorizationCompletion
+ - name: status
+ in: query
+ description: Filter payments by the status of the transaction.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - referral
+ - pickup
+ - reversal
+ - admin
+ - expired
+ - accepted
+ - review
+ - name: dateFrom
+ in: query
+ description: Filter by payments that the processor processed after a specific date. The date format follows the ISO 8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: dateTo
+ in: query
+ description: Filter by payments that the processer processed before a specific date. The date format follows the ISO 8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: settlementState
+ in: query
+ description: Filter payments by the settlement status of the transaction.
+ schema:
+ type: string
+ enum:
+ - settled
+ - unsettled
+ - name: settlementDate
+ in: query
+ description: Filter by payments that the processor settled on a specific date in the format **YYYY-MM-DD**.
+ schema:
+ type: string
+ format: date
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of payments.
+ content:
+ application/json:
+ schema:
+ required: &ref_348
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ allOf: &ref_349
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of transactions.
+ items:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ examples:
+ paginatedResults:
+ summary: Payment
+ description: Payment
+ value: &ref_481
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - paymentId: IFA1T74OBS
+ processingTerminalId: '1001'
+ operator: Automatic Payment
+ order:
+ orderId: '684255528917'
+ dateTime: '2023-05-16T17:45:29+01:00'
+ description: recurring order
+ amount: 100
+ currency: EUR
+ card:
+ type: Visa Credit
+ cardholderName: Joe Bloggs
+ cardNumber: 453985******7062
+ expiryDate: '0129'
+ secureToken:
+ secureTokenId: FirefoxSecureCard1001
+ customerName: Joe Bloggs
+ token: '2967533500670317'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens/FirefoxSecureCard1001
+ securityChecks:
+ cvvResult: M
+ avsResult: X
+ supportedOperations:
+ - fullyReverse
+ - setAsPending
+ transactionResult:
+ type: sale
+ status: ready
+ approvalCode: '475318'
+ authorizedAmount: 100
+ currency: EUR
+ responseCode: A
+ responseMessage: APPROVAL
+ - paymentId: CW4BA4MUH0
+ processingTerminalId: '1001'
+ operator: Automatic Payment
+ order:
+ orderId: '684255528143'
+ dateTime: '2023-05-16T17:45:28+01:00'
+ description: yearly avant-gard cinema subscription
+ amount: 1000
+ currency: EUR
+ card:
+ type: Visa Debit
+ cardholderName: Joe Bloggs
+ cardNumber: 400006******0006
+ expiryDate: '0129'
+ secureToken:
+ secureTokenId: FirefoxSecureCard1001
+ customerName: Joe Bloggs
+ token: '2967533500670317'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1001/secure-tokens/FirefoxSecureCard1001
+ securityChecks:
+ cvvResult: M
+ avsResult: X
+ supportedOperations:
+ - fullyReverse
+ - setAsPending
+ transactionResult:
+ type: sale
+ status: ready
+ approvalCode: '475318'
+ authorizedAmount: 1000
+ currency: EUR
+ responseCode: A
+ responseMessage: APPROVAL
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/payments?processingTerminalId=1001&limit=2&after=CW4BA4MUH0
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/payments?processingTerminalId=1001&limit=2&before=IFA1T74OBS
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payments/{paymentId}:
+ get:
+ tags:
+ - Payments
+ summary: Retrieve payment
+ operationId: getPayment
+ description: Retrieve an existing payment.
+ parameters:
+ - name: paymentId
+ in: path
+ required: true
+ description: Unique identifier of the payment that the merchant wants to retrieve.
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ examples:
+ createdPayment:
+ summary: Payment
+ description: Payment
+ value: *ref_118
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payments/{paymentId}/adjust:
+ post:
+ tags:
+ - Payments
+ summary: Adjust payment
+ operationId: adjustPayment
+ description: Adjust a transaction.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ in: path
+ required: true
+ description: Unique identifier of the payment that the merchant wants to adjust.
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_361
+ - adjustments
+ type: object
+ description: Object that contains the transaction adjustment object.
+ properties: &ref_362
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who adjusted the payment.
+ adjustments:
+ type: array
+ description: Array of objects that contain information about the adjustments to the payment.
+ uniqueItems: true
+ items:
+ oneOf:
+ - required: &ref_357
+ - type
+ - amount
+ type: object
+ title: Order
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the order details.
+ properties: &ref_358
+ type:
+ type: string
+ description: Type of adjustment.
+ enum:
+ - order
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: Total amount of the transaction.
+ breakdown:
+ type: object
+ description: Object that contains information about the tip amount of a transaction.
+ properties: &ref_356
+ tip:
+ required: *ref_119
+ type: object
+ description: Object that contains information about the tip.
+ properties: *ref_120
+ - required: &ref_147
+ - type
+ - toStatus
+ type: object
+ title: Status
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the status of the transaction.
+ properties: &ref_148
+ type:
+ type: string
+ description: Type of adjustment.
+ enum:
+ - status
+ toStatus:
+ type: string
+ description: Status of the transaction.
+ enum:
+ - ready
+ - pending
+ - declined
+ - required: &ref_149
+ - type
+ type: object
+ title: Customer
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the customer’s contact details.
+ properties: &ref_150
+ type:
+ type: string
+ description: Type of adjustment.
+ enum:
+ - customer
+ shippingAddress:
+ description: Object that contains information about the customer and their shipping address.
+ type: object
+ properties: *ref_121
+ contactMethods:
+ uniqueItems: true
+ description: Customer's contact information.
+ type: array
+ items:
+ oneOf: *ref_2
+ - required: &ref_359
+ - type
+ - cardholderSignature
+ type: object
+ title: Signature
+ description: |
+ Object that contains the signature for the transaction.
+ **Note:** If the merchant previously added a signature to the transaction, they can’t adjust or delete the signature.
+ properties: &ref_360
+ type:
+ type: string
+ description: Type of adjustment.
+ enum:
+ - signature
+ cardholderSignature:
+ type: string
+ description: Cardholder’s signature. For more information about the format of the signature, see Special Fields and Parameters.
+ examples:
+ adjustPaymentRequest:
+ summary: Adjust Payment
+ description: Adjust Payment
+ value: &ref_483
+ adjustments:
+ - type: customer
+ shippingAddress:
+ recipientName: new recipientName
+ address:
+ address1: new address1
+ address2: address2
+ address3: address3
+ city: Miami
+ state: Florida
+ country: US
+ postalCode: 33101
+ - type: order
+ amount: 1000
+ required: true
+ responses:
+ '200':
+ description: Successful request. We adjusted the transaction.
+ content:
+ application/json:
+ schema:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ examples:
+ adjustPaymentResponse:
+ summary: Adjust Payment
+ description: Adjust Payment
+ value: &ref_484
+ paymentId: HW986AQOBB
+ processingTerminalId: '1023'
+ order:
+ orderId: 6u6
+ dateTime: '2023-07-27T10:28:44+01:00'
+ description: Example payment
+ amount: 1000
+ currency: USD
+ customer:
+ firstName: Robert
+ lastName: Red
+ billingAddress:
+ address1: billing address
+ address2: billing address2
+ address3: billing address3
+ city: Los Angeles
+ state: California
+ country: US
+ postalCode: '90005'
+ shippingAddress:
+ recipientName: new recipientName
+ address:
+ address1: new address1
+ address2: address2
+ address3: address3
+ city: Miami
+ state: Florida
+ country: US
+ postalCode: '33101'
+ card:
+ type: MasterCard
+ entryMethod: keyed
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ securityChecks:
+ cvvResult: M
+ avsResult: 'Y'
+ supportedOperations:
+ - capture
+ - fullyReverse
+ - partiallyReverse
+ - incrementAuthorization
+ - adjustTip
+ - setAsPending
+ transactionResult:
+ type: sale
+ status: ready
+ approvalCode: OK6
+ authorizedAmount: 1000
+ currency: USD
+ responseCode: A
+ responseMessage: OK6
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payments/{paymentId}/capture:
+ post:
+ tags:
+ - Payments
+ summary: Capture payment
+ operationId: capturePayment
+ description: Capture an existing payment.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ description: Unique identifier of the payment that the merchant wants to capture.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: Object that contains the details of the payment that the merchant wants to capture.
+ type: object
+ properties: &ref_363
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who captured the payment.
+ amount:
+ type: integer
+ format: int64
+ description: |
+ Amount of the payment that the merchant wants to capture. The value is in the currency’s lowest denomination, for example, cents.
+ **Note**: If the merchant does not send an amount, we capture the total amount of the transaction.
+ breakdown:
+ required: *ref_122
+ type: object
+ description: Object that contains information about the breakdown of the transaction.
+ allOf: *ref_123
+ responses:
+ '200':
+ description: Successful request. We captured the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ examples:
+ payment:
+ summary: Payment
+ description: Payment
+ value: *ref_118
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payments/{paymentId}/reverse:
+ post:
+ tags:
+ - Payments
+ summary: Reverse payment
+ operationId: reversePayment
+ description: Reverse a payment.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ description: Unique identifier of the payment that the merchant wants to reverse.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties: &ref_364
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who reversed the payment.
+ amount:
+ type: integer
+ format: int64
+ description: |
+ Amount of the payment that the merchant wants to reverse. The value is in the currency’s lowest denomination, for example, cents.
+ **Note**: If the merchant doesn’t send an amount, we reverse the total amount of the transaction.
+ examples:
+ reversalPayment:
+ summary: Reversal Payment
+ description: Reversal Payment
+ value: &ref_485
+ amount: 10
+ responses:
+ '200':
+ description: Successful request. We reversed the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ examples:
+ reversalPayment:
+ summary: Reversal Payment
+ description: Reversal Payment
+ value: &ref_486
+ paymentId: FRED4RL3GO
+ processingTerminalId: '1023'
+ order:
+ orderId: MAPI_V2_PAY_23
+ dateTime: '2023-05-18T10:29:25+01:00'
+ description: Example payment
+ amount: 100
+ currency: USD
+ customer:
+ firstName: Giuseppe
+ lastName: Verdi
+ billingAddress:
+ address1: example street
+ address2: example address2
+ address3: example address3
+ city: example city
+ state: California
+ country: USA
+ postalCode: '1'
+ shippingAddress:
+ recipientName: shipping recipientName
+ address:
+ address1: shipping address1
+ address2: shipping address2
+ address3: shipping address3
+ city: shipping city
+ state: shipping state
+ country: IT
+ postalCode: '1'
+ card:
+ type: MasterCard
+ entryMethod: keyed
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ securityChecks:
+ cvvResult: M
+ avsResult: 'Y'
+ supportedOperations:
+ - capture
+ - fullyReverse
+ - partiallyReverse
+ - incrementAuthorization
+ - adjustTip
+ - setAsPending
+ transactionResult:
+ type: sale
+ status: reversal
+ approvalCode: OK2
+ authorizedAmount: 100
+ currency: USD
+ responseCode: A
+ responseMessage: OK2
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payments/{paymentId}/refund:
+ post:
+ tags:
+ - Payments
+ summary: Refund payment
+ operationId: refundPayment
+ description: Refund a payment.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ description: Unique identifier of the payment that the merchant wants to refund.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ description: Object that contains the details of the payment that the merchant wants to refund.
+ required: &ref_365
+ - amount
+ - description
+ type: object
+ properties: &ref_366
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who refunded the payment.
+ amount:
+ type: integer
+ format: int64
+ description: Amount of the payment that the merchant wants to refund. The value is in the currency’s lowest denomination, for example, cents.
+ description:
+ maxLength: 100
+ minLength: 1
+ type: string
+ description: Reason for the refund.
+ examples:
+ refundPaymentRequest:
+ summary: Refund Payment
+ description: Refund Payment
+ value: &ref_487
+ amount: 100
+ description: refund - defective item
+ required: true
+ responses:
+ '200':
+ description: Successful request. We refunded the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ examples:
+ refundPayment:
+ summary: Refund Payment
+ description: Refund Payment
+ value: &ref_488
+ paymentId: JTWWI49L6U
+ processingTerminalId: '1023'
+ operator: Adam Smith
+ order:
+ orderId: 86f
+ dateTime: '2024-01-16T16:57:18Z'
+ description: Example payment
+ amount: 100
+ currency: USD
+ customer:
+ firstName: Robert
+ lastName: Red
+ billingAddress:
+ address1: billing address
+ address2: billing address2
+ address3: billing address3
+ city: Los Angeles
+ state: California
+ country: US
+ postalCode: '90005'
+ shippingAddress:
+ recipientName: shipping recipientName
+ address:
+ address1: shipping address1
+ address2: shipping address2
+ address3: shipping address3
+ city: San Diego
+ state: California
+ country: US
+ postalCode: '91911'
+ card:
+ type: MasterCard
+ entryMethod: keyed
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ securityChecks:
+ cvvResult: M
+ avsResult: 'Y'
+ refunds:
+ - refundId: BI77XQFQ05
+ dateTime: '2024-01-16T17:00:41Z'
+ amount: -60
+ currency: USD
+ status: ready
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/refunds/BI77XQFQ05
+ supportedOperations:
+ - refund
+ transactionResult:
+ type: sale
+ status: complete
+ approvalCode: OK13
+ authorizedAmount: 100
+ currency: USD
+ responseCode: A
+ responseMessage: OK13
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /devices/{serialNumber}/payment-instructions:
+ post:
+ tags:
+ - Payment instructions
+ summary: Submit payment instruction
+ operationId: sendPaymentInstruction
+ description: Submit an instruction request to initiate a sale on a payment device.
+ parameters:
+ - name: serialNumber
+ description: Serial number that identifies the merchant’s payment device.
+ in: path
+ required: true
+ schema:
+ maxLength: 45
+ minLength: 1
+ type: string
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_369
+ - order
+ - processingTerminalId
+ type: object
+ description: Object that contains the instructions for initiating a payment on a physical device.
+ properties: &ref_370
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who initiated the request.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ order:
+ required: &ref_367
+ - amount
+ - currency
+ - orderId
+ type: object
+ description: Object that contains information about the payment.
+ allOf: &ref_368
+ - required: *ref_124
+ type: object
+ description: Object that contains details about the transaction.
+ properties: *ref_125
+ - type: object
+ properties:
+ breakdown:
+ required: *ref_126
+ type: object
+ description: Object that contains information about the breakdown of the transaction.
+ properties: *ref_127
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ ipAddress:
+ required: *ref_104
+ type: object
+ writeOnly: true
+ description: Object that contains information about the IP address of the device that sent the request.
+ properties: *ref_105
+ credentialOnFile:
+ type: object
+ description: Object that contains information about saving the customer’s payment details.
+ properties: *ref_128
+ customizationOptions:
+ type: object
+ description: Object that contains available options to customize certain aspects of an instruction.
+ properties: &ref_151
+ ebtDetails:
+ required: *ref_129
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ properties: *ref_130
+ entryMethod:
+ type: string
+ description: |
+ Indicates how you want the device to capture the card details.
+ - `deviceRead` - The cardholder taps, swipes, or inserts their card.
+ - `manualEntry` - The merchant or cardholder manually enters the card details.
+ enum:
+ - deviceRead
+ - manualEntry
+ default: deviceRead
+ autoCapture:
+ type: boolean
+ default: true
+ description: |
+ Indicates if we should automatically capture the payment amount.
+
+ - `true` - Run a sale and automatically capture the transaction.
+ - `false`- Run a pre-authorization and capture the transaction later.
+
+ **Note**: If you send `false` and the terminal doesn't support pre-authorization, we set the transaction's status to pending. The merchant must capture the transaction to take payment from the customer.
+ processAsSale:
+ type: boolean
+ default: false
+ description: |
+ Indicates if we should immediately settle the sale transaction. The merchant cannot adjust the transaction if we immediately settle it.
+ **Note**: If the value for **processAsSale** is `true`, the gateway ignores the value in **autoCapture**.
+ examples:
+ paymentInstructionRequest:
+ summary: Payment Instruction
+ description: Submit an instruction for initiating a payment on a physical device.
+ value: &ref_489
+ operator: jbloggs
+ processingTerminalId: '1021'
+ order:
+ orderId: 4fd4-99bc
+ currency: USD
+ amount: 1000
+ customizationOptions:
+ entryMethod: deviceRead
+ autoCapture: true
+ required: true
+ responses:
+ '202':
+ description: Successful request. We accepted the payment instruction to process.
+ content:
+ application/json:
+ schema:
+ required: &ref_131
+ - paymentInstructionId
+ - status
+ type: object
+ allOf: &ref_132
+ - type: object
+ description: Object that contains information about the status of the instruction
+ properties: &ref_152
+ status:
+ type: string
+ description: |
+ Indicates the current status of the instruction.
+ - `canceled` – The instruction was canceled before it was completed.
+ - `completed` – The instruction has completed. Use the link to check the resource.
+ - `failure` – The instruction failed. Check the error message for more information.
+ - `inProgress` – The instruction is currently in progress.
+ enum:
+ - canceled
+ - completed
+ - failure
+ - inProgress
+ errorMessage:
+ type: string
+ description: Description of the error that caused the instruction to fail.
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ - type: object
+ properties:
+ paymentInstructionId:
+ maxLength: 36
+ minLength: 1
+ type: string
+ description: Unique identifier that our gateway assigned to the instruction.
+ examples:
+ paymentInstruction:
+ summary: Payment instruction
+ description: Object that contains information about the progress of the payment instruction.
+ value: &ref_490
+ paymentInstructionId: 3743a9165d134678a9100ebba3b29597
+ status: inProgress
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/payment-instructions/3743a9165d134678a9100ebba3b29597
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /payment-instructions/{paymentInstructionId}:
+ get:
+ tags:
+ - Payment instructions
+ summary: Retrieve payment instruction
+ operationId: getPaymentInstruction
+ description: Retrieve the current status of a specific payment instruction.
+ parameters:
+ - name: paymentInstructionId
+ description: Unique identifier of the payment instruction.
+ in: path
+ required: true
+ schema:
+ maxLength: 36
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the current status of the requested payment instruction.
+ content:
+ application/json:
+ schema:
+ required: *ref_131
+ type: object
+ allOf: *ref_132
+ examples:
+ paymentInstruction:
+ summary: Payment instruction
+ description: Object that contains information about the progress of the payment instruction.
+ value: &ref_491
+ paymentInstructionId: 3743a9165d134678a9100ebba3b29597
+ status: completed
+ link:
+ rel: payment
+ method: GET
+ href: https://api.payroc.com/v1/payments/DD6ZDQU7L2
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /refunds:
+ post:
+ tags:
+ - Refunds
+ summary: Create refund
+ operationId: unreferencedRefund
+ description: Create an unreferenced refund.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_373
+ - channel
+ - order
+ - processingTerminalId
+ - refundMethod
+ type: object
+ description: Refund a payment that is not linked to a previous transaction. Unreferenced refunds are available only on certain accounts.
+ properties: &ref_374
+ channel:
+ type: string
+ description: Channel that the merchant used to request the refund.
+ enum:
+ - pos
+ - moto
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who initiated the request.
+ order:
+ required: &ref_135
+ - amount
+ - currency
+ - description
+ - orderId
+ type: object
+ description: Object that contains information about the refund.
+ allOf: &ref_136
+ - required: *ref_124
+ type: object
+ description: Object that contains details about the transaction.
+ properties: *ref_125
+ - type: object
+ properties:
+ orderId:
+ maxLength: 24
+ minLength: 1
+ type: string
+ description: A unique identifier assigned by the merchant.
+ dateTime:
+ type: string
+ format: date-time
+ readOnly: true
+ description: Date and time that the processor processed the transaction. Our gateway returns this value in the ISO 8601 format.
+ description:
+ maxLength: 256
+ minLength: 1
+ type: string
+ description: Description of the transaction.
+ amount:
+ type: integer
+ format: int64
+ description: Total amount of the transaction. The value is in the currency’s lowest denomination, for example, cents.
+ currency:
+ type: string
+ description: Currency code for the transaction. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ dccOffer:
+ required: *ref_133
+ type: object
+ properties: *ref_134
+ description: Object that contains the exchange rates offer for a foreign card.
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ ipAddress:
+ required: *ref_104
+ type: object
+ writeOnly: true
+ description: Object that contains information about the IP address of the device that sent the request.
+ properties: *ref_105
+ refundMethod:
+ description: Object that contains information about how the merchant refunds the customer.
+ type: object
+ oneOf:
+ - required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ - required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ examples:
+ refund:
+ summary: Refund
+ description: Refund
+ value: &ref_493
+ processingTerminalId: '1023'
+ order:
+ orderId: 1023_refund_oa8
+ description: refund example
+ amount: 1000
+ currency: USD
+ channel: web
+ refundMethod:
+ type: card
+ cardDetails:
+ entryMethod: keyed
+ keyedData:
+ dataFormat: plainText
+ device:
+ type: DATECS_BLUEPAD50
+ serialNumber: WPC202833004712
+ expiryDate: '0328'
+ cardNumber: '5001650000000000'
+ required: true
+ responses:
+ '201':
+ description: Successful request. We processed the refund.
+ content:
+ application/json:
+ schema:
+ required: &ref_144
+ - card
+ - order
+ - processingTerminalId
+ - refundId
+ - transactionResult
+ type: object
+ description: Object that contains information about the refund.
+ properties: &ref_145
+ refundId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier that our gateway assigned to the refund.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who requested the refund.
+ order:
+ required: *ref_135
+ type: object
+ description: Object that contains information about the refund.
+ allOf: *ref_136
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ card:
+ required: *ref_137
+ type: object
+ properties: *ref_138
+ description: Object that contains information about the card.
+ payment:
+ required: *ref_139
+ type: object
+ description: Object that contains information about a payment.
+ properties: *ref_140
+ supportedOperations:
+ type: array
+ items: *ref_141
+ description: |
+ Array of operations that you can perform on the transaction.
+ - `capture` - Capture the payment.
+ - `refund` - Refund the payment.
+ - `fullyReverse` - Fully reverse the transaction.
+ - `partiallyReverse` - Partially reverse the payment.
+ - `incrementAuthorization` - Increase the amount of the authorization.
+ - `adjustTip` - Adjust the tip post-payment.
+ - `addSignature` - Add a signature to the payment.
+ - `setAsReady` - Set the transaction’s status to `ready`.
+ - `setAsPending` - Set the transaction’s status to `pending`.
+ - `setAsDeclined` - Set the transaction’s status to `declined`.
+ transactionResult:
+ required: *ref_142
+ type: object
+ properties: *ref_143
+ description: Object that contains information about the transaction response details.
+ examples:
+ refund:
+ summary: Refund
+ description: Refund
+ value: &ref_146
+ refundId: CD3HN88U9F
+ processingTerminalId: '1023'
+ order:
+ orderId: 1023_refund_oa8
+ dateTime: '2023-07-27T09:51:02.91+01:00'
+ description: refund example
+ amount: 1000
+ currency: USD
+ card:
+ type: MasterCard
+ entryMethod: keyed
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ transactionResult:
+ type: refund
+ status: ready
+ approvalCode: '000000'
+ authorizedAmount: -1000
+ currency: USD
+ responseCode: A
+ responseMessage: OK5
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Refunds
+ summary: List refunds
+ description: |
+ Return a list of refunds.
+ To filter your results, use query parameters.
+ operationId: listRefunds
+ parameters:
+ - name: processingTerminalId
+ in: query
+ description: Filter refunds by the unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: orderId
+ in: query
+ description: Filter refunds by the unique identifier that the merchant assigned to the order.
+ schema:
+ maxLength: 24
+ minLength: 1
+ type: string
+ - name: operator
+ in: query
+ description: Filter refunds by the operator who initiated the request.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: cardholderName
+ in: query
+ description: Filter refunds by cardholder name.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: first6
+ in: query
+ description: Filter refunds by the first six digits of the card number.
+ schema:
+ pattern: '[0-9]{6}'
+ type: string
+ - name: last4
+ in: query
+ description: Filter refunds by the last four digits of the card number.
+ schema:
+ pattern: '[0-9]{4}'
+ type: string
+ - name: tender
+ in: query
+ description: Filter by tender type.
+ schema:
+ type: string
+ enum:
+ - ebt
+ - creditDebit
+ - name: status
+ in: query
+ description: Filter refunds by the current status of the refund.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - referral
+ - pickup
+ - reversal
+ - admin
+ - expired
+ - accepted
+ - review
+ - name: dateFrom
+ in: query
+ description: Filter by refunds processed after a specific date. The date format follows the ISO 8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: dateTo
+ in: query
+ description: Filter by refunds processed before a specific date. The date format follows the ISO 8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: settlementState
+ in: query
+ description: Status of the settlement.
+ schema:
+ type: string
+ enum:
+ - settled
+ - unsettled
+ - name: settlementDate
+ in: query
+ description: Date the transaction was settled.
+ schema:
+ type: string
+ format: date
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a paginated list of refunds.
+ content:
+ application/json:
+ schema:
+ required: &ref_371
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ description: Object that contains information about refund objects.
+ allOf: &ref_372
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of refund objects.
+ items:
+ required: *ref_144
+ type: object
+ description: Object that contains information about the refund.
+ properties: *ref_145
+ examples:
+ paginatedResults:
+ summary: Paginated Refund
+ description: Paginated Refund
+ value: &ref_492
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - refundId: FPU8P48WN8
+ processingTerminalId: '1001'
+ order:
+ orderId: 1001_refund_1
+ dateTime: '2023-05-18T16:32:47+01:00'
+ description: refund example
+ amount: 1000
+ currency: EUR
+ card:
+ type: MasterCard
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ transactionResult:
+ type: refund
+ status: ready
+ approvalCode: '000000'
+ authorizedAmount: -1000
+ currency: EUR
+ responseCode: A
+ responseMessage: APPROVAL
+ - refundId: CYGDZJF0MH
+ processingTerminalId: '1001'
+ order:
+ orderId: 1001_refund
+ dateTime: '2023-05-18T16:22:43+01:00'
+ description: refund example
+ amount: 1000
+ currency: EUR
+ card:
+ type: MasterCard
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ transactionResult:
+ type: refund
+ status: reversal
+ approvalCode: '000000'
+ authorizedAmount: -1000
+ currency: EUR
+ responseCode: A
+ responseMessage: APPROVAL
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/refunds?processingTerminalId=1001&limit=2&after=CYGDZJF0MH
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/refunds?processingTerminalId=1001&limit=2&before=FPU8P48WN8
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /refunds/{refundId}:
+ get:
+ tags:
+ - Refunds
+ summary: Retrieve refund
+ operationId: getRefund
+ description: Retrieve a specific refund.
+ parameters:
+ - name: refundId
+ description: Unique identifier that our gateway assigned to the refund.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the specific refund.
+ content:
+ application/json:
+ schema:
+ required: *ref_144
+ type: object
+ description: Object that contains information about the refund.
+ properties: *ref_145
+ examples:
+ refundResponse:
+ summary: Refund
+ description: Refund
+ value: *ref_146
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /refunds/{refundId}/adjust:
+ post:
+ tags:
+ - Refunds
+ summary: Adjust refund
+ operationId: adjustRefund
+ description: Adjust an existing refund.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: refundId
+ description: Unique identifier that our gateway assigned to the refund.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_375
+ - adjustments
+ type: object
+ description: Object that contains information about the adjustment to the refund.
+ properties: &ref_376
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who requested the adjustment to the refund.
+ adjustments:
+ type: array
+ description: Array of objects that contain information about the adjustments to the refund.
+ uniqueItems: true
+ items:
+ oneOf:
+ - required: *ref_147
+ type: object
+ title: Status
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the status of the transaction.
+ properties: *ref_148
+ - required: *ref_149
+ type: object
+ title: Customer
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the customer’s contact details.
+ properties: *ref_150
+ examples:
+ refundRequest:
+ summary: Adjust Refund
+ description: Adjust Refund
+ value: &ref_494
+ operator: Adam Smith
+ adjustments:
+ - type: customer
+ contactMethods:
+ - type: mobile
+ value: '+14155556666'
+ required: true
+ responses:
+ '200':
+ description: Successful request. We updated the refund.
+ content:
+ application/json:
+ schema:
+ required: *ref_144
+ type: object
+ description: Object that contains information about the refund.
+ properties: *ref_145
+ examples:
+ refundResponse:
+ summary: Adjust Refund
+ description: Adjust Refund
+ value: &ref_495
+ refundId: I2HLYTVB81
+ processingTerminalId: '1023'
+ operator: Adam Smith
+ order:
+ orderId: 1023_refund_czz
+ dateTime: '2023-07-28T09:44:35+01:00'
+ description: refund example
+ amount: 1000
+ currency: USD
+ customer:
+ contactMethods:
+ - type: mobile
+ value: '+14155556666'
+ card:
+ type: MasterCard
+ entryMethod: keyed
+ cardNumber: 500165******0000
+ expiryDate: '0328'
+ transactionResult:
+ type: refund
+ status: ready
+ approvalCode: '000000'
+ authorizedAmount: -1000
+ currency: USD
+ responseCode: A
+ responseMessage: OK13
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /refunds/{refundId}/reverse:
+ post:
+ tags:
+ - Refunds
+ summary: Reverse refund
+ operationId: reverseRefund
+ description: Void an existing refund.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: refundId
+ description: Unique identifier that our gateway assigned to the refund.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. We voided the refund.
+ content:
+ application/json:
+ schema:
+ required: *ref_144
+ type: object
+ description: Object that contains information about the refund.
+ properties: *ref_145
+ examples:
+ refund:
+ summary: Reverse Refund
+ description: Reverse Refund
+ value: &ref_496
+ refundId: IH83EP2SRN
+ processingTerminalId: '1001'
+ order:
+ orderId: 1001_refund_2
+ dateTime: '2023-05-18T16:33:10+01:00'
+ description: refund example
+ amount: 1000
+ currency: EUR
+ card:
+ type: Visa Credit
+ entryMethod: keyed
+ cardNumber: 453985******7062
+ expiryDate: '0328'
+ transactionResult:
+ type: refund
+ status: reversal
+ approvalCode: '000000'
+ authorizedAmount: -1000
+ currency: EUR
+ responseCode: A
+ responseMessage: APPROVAL
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /devices/{serialNumber}/refund-instructions:
+ post:
+ tags:
+ - Refund instructions
+ summary: Submit refund instruction
+ operationId: sendRefundInstruction
+ description: Submit an instruction request to initiate a refund on a payment device.
+ parameters:
+ - name: serialNumber
+ description: Serial number that identifies the merchant’s payment device.
+ in: path
+ required: true
+ schema:
+ maxLength: 45
+ minLength: 1
+ type: string
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_379
+ - order
+ - processingTerminalId
+ type: object
+ description: Object that contains information about the instruction request to initiate a refund on a payment device.
+ properties: &ref_380
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who initiated the request.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ order:
+ required: &ref_377
+ - amount
+ - currency
+ - description
+ - orderId
+ type: object
+ description: Object that contains information about the refund.
+ allOf: &ref_378
+ - required: *ref_124
+ type: object
+ description: Object that contains details about the transaction.
+ properties: *ref_125
+ - type: object
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ ipAddress:
+ required: *ref_104
+ type: object
+ writeOnly: true
+ description: Object that contains information about the IP address of the device that sent the request.
+ properties: *ref_105
+ customizationOptions:
+ type: object
+ description: Object that contains available options to customize certain aspects of an instruction.
+ properties: *ref_151
+ examples:
+ refundInstructionRequest:
+ summary: Refund instruction
+ description: Submit an instruction for initiating a refund on a physical device.
+ value: &ref_497
+ operator: jbloggs
+ processingTerminalId: '1021'
+ order:
+ orderId: 4fd4-99bc
+ currency: USD
+ amount: 1000
+ customizationOptions:
+ entryMethod: manualEntry
+ required: true
+ responses:
+ '202':
+ description: Successful request. We accepted the refund instruction to process.
+ content:
+ application/json:
+ schema:
+ required: &ref_153
+ - refundInstructionId
+ - status
+ type: object
+ allOf: &ref_154
+ - type: object
+ description: Object that contains information about the status of the instruction
+ properties: *ref_152
+ - type: object
+ properties:
+ refundInstructionId:
+ maxLength: 36
+ minLength: 1
+ type: string
+ description: Unique identifier that our gateway assigned to the instruction.
+ examples:
+ refundInstruction:
+ summary: Refund instruction
+ description: Object that contains information about the progress of the refund instruction.
+ value: &ref_498
+ refundInstructionId: 3743a9165d134678a9100ebba3b29597
+ status: inProgress
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/refund-instructions/3743a9165d134678a9100ebba3b29597
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /refund-instructions/{refundInstructionId}:
+ get:
+ tags:
+ - Refund instructions
+ summary: Retrieve refund instruction
+ operationId: getRefundInstruction
+ description: Retrieve the current status of a specific refund instruction.
+ parameters:
+ - name: refundInstructionId
+ description: Unique identifier of the refund instruction.
+ in: path
+ required: true
+ schema:
+ maxLength: 36
+ minLength: 1
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the current status of the requested refund instruction.
+ content:
+ application/json:
+ schema:
+ required: *ref_153
+ type: object
+ allOf: *ref_154
+ examples:
+ refundInstruction:
+ summary: Refund instruction
+ description: Object that contains information about the progress of the refund instruction.
+ value: &ref_499
+ refundInstructionId: 3743a9165d134678a9100ebba3b29597
+ status: completed
+ link:
+ rel: refund
+ method: GET
+ href: https://api.payroc.com/v1/refunds/DD6ZDQU7L2
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /cards/verify:
+ post:
+ tags:
+ - Cards
+ summary: Verify a card
+ operationId: verifyCard
+ description: Verify that a card is valid. For banks that do not support verification, we charge a micro deposit that we void immediately.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_381
+ - card
+ - processingTerminalId
+ type: object
+ properties: &ref_382
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who requested to verify the card.
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ card:
+ type: object
+ description: Object that contains information about the card.
+ oneOf:
+ - required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ examples:
+ cardVerificationRequest:
+ summary: Card Verification
+ description: Card Verification
+ value: &ref_500
+ operator: Mark Simpsons
+ processingTerminalId: '1001'
+ card:
+ type: card
+ cardDetails:
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ cardholderSignature: 13ab
+ keyedData:
+ dataFormat: plainText
+ cardNumber: '4539858876047062'
+ expiryDate: '1230'
+ required: true
+ responses:
+ '200':
+ description: Successful request. Returns the verification status of the card details.
+ content:
+ application/json:
+ schema:
+ required: &ref_383
+ - card
+ - processingTerminalId
+ - verified
+ type: object
+ properties: &ref_384
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who requested to verify the card.
+ verified:
+ type: boolean
+ description: |
+ Indicates if we have verified the card details.
+ - `true` - The card details are valid.
+ - `false` - The card details are not valid.
+ dateTime:
+ type: string
+ format: date-time
+ description: Date and time that we processed the request. This format follows the ISO 8601 standard, for example, 2023-03-07T15:02:07+00:00.
+ responseCode:
+ type: string
+ description: |
+ Response from the processor.
+ - `A` - The processor approved the transaction.
+ - `D` - The processor declined the transaction.
+ - `E` - The processor received the transaction but will process the transaction later.
+ - `P` - The processor authorized a portion of the original amount of the transaction.
+ - `R` - The issuer declined the transaction and indicated that the customer should contact their bank.
+ - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
+ enum:
+ - A
+ - D
+ - E
+ - P
+ - R
+ - C
+ responseMessage:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Response description from the payment processor. For example, “Refer to Card Issuer”.
+ processorResponseCode:
+ type: string
+ description: Response code from payment processor. This code is then mapped onto a `responseCode` enum.
+ examples:
+ cardVerificationResponse:
+ summary: Card Verification
+ description: Card Verification
+ value: &ref_501
+ operator: Mark Simpsons
+ processingTerminalId: '1001'
+ card:
+ type: Visa Credit
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ cardholderSignature: 13ab
+ cardNumber: 453985******7062
+ expiryDate: '1230'
+ verified: true
+ transactionResult:
+ status: ready
+ responseCode: A
+ responseMessage: APPROVAL
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /cards/balance:
+ post:
+ tags:
+ - Cards
+ summary: Balance inquiry
+ operationId: balanceCard
+ description: Request the balance of an Electronic Benefit Transfer (EBT) card.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_385
+ - card
+ - currency
+ - processingTerminalId
+ type: object
+ properties: &ref_386
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who requested the balance inquiry.
+ currency:
+ type: string
+ description: Three-letter currency code of the transaction. This format follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ card:
+ type: object
+ description: Object that contains information about the card.
+ oneOf:
+ - required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ - required: *ref_155
+ type: object
+ writeOnly: true
+ title: Single-use token
+ description: Object that contains information about the single-use token, which represents the customer’s payment details.
+ properties: *ref_156
+ examples:
+ cardBalanceRequest:
+ summary: Card Balance
+ description: Card Balance
+ value: &ref_502
+ operator: Mark Simpsons
+ processingTerminalId: '1024'
+ currency: USD
+ card:
+ type: card
+ cardDetails:
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ cardholderSignature: 12ab
+ keyedData:
+ dataFormat: plainText
+ cardNumber: '6007602801003837967'
+ expiryDate: '1229'
+ device:
+ type: PAX_A920_PRO
+ dataKsn: FFFF5B09910001000061
+ firmwareVersion: PayDroid_8.1.0_Sagittarius_V11.1.11_20200904 V1.04.02_20210617
+ category: attended
+ serialNumber: '1850010868'
+ pinDetails:
+ dataFormat: dukpt
+ pin: 0123456789abcdef
+ pinKsn: 0002152304aad1234561
+ ebtDetails:
+ benefitCategory: cash
+ required: true
+ responses:
+ '200':
+ description: Successful request. Returns the current balance of the EBT card.
+ content:
+ application/json:
+ schema:
+ required: &ref_387
+ - card
+ - processingTerminalId
+ type: object
+ properties: &ref_388
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who requested the balance inquiry.
+ card:
+ required: *ref_137
+ type: object
+ properties: *ref_138
+ description: Object that contains information about the card.
+ responseCode:
+ type: string
+ description: |
+ Response from the processor.
+ - `A` - The processor approved the transaction.
+ - `D` - The processor declined the transaction.
+ - `E` - The processor received the transaction but will process the transaction later.
+ - `P` - The processor authorized a portion of the original amount of the transaction.
+ - `R` - The issuer declined the transaction and indicated that the customer should contact their bank.
+ - `C` - The issuer declined the transaction and indicated that the merchant should keep the card as it was reported lost or stolen.
+ enum:
+ - A
+ - D
+ - E
+ - P
+ - R
+ - C
+ responseMessage:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Response description from the payment processor. For example, “Refer to Card Issuer”.
+ examples:
+ cardBalanceResponse:
+ summary: Card Balance
+ description: Card Balance
+ value: &ref_503
+ operator: Mark Simpsons
+ processingTerminalId: '1024'
+ card:
+ type: Common Benefit Identification Card
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ cardholderSignature: 12ab
+ cardNumber: 600760*********7967
+ expiryDate: '1229'
+ balances:
+ - benefitCategory: cash
+ amount: 10000
+ currency: USD
+ responseCode: A
+ responseMessage: Approved
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /cards/bin-lookup:
+ post:
+ tags:
+ - Cards
+ summary: Lookup BIN information
+ description: Perform a BIN (Bank Identification Number) lookup to retrieve information about a card.
+ operationId: binLookup
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_391
+ - card
+ type: object
+ properties: &ref_392
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: The terminal number assigned by the gateway.
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: |
+ The amount in the currency's lowest denomination.
+ If the card is eligible for surcharging, sending this field will allow the gateway to calculate and return the surcharge amount.
+ currency:
+ type: string
+ description: |
+ The currency of the transaction.
+ A 3-letter code as per the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ card:
+ type: object
+ description: Object that contains information about the card.
+ oneOf:
+ - required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ - required: &ref_389
+ - type
+ - bin
+ type: object
+ writeOnly: true
+ title: Card BIN
+ description: Object that contains information about the card's bank identification number (BIN).
+ properties: &ref_390
+ type:
+ type: string
+ description: Method that the terminal used to take the payment.
+ enum:
+ - cardBin
+ bin:
+ maxLength: 12
+ minLength: 6
+ type: string
+ - required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ - required: *ref_157
+ type: object
+ writeOnly: true
+ title: Digital wallet
+ description: Object that contains information about the payment details in the customer’s digital wallet.
+ properties: *ref_158
+ examples:
+ binLookupRequest:
+ summary: BIN lookup
+ description: BIN lookup
+ value: &ref_504
+ operator: Andrew White
+ processingTerminalId: '1005'
+ card:
+ type: card
+ cardDetails:
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ cardholderSignature: 13ab
+ keyedData:
+ dataFormat: plainText
+ cardNumber: '5001650000000000'
+ expiryDate: '1225'
+ required: true
+ responses:
+ '200':
+ description: Successful request. Returns the BIN information.
+ content:
+ application/json:
+ schema:
+ required: &ref_159
+ - type
+ - cardNumber
+ type: object
+ readOnly: true
+ properties: &ref_160
+ type:
+ type: string
+ description: Card brand, for example, Visa.
+ cardNumber:
+ maxLength: 19
+ minLength: 12
+ type: string
+ description: Masked card number. Our gateway shows only the first six digits and the last four digits of the card number, for example, 548010******5929.
+ country:
+ type: string
+ format: iso-3166-1
+ description: Country of the issuing bank.
+ currency:
+ type: string
+ description: Code that represents the currency of the card.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ debit:
+ type: boolean
+ description: Indicates if the card is a debit card.
+ surcharging:
+ required: &ref_393
+ - allowed
+ type: object
+ properties: &ref_394
+ allowed:
+ type: boolean
+ description: Indicates if the merchant can add a surcharge when the customer uses this card.
+ amount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: |
+ Surcharge amount to add to the transaction.
+ **Note:** Our gateway returns **amount** only if the request contained an example transaction amount.
+ percentage:
+ maximum: 100
+ exclusiveMaximum: false
+ minimum: 0
+ exclusiveMinimum: true
+ type: number
+ format: double
+ description: Surcharge rate that the merchant configures on their account.
+ disclosure:
+ type: string
+ description: Statement used to disclose the surcharge fee to the customer.
+ description: Object that contains surcharge information. Our gateway returns this object only if the merchant adds a surcharge to transactions.
+ description: Object that contains information about the card.
+ examples:
+ binLookupResponse:
+ summary: BIN lookup
+ description: BIN lookup
+ value: &ref_505
+ type: MASTERCARD
+ cardNumber: 500165******0000
+ country: US
+ currency: USD
+ debit: false
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /fx-rates:
+ post:
+ tags:
+ - Currency conversion
+ summary: Fx rates inquiry
+ description: |
+ Check if a customer’s card is eligible for Dynamic Currency Conversion (DCC).
+ If the card is eligible for DCC, offer currency conversion to the customer during a transaction.
+ **Note:** We offer this through the DCC service, which gives customers a choice to pay in the local currency or their own currency.
+ operationId: getFxRates
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_395
+ - baseAmount
+ - baseCurrency
+ - channel
+ - paymentMethod
+ - processingTerminalId
+ type: object
+ properties: &ref_396
+ channel:
+ description: Channel that the merchant used to receive payment details for the transaction.
+ type: string
+ enum:
+ - pos
+ - web
+ - moto
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Operator who ran the transaction.
+ baseAmount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: Total amount of the transaction in the local currency. The value is in the currency’s lowest denomination, for example, cents.
+ baseCurrency:
+ type: string
+ description: Code that represents the local currency.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ paymentMethod:
+ type: object
+ description: Object that contains information about the customer's payment details.
+ oneOf:
+ - required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ - required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ - required: *ref_157
+ type: object
+ writeOnly: true
+ title: Digital wallet
+ description: Object that contains information about the payment details in the customer’s digital wallet.
+ properties: *ref_158
+ examples:
+ fxRateRequest:
+ summary: Fx-Rate
+ description: Fx-Rate
+ value: &ref_506
+ channel: web
+ operator: Aaron
+ processingTerminalId: '1005'
+ baseAmount: 10000
+ baseCurrency: EUR
+ paymentMethod:
+ type: card
+ accountType: checking
+ cardDetails:
+ entryMethod: keyed
+ cardholderName: Joe Bloggs
+ keyedData:
+ dataFormat: plainText
+ cardNumber: '5001650000000000'
+ expiryDate: '0430'
+ required: true
+ responses:
+ '200':
+ description: Successful request. Returns the currency conversion rate for the transaction.
+ content:
+ application/json:
+ schema:
+ required: &ref_399
+ - baseAmount
+ - baseCurrency
+ - cardInfo
+ - inquiryResult
+ - processingTerminalId
+ type: object
+ description: Foreign exchange rate for the transaction.
+ properties: &ref_400
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ operator:
+ maxLength: 50
+ minLength: 0
+ type: string
+ description: Operator who ran the transaction.
+ baseAmount:
+ minimum: 0
+ exclusiveMinimum: true
+ type: integer
+ format: int64
+ description: Total amount of the transaction in the local currency. The value is in the currency’s lowest denomination, for example, cents.
+ baseCurrency:
+ type: string
+ description: Code that represents the local currency.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ inquiryResult:
+ required: &ref_397
+ - dccOffered
+ type: object
+ properties: &ref_398
+ dccOffered:
+ type: boolean
+ default: false
+ description: Indicates if the card is eligible for DCC.
+ causeOfRejection:
+ type: string
+ description: Explains why the DCC service did not offer a currency conversion rate to the customer.
+ description: Object that contains information about the currency conversion rate.
+ dccOffer:
+ required: *ref_133
+ type: object
+ properties: *ref_134
+ description: Object that contains the exchange rates offer for a foreign card.
+ cardInfo:
+ required: *ref_159
+ type: object
+ readOnly: true
+ properties: *ref_160
+ description: Object that contains information about the card.
+ examples:
+ fxRateResponse:
+ summary: Fx-Rate
+ description: Fx-Rate
+ value: &ref_507
+ processingTerminalId: '1005'
+ operator: Aaron
+ baseAmount: 10000
+ baseCurrency: EUR
+ inquiryResult:
+ dccOffered: true
+ dccOffer:
+ accepted: true
+ reference: 3396977e-40b9-4b26-8a3f-c25bc1280ee2
+ fxAmount: 13612
+ fxCurrency: JPY
+ fxCurrencyCode: '392'
+ fxCurrencyExponent: 0
+ fxRate: 136.1248
+ markup: 3
+ provider: FEXCO
+ source: REUTERS WHOLESALE INTERBANK
+ cardInfo:
+ type: MASTERCARD
+ cardNumber: 500165******0000
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-payments:
+ post:
+ tags:
+ - Bank transfer payments
+ summary: Create payment
+ operationId: bankTransferPayment
+ description: Run a sale with a customer's bank account details.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_407
+ - order
+ - paymentMethod
+ - processingTerminalId
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: &ref_408
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ order:
+ required: &ref_165
+ - amount
+ - currency
+ - orderId
+ type: object
+ allOf: &ref_166
+ - required: *ref_124
+ type: object
+ description: Object that contains details about the transaction.
+ properties: *ref_125
+ - type: object
+ properties:
+ orderId:
+ maxLength: 24
+ minLength: 1
+ type: string
+ description: A unique identifier assigned by the merchant.
+ dateTime:
+ type: string
+ format: date-time
+ readOnly: true
+ description: The processing date and time of the transaction represented as per [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard.
+ description:
+ maxLength: 256
+ minLength: 1
+ type: string
+ description: A brief description of the transaction.
+ amount:
+ type: integer
+ format: int64
+ description: The total amount in the currency's lowest denomination. For example, cents.
+ currency:
+ type: string
+ description: |
+ The currency of the transaction.
+ A 3-letter code as per the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ breakdown:
+ required: &ref_401
+ - subtotal
+ type: object
+ description: Object that contains information about the taxes and tip amount on the transaction.
+ properties: &ref_402
+ subtotal:
+ type: integer
+ format: int64
+ description: Total amount of the transaction before tax and tip. The value is in the currency's lowest denomination, for example, cents.
+ tip:
+ description: Object that contains tip information for the transaction.
+ required: *ref_119
+ type: object
+ properties: *ref_120
+ taxes:
+ type: array
+ description: Array of tax objects.
+ items:
+ required: *ref_102
+ type: object
+ properties: *ref_103
+ description: Object that contains information about the transaction.
+ customer:
+ type: object
+ properties: &ref_167
+ notificationLanguage:
+ maxLength: 2
+ minLength: 2
+ type: string
+ format: iso-639-1
+ example: en
+ description: Customer's preferred notification language. This code follows the ISO 639-1 standard.
+ enum:
+ - en
+ - fr
+ contactMethods:
+ uniqueItems: true
+ description: Customer's contact information.
+ type: array
+ items:
+ oneOf: *ref_2
+ description: Object that contains information about the customer.
+ credentialOnFile:
+ type: object
+ description: Object that contains information about saving the customer’s payment details.
+ properties: *ref_128
+ paymentMethod:
+ type: object
+ description: Object that contains information about the customer's payment details.
+ oneOf:
+ - required: *ref_161
+ type: object
+ writeOnly: true
+ title: ACH
+ description: Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
+ properties: *ref_162
+ - required: *ref_163
+ type: object
+ writeOnly: true
+ title: PAD
+ description: Object that contains information about the payment details for the customer’s preauthorized electronic debit (PAD) transactions.
+ properties: *ref_164
+ - required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ examples:
+ createdBankTransferPaymentStoreToken:
+ summary: Store Token Bank Transfer Payment
+ description: Bank Transfer Payment with ACH payload and token storage
+ value: &ref_509
+ processingTerminalId: '1017'
+ order:
+ orderId: orderpop123
+ description: sample order
+ amount: 11110
+ currency: USD
+ breakdown:
+ subtotal: 10000
+ tip:
+ type: percentage
+ percentage: 10
+ taxes:
+ - name: VAT
+ rate: 1
+ customer:
+ notificationLanguage: en
+ contactMethods:
+ - type: email
+ value: joe@blogssoftware.com
+ credentialOnFile:
+ tokenize: true
+ paymentMethod:
+ type: ach
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '11101010'
+ routingNumber: '053200983'
+ secCode: web
+ required: true
+ responses:
+ '201':
+ description: Successful request. We processed the sale.
+ content:
+ application/json:
+ schema:
+ required: &ref_170
+ - bankAccount
+ - order
+ - paymentId
+ - processingTerminalId
+ - transactionResult
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: &ref_171
+ paymentId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier that our gateway assigned to the payment.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ order:
+ required: *ref_165
+ type: object
+ allOf: *ref_166
+ description: Object that contains information about the transaction.
+ customer:
+ type: object
+ properties: *ref_167
+ description: Object that contains information about the customer.
+ bankAccount:
+ description: Object that contains information about the bank account.
+ type: object
+ oneOf:
+ - required: &ref_175
+ - accountNumber
+ - nameOnAccount
+ - routingNumber
+ - type
+ type: object
+ title: ACH account
+ description: Object that contains the customer's account details.
+ properties: &ref_176
+ type:
+ type: string
+ enum:
+ - ach
+ secCode:
+ type: string
+ description: |
+ SEC code for the transaction.
+ - `web` - Online transaction.
+ - `tel` - Telephone transaction.
+ - `ccd` - Corporate credit or debit transaction.
+ - `ppd` - Pre-arranged transaction.
+ enum:
+ - web
+ - tel
+ - ccd
+ - ppd
+ nameOnAccount:
+ maxLength: 50
+ minLength: 1
+ type: string
+ description: Customer's name.
+ accountNumber:
+ maxLength: 17
+ minLength: 4
+ type: string
+ description: Customer's bank account number. We mask all digits except the last four digits.
+ routingNumber:
+ maxLength: 9
+ minLength: 9
+ type: string
+ description: |
+ Routing number of the customer’s account.
+ **Note:** In responses, our gateway shows only the last four digits of the account’s routing number. For example, *****4162.
+ secureToken:
+ required: *ref_86
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_87
+ - required: &ref_177
+ - accountNumber
+ - institutionNumber
+ - nameOnAccount
+ - transitNumber
+ - type
+ type: object
+ title: PAD account
+ description: Object that contains the customer's account details.
+ properties: &ref_178
+ type:
+ type: string
+ enum:
+ - pad
+ nameOnAccount:
+ maxLength: 29
+ minLength: 1
+ type: string
+ description: Customer's name.
+ accountNumber:
+ maxLength: 12
+ minLength: 7
+ type: string
+ description: Customer's bank account number. We mask all digits except the last four digits.
+ transitNumber:
+ maxLength: 5
+ minLength: 5
+ type: string
+ description: Five-digit code that represents the customer's banking branch.
+ institutionNumber:
+ maxLength: 3
+ minLength: 3
+ type: string
+ description: Three-digit code that represents the customer's bank.
+ secureToken:
+ required: *ref_86
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_87
+ refunds:
+ type: array
+ uniqueItems: true
+ description: List of refunds issued against the payment
+ items:
+ required: *ref_168
+ type: object
+ description: Object that contains information about a refund.
+ properties: *ref_169
+ returns:
+ type: array
+ uniqueItems: true
+ description: List of returns issued against the payment
+ items:
+ required: &ref_403
+ - date
+ - paymentId
+ - represented
+ - returnCode
+ - returnReason
+ type: object
+ description: Object that contains information about a return.
+ properties: &ref_404
+ paymentId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier that our gateway assigned to the payment.
+ date:
+ type: string
+ format: date
+ description: The date that the check was returned.
+ returnCode:
+ type: string
+ description: The NACHA return code.
+ returnReason:
+ type: string
+ description: The reason why the check was returned.
+ represented:
+ type: boolean
+ description: Indicates whether the return has been re-presented.
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ representment:
+ required: *ref_139
+ type: object
+ description: Object that contains information about a payment.
+ properties: *ref_140
+ transactionResult:
+ required: &ref_179
+ - responseMessage
+ - status
+ - type
+ type: object
+ readOnly: true
+ properties: &ref_180
+ type:
+ type: string
+ description: Type of transaction.
+ enum:
+ - payment
+ - refund
+ - unreferencedRefund
+ - accountVerification
+ status:
+ type: string
+ description: Status of the transaction.
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - admin
+ - reversal
+ - returned
+ authorizedAmount:
+ type: number
+ description: |
+ Amount of the transaction.
+ **Note:** The amount is negative for a refund.
+ currency:
+ type: string
+ description: Currency code of the transaction. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ responseCode:
+ type: string
+ description: |
+ Response from the processor.
+ - `A` - The processor approved the transaction.
+ - `D` - The processor declined the transaction.
+ responseMessage:
+ maxLength: 48
+ minLength: 1
+ type: string
+ description: Description of the response from the processor.
+ processorResponseCode:
+ type: string
+ description: Original response code that the processor sent.
+ description: Object that contains information about the transaction.
+ examples:
+ createdBankTransferPaymentStoreToken:
+ summary: Store Token Bank Transfer Payment
+ description: Bank Transfer Payment with ACH payload and token storage
+ value: &ref_172
+ paymentId: M2MJOG6O2Y
+ processingTerminalId: '1017'
+ order:
+ orderId: orderpop123
+ dateTime: '2023-07-25T14:08:45.179+01:00'
+ description: sample order
+ amount: 11110
+ currency: USD
+ breakdown:
+ subtotal: 10000
+ tip:
+ type: percentage
+ amount: 1010
+ percentage: 10
+ taxes:
+ - name: VAT
+ rate: 1
+ amount: 100
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@blogssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: ach
+ secCode: web
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '****1010'
+ routingNumber: '053200983'
+ secureToken:
+ secureTokenId: MREF_8d9b44e4-fd9c-45a7-b4b5-5e3d591dd385tK
+ customerName: Joe Bloggs
+ token: '2967534039611822'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1017/secure-tokens/MREF_8d9b44e4-fd9c-45a7-b4b5-5e3d591dd385tK
+ transactionResult:
+ type: payment
+ status: ready
+ authorizedAmount: 11110
+ currency: USD
+ responseCode: A
+ responseMessage: NoError
+ processorResponseCode: '0'
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Bank transfer payments
+ summary: List payments
+ description: Retrieve a list of payments.
+ operationId: listBankTransferPayments
+ parameters:
+ - name: processingTerminalId
+ in: query
+ required: true
+ description: Filter payments by the unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: orderId
+ in: query
+ description: Filter payments by the order ID.
+ schema:
+ maxLength: 24
+ minLength: 1
+ type: string
+ - name: nameOnAccount
+ in: query
+ description: Filter payments by the account holder's name.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: last4
+ in: query
+ description: Filter payments by the last four digits of the account number.
+ schema:
+ pattern: '[0-9]{4}'
+ type: string
+ - name: type
+ in: query
+ description: Filter payments by transaction type.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - payment
+ - accountVerification
+ - name: status
+ in: query
+ description: Filter by the status of the payment.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - admin
+ - reversal
+ - returned
+ - name: dateFrom
+ in: query
+ description: Filter by payments that the merchant ran after a specific date. The date follows the ISO 8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: dateTo
+ in: query
+ description: Filter by payments that the merchant ran before a specific date. The date follows the ISO 8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: settlementState
+ in: query
+ description: Filter by the settlement status of the payment.
+ schema:
+ type: string
+ enum:
+ - settled
+ - unsettled
+ - name: settlementDate
+ in: query
+ description: Filter by payments settled on a specific date. The format is in **YYYY-MM-DD**.
+ schema:
+ type: string
+ format: date
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of payments.
+ content:
+ application/json:
+ schema:
+ required: &ref_405
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ allOf: &ref_406
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of payments.
+ items:
+ required: *ref_170
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_171
+ examples:
+ paginatedResults:
+ summary: Bank Transfer Payment
+ description: Bank Transfer Payment
+ value: &ref_508
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - paymentId: GTNOY9O4R4
+ processingTerminalId: '1017'
+ order:
+ orderId: '602'
+ dateTime: '2023-05-16T11:53:18-04:00'
+ description: sample order
+ amount: 12100
+ currency: CAD
+ breakdown:
+ subtotal: 10000
+ tip:
+ type: percentage
+ amount: 1100
+ percentage: 10
+ taxes:
+ - name: VAT
+ rate: 10
+ amount: 1000
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: pad
+ nameOnAccount: Joe Bloggs
+ accountNumber: '*******8909'
+ transitNumber: '12345'
+ institutionNumber: '123'
+ transactionResult:
+ type: payment
+ status: ready
+ authorizedAmount: 12100
+ currency: CAD
+ responseCode: A
+ - paymentId: E29U8OU8Q4
+ processingTerminalId: '1017'
+ order:
+ orderId: '541'
+ dateTime: '2023-05-16T11:52:56-04:00'
+ description: test
+ amount: 12100
+ currency: CAD
+ breakdown:
+ subtotal: 10000
+ tip:
+ type: percentage
+ amount: 1100
+ percentage: 10
+ taxes:
+ - name: VAT
+ rate: 10
+ amount: 1000
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: pad
+ nameOnAccount: Joe Bloggs
+ accountNumber: '*******8909'
+ transitNumber: '12345'
+ institutionNumber: '123'
+ transactionResult:
+ type: payment
+ status: ready
+ authorizedAmount: 12100
+ currency: CAD
+ responseCode: A
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/bank-transfer-payments?limit=2&processingTerminalId=1017&after=E29U8OU8Q4
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1//bank-transfer-payments?limit=2&processingTerminalId=1017&before=GTNOY9O4R4
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-payments/{paymentId}:
+ get:
+ tags:
+ - Bank transfer payments
+ summary: Retrieve payment
+ description: Retrieve a specific payment.
+ operationId: getBankTransferPayment
+ parameters:
+ - name: paymentId
+ description: Unique identifier that our gateway assigned to the payment.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the specific payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_170
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_171
+ examples:
+ bankTransferPayment:
+ summary: Store Token Bank Transfer Payment
+ description: Bank Transfer Payment with ACH payload and token storage
+ value: *ref_172
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-payments/{paymentId}/reverse:
+ post:
+ tags:
+ - Bank transfer payments
+ summary: Reverse payment
+ description: Cancel a payment in an open batch.
+ operationId: reverseBankTransferPayment
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ description: Unique identifier that our gateway assigned to the payment.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. We voided the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_170
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_171
+ examples:
+ reverseBankTransferPayment:
+ summary: Reverse Bank Transfer Payment
+ description: Reverse Bank Transfer Payment
+ value: &ref_510
+ paymentId: JKNIJXNZAK
+ processingTerminalId: '1017'
+ order:
+ orderId: '157'
+ dateTime: '2023-05-16T11:54:43-04:00'
+ description: sample order
+ amount: 12100
+ currency: CAD
+ breakdown:
+ subtotal: 10000
+ tip:
+ type: percentage
+ percentage: 10
+ taxes:
+ - name: VAT
+ rate: 10
+ amount: 1000
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: pad
+ nameOnAccount: Joe Bloggs
+ accountNumber: '*******8909'
+ transitNumber: '12345'
+ institutionNumber: '123'
+ transactionResult:
+ type: payment
+ status: reversal
+ authorizedAmount: 12100
+ currency: CAD
+ responseCode: A
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-payments/{paymentId}/refund:
+ post:
+ tags:
+ - Bank transfer payments
+ summary: Refund payment
+ description: Refund a payment.
+ operationId: refundBankTransferPayment
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ description: Unique identifier that our gateway assigned to the payment.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_409
+ - amount
+ - description
+ type: object
+ description: Object that contains information about the payment that you want to refund.
+ properties: &ref_410
+ amount:
+ type: integer
+ format: int64
+ description: Total amount of the refund. The value is in the currency's lowest denomination, for example, cents.
+ description:
+ maxLength: 100
+ minLength: 1
+ type: string
+ description: Description of the refund.
+ examples:
+ refundBankTransferPayment:
+ summary: Refund Bank Transfer Payment
+ description: Refund Bank Transfer Payment
+ value: &ref_511
+ amount: 10000
+ description: amount to refund
+ required: true
+ responses:
+ '200':
+ description: Successful request. We refunded the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_170
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_171
+ examples:
+ bankTransferPayment:
+ summary: Reverse Bank Transfer Payment
+ description: Reverse Bank Transfer Payment
+ value: &ref_512
+ paymentId: M12F8SUHGM
+ processingTerminalId: '1017'
+ order:
+ orderId: '243'
+ dateTime: '2023-07-25T22:57:11+01:00'
+ description: amount to refund
+ amount: 11110
+ currency: CAD
+ breakdown:
+ subtotal: 10000
+ tip:
+ type: percentage
+ amount: 1010
+ percentage: 10
+ taxes:
+ - name: VAT
+ rate: 1
+ amount: 100
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@blogssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: pad
+ nameOnAccount: Joe Bloggs
+ accountNumber: '****9031'
+ transitNumber: '14574'
+ institutionNumber: '644'
+ secureToken:
+ secureTokenId: MREF_465772d1-ab4e-4881-8052-5021a745ed18Df
+ customerName: Joe Bloggs
+ token: '2967536686508441'
+ status: notValidated
+ link:
+ rel: self
+ method: GET
+ href: https://api.payroc.com/v1/processing-terminals/1017/secure-tokens/MREF_465772d1-ab4e-4881-8052-5021a745ed18Df
+ transactionResult:
+ type: payment
+ status: reversal
+ authorizedAmount: 11110
+ currency: CAD
+ responseCode: A
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-payments/{paymentId}/represent:
+ post:
+ tags:
+ - Bank transfer payments
+ summary: Re-present payment
+ description: Re-present a customer's bank account details if the first payment was declined.
+ operationId: representBankTransferPayment
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: paymentId
+ description: Unique identifier that our gateway assigned to the rejected payment.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_411
+ - paymentMethod
+ type: object
+ description: Object that contains the paymentMethod object.
+ properties: &ref_412
+ paymentMethod:
+ type: object
+ description: Object that contains information about the customer's payment details.
+ oneOf:
+ - required: *ref_161
+ type: object
+ writeOnly: true
+ title: ACH
+ description: Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
+ properties: *ref_162
+ examples:
+ representBankTransferPayment:
+ summary: Representment Bank Transfer Payment
+ description: Representment Bank Transfer Payment
+ value: &ref_513
+ paymentMethod:
+ type: ach
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '49100130'
+ routingNumber: '292735277'
+ secCode: TEL
+ responses:
+ '200':
+ description: Successful request. We processed the payment.
+ content:
+ application/json:
+ schema:
+ required: *ref_170
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_171
+ examples:
+ bankTransferPayment:
+ summary: Store Token Bank Transfer Payment
+ description: Bank Transfer Payment with ACH payload and token storage
+ value: *ref_172
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-refunds:
+ post:
+ tags:
+ - Bank transfer refunds
+ summary: Create refund
+ operationId: bankTransferUnreferencedRefund
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ description: |
+ Send a refund to a customer's bank account. The refund transaction is not linked to the previous transaction.
+ *Note**: This function is available to only certain merchant accounts.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_415
+ - order
+ - processingTerminalId
+ - refundMethod
+ type: object
+ properties: &ref_416
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ order:
+ description: Object that contains information about the order.
+ required: &ref_173
+ - amount
+ - currency
+ - description
+ - orderId
+ type: object
+ allOf: &ref_174
+ - required: *ref_124
+ type: object
+ description: Object that contains details about the transaction.
+ properties: *ref_125
+ - type: object
+ description: Object that contains information about the transaction.
+ properties:
+ orderId:
+ maxLength: 24
+ minLength: 1
+ type: string
+ description: Unique identifier that the merchant assigned to the transaction.
+ dateTime:
+ type: string
+ format: date-time
+ readOnly: true
+ description: Date and time that we processed the transaction. We return this value in the ISO 8601 format.
+ description:
+ maxLength: 256
+ minLength: 0
+ type: string
+ description: Description of the transaction.
+ amount:
+ type: integer
+ format: int64
+ description: Total amount of the transaction. The value is in the currency's lowest denomination, for example, cents.
+ currency:
+ type: string
+ description: Currency code for the transaction. This code follows the ISO 4217 standard.
+ enum:
+ - AED
+ - AFN
+ - ALL
+ - AMD
+ - ANG
+ - AOA
+ - ARS
+ - AUD
+ - AWG
+ - AZN
+ - BAM
+ - BBD
+ - BDT
+ - BGN
+ - BHD
+ - BIF
+ - BMD
+ - BND
+ - BOB
+ - BOV
+ - BRL
+ - BSD
+ - BTN
+ - BWP
+ - BYR
+ - BZD
+ - CAD
+ - CDF
+ - CHE
+ - CHF
+ - CHW
+ - CLF
+ - CLP
+ - CNY
+ - COP
+ - COU
+ - CRC
+ - CUC
+ - CUP
+ - CVE
+ - CZK
+ - DJF
+ - DKK
+ - DOP
+ - DZD
+ - EGP
+ - ERN
+ - ETB
+ - EUR
+ - FJD
+ - FKP
+ - GBP
+ - GEL
+ - GHS
+ - GIP
+ - GMD
+ - GNF
+ - GTQ
+ - GYD
+ - HKD
+ - HNL
+ - HRK
+ - HTG
+ - HUF
+ - IDR
+ - ILS
+ - INR
+ - IQD
+ - IRR
+ - ISK
+ - JMD
+ - JOD
+ - JPY
+ - KES
+ - KGS
+ - KHR
+ - KMF
+ - KPW
+ - KRW
+ - KWD
+ - KYD
+ - KZT
+ - LAK
+ - LBP
+ - LKR
+ - LRD
+ - LSL
+ - LTL
+ - LVL
+ - LYD
+ - MAD
+ - MDL
+ - MGA
+ - MKD
+ - MMK
+ - MNT
+ - MOP
+ - MRO
+ - MRU
+ - MUR
+ - MVR
+ - MWK
+ - MXN
+ - MXV
+ - MYR
+ - MZN
+ - NAD
+ - NGN
+ - NIO
+ - NOK
+ - NPR
+ - NZD
+ - OMR
+ - PAB
+ - PEN
+ - PGK
+ - PHP
+ - PKR
+ - PLN
+ - PYG
+ - QAR
+ - RON
+ - RSD
+ - RUB
+ - RWF
+ - SAR
+ - SBD
+ - SCR
+ - SDG
+ - SEK
+ - SGD
+ - SHP
+ - SLL
+ - SOS
+ - SRD
+ - SSP
+ - STD
+ - STN
+ - SVC
+ - SYP
+ - SZL
+ - THB
+ - TJS
+ - TMT
+ - TND
+ - TOP
+ - TRY
+ - TTD
+ - TWD
+ - TZS
+ - UAH
+ - UGX
+ - USD
+ - USN
+ - USS
+ - UYI
+ - UYU
+ - UZS
+ - VEF
+ - VES
+ - VND
+ - VUV
+ - WST
+ - XAF
+ - XCD
+ - XOF
+ - XPF
+ - YER
+ - ZAR
+ - ZMW
+ - ZWL
+ refundMethod:
+ description: Object that contains information about how the merchant refunds the customer.
+ type: object
+ oneOf:
+ - required: *ref_161
+ type: object
+ writeOnly: true
+ title: ACH
+ description: Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
+ properties: *ref_162
+ - required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ examples:
+ bankTransferUnreferencedRefundRequest:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: &ref_515
+ processingTerminalId: '1017'
+ order:
+ orderId: 314
+ description: refund example
+ amount: 1000
+ currency: USD
+ customer:
+ notificationLanguage: en
+ contactMethods:
+ - type: email
+ value: joe@blogssoftware.com
+ refundMethod:
+ type: ach
+ secCode: web
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '32183159'
+ routingNumber: '063100277'
+ required: true
+ responses:
+ '201':
+ description: Successful request. We sent the refund to the customer's bank account.
+ content:
+ application/json:
+ schema:
+ required: &ref_181
+ - bankAccount
+ - order
+ - processingTerminalId
+ - refundId
+ - transactionResult
+ type: object
+ properties: &ref_182
+ refundId:
+ maxLength: 10
+ minLength: 10
+ type: string
+ description: Unique identifier that our gateway assigned to the refund.
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ order:
+ description: Object that contains information about the order.
+ required: *ref_173
+ type: object
+ allOf: *ref_174
+ customer:
+ type: object
+ properties: *ref_167
+ description: Object that contains information about the customer.
+ bankAccount:
+ description: Object that contains information about the bank account.
+ type: object
+ oneOf:
+ - required: *ref_175
+ type: object
+ title: ACH account
+ description: Object that contains the customer's account details.
+ properties: *ref_176
+ - required: *ref_177
+ type: object
+ title: PAD account
+ description: Object that contains the customer's account details.
+ properties: *ref_178
+ payment:
+ required: *ref_139
+ type: object
+ description: Object that contains information about a payment.
+ properties: *ref_140
+ transactionResult:
+ required: *ref_179
+ type: object
+ readOnly: true
+ properties: *ref_180
+ description: Object that contains information about the transaction.
+ examples:
+ bankTransferUnreferencedRefundResponse:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: &ref_183
+ refundId: JH58KQ5K5E
+ processingTerminalId: '1017'
+ order:
+ orderId: '314'
+ dateTime: '2023-05-17T09:24:11.693-04:00'
+ description: refund example
+ amount: 50000
+ currency: USD
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: ach
+ secCode: web
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '****3159'
+ routingNumber: '*****0277'
+ transactionResult:
+ type: unreferencedRefund
+ status: ready
+ authorizedAmount: -50000
+ currency: USD
+ responseCode: A
+ responseMessage: NoError
+ processorResponseCode: '0'
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Bank transfer refunds
+ summary: List refunds
+ description: Return a list of refund transactions.
+ operationId: listBankTransferRefunds
+ parameters:
+ - name: processingTerminalId
+ in: query
+ required: true
+ description: Filter by the unique identifier that our gateway assigned to the terminal.
+ schema:
+ maxLength: 50
+ minLength: 4
+ type: string
+ - name: orderId
+ in: query
+ description: Filter by the order ID.
+ schema:
+ maxLength: 24
+ minLength: 1
+ type: string
+ - name: nameOnAccount
+ in: query
+ description: Filter by the account holder's name.
+ schema:
+ maxLength: 50
+ minLength: 1
+ type: string
+ - name: last4
+ in: query
+ description: Filter by the last four digits of the account number.
+ schema:
+ pattern: '[0-9]{4}'
+ type: string
+ - name: type
+ description: Filter refunds by transaction type.
+ in: query
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - refund
+ - unreferencedRefund
+ - name: status
+ in: query
+ description: Filter by the status of the refund.
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - ready
+ - pending
+ - declined
+ - complete
+ - admin
+ - reversal
+ - returned
+ - name: dateFrom
+ in: query
+ description: Filter by refunds that the merchant ran after a specific date. The date format follows the ISO-8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: dateTo
+ in: query
+ description: Filter by the refunds that the merchant ran before a specific date. The date format follows the ISO-8601 standard.
+ schema:
+ type: string
+ format: date-time
+ - name: settlementState
+ in: query
+ description: Filter by the settlement status of the refund.
+ schema:
+ type: string
+ enum:
+ - settled
+ - unsettled
+ - name: settlementDate
+ in: query
+ description: Filter by refund transactions settled on a specific date. The date format is **YYYY-MM-DD**.
+ schema:
+ type: string
+ format: date
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of refund transactions.
+ content:
+ application/json:
+ schema:
+ required: &ref_413
+ - count
+ - data
+ - hasMore
+ - limit
+ type: object
+ allOf: &ref_414
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of refund transactions.
+ items:
+ required: *ref_181
+ type: object
+ properties: *ref_182
+ examples:
+ paginatedResults:
+ summary: Paginated Bank Transfer Unreferenced Refund
+ description: Paginated Bank Transfer Unreferenced Refund
+ value: &ref_514
+ limit: 2
+ count: 2
+ hasMore: true
+ data:
+ - refundId: DYDJ5KHRT4
+ processingTerminalId: '1017'
+ order:
+ orderId: '304'
+ dateTime: '2023-05-17T09:23:41-04:00'
+ description: refund example
+ amount: 100000
+ currency: USD
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@joesoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: ach
+ secCode: web
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '****3159'
+ routingNumber: '*****0277'
+ transactionResult:
+ type: unreferencedRefund
+ status: ready
+ authorizedAmount: -100000
+ currency: USD
+ responseCode: A
+ responseMessage: NoError
+ processorResponseCode: '0'
+ - refundId: B6ZOFZNVOP
+ processingTerminalId: '1017'
+ order:
+ orderId: '355'
+ dateTime: '2023-05-17T09:21:30-04:00'
+ description: refund example
+ amount: 12000
+ currency: USD
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: ach
+ secCode: web
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '****3159'
+ routingNumber: '*****0277'
+ transactionResult:
+ type: unreferencedRefund
+ status: ready
+ authorizedAmount: -12000
+ currency: USD
+ responseCode: A
+ responseMessage: NoError
+ processorResponseCode: '0'
+ links:
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/bank-transfer-refunds?limit=2&processingTerminalId=1017&after=B6ZOFZNVOP
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/bank-transfer-refunds?processingTerminalId=1017&limit=2&before=DYDJ5KHRT4
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-refunds/{refundId}:
+ get:
+ tags:
+ - Bank transfer refunds
+ summary: Retrieve refund
+ operationId: getBankTransferRefund
+ description: Return a specific refund transaction.
+ parameters:
+ - name: refundId
+ description: Unique identifier that our gateway assigned to the refund.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. Returns the specific refund.
+ content:
+ application/json:
+ schema:
+ required: *ref_181
+ type: object
+ properties: *ref_182
+ examples:
+ bankTransferUnreferencedRefund:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: *ref_183
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-transfer-refunds/{refundId}/reverse:
+ post:
+ tags:
+ - Bank transfer refunds
+ summary: Reverse refund
+ operationId: reverseBankTransferRefund
+ description: Void a refund transaction.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ - name: refundId
+ description: Unique identifier that our gateway assigned to the refund.
+ in: path
+ required: true
+ schema:
+ maxLength: 10
+ minLength: 10
+ type: string
+ responses:
+ '200':
+ description: Successful request. We reversed the refund transaction.
+ content:
+ application/json:
+ schema:
+ required: *ref_181
+ type: object
+ properties: *ref_182
+ examples:
+ bankTransferUnreferencedRefund:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: &ref_516
+ refundId: B5FK0CBP2D
+ processingTerminalId: '1017'
+ order:
+ orderId: '622'
+ dateTime: '2023-05-17T09:54:51-04:00'
+ description: refund example
+ amount: 1000
+ currency: USD
+ customer:
+ contactMethods:
+ - type: email
+ value: joe@bloggssoftware.com
+ notificationLanguage: en
+ bankAccount:
+ type: ach
+ secCode: web
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '****3159'
+ routingNumber: '*****0277'
+ transactionResult:
+ type: unreferencedRefund
+ status: reversal
+ authorizedAmount: -1000
+ currency: USD
+ responseCode: A
+ responseMessage: NoError
+ processorResponseCode: '0'
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /bank-accounts/verify:
+ post:
+ tags:
+ - Bank accounts
+ summary: Verify a bank account
+ operationId: verifyBankAccount
+ description: Verify the customer's bank account details.
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: &ref_417
+ - processingTerminalId
+ - bankAccount
+ type: object
+ properties: &ref_418
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ bankAccount:
+ description: Object that contains information about the bank account.
+ type: object
+ oneOf:
+ - required: *ref_161
+ type: object
+ writeOnly: true
+ title: ACH
+ description: Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
+ properties: *ref_162
+ - required: *ref_163
+ type: object
+ writeOnly: true
+ title: PAD
+ description: Object that contains information about the payment details for the customer’s preauthorized electronic debit (PAD) transactions.
+ properties: *ref_164
+ examples:
+ bankAccountVerificationRequestPad:
+ summary: PAD Bank Account Verification Request
+ description: Bank Account Verification Request for PAD
+ value: &ref_517
+ processingTerminalId: '1017'
+ bankAccount:
+ type: pad
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '12345678909'
+ routingNumber: '123456789'
+ transitNumber: '12345'
+ institutionNumber: '123'
+ bankAccountVerificationRequestAch:
+ summary: ACH Bank Account Verification Request
+ description: Bank Account Verification Request for ACH
+ value: &ref_518
+ processingTerminalId: '1017'
+ bankAccount:
+ type: ach
+ accountType: checking
+ nameOnAccount: Joe Bloggs
+ accountNumber: '32183159'
+ routingNumber: '063100277'
+ secCode: web
+ required: true
+ responses:
+ '200':
+ description: Successful request. Returns the verification status of the customer's bank account details.
+ content:
+ application/json:
+ schema:
+ required: &ref_419
+ - processingTerminalId
+ - verified
+ type: object
+ properties: &ref_420
+ processingTerminalId:
+ maxLength: 50
+ minLength: 4
+ type: string
+ description: Unique identifier that our gateway assigned to the terminal.
+ verified:
+ type: boolean
+ description: |
+ Indicates if the customer's bank account details are valid.
+ - `true` - Account details are valid.
+ - `false` - Account details are not valid.
+ examples:
+ bankAccountVerificationResponse:
+ summary: Bank Account Verification Response
+ description: Bank Account Verification Response
+ value: &ref_519
+ processingTerminalId: '1017'
+ verified: true
+ '400':
+ description: Validation error
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /merchant-platforms:
+ summary: Provide capabilities to manage a merchant platform.
+ post:
+ tags:
+ - Merchant platforms
+ summary: Create merchant platform
+ description: |
+ Use this method to create the entity that represents a business, including its legal information and all its processing accounts.
+
+ > **Note**: To add a processing account to an existing merchant platform, go to [Create a processing account](#createProcessingAccount).
+
+ The response contains some fields that we require for other methods:
+ - **merchantPlatformId** - Unique identifier that we assign to the merchant platform. Use the merchantPlatformId to retrieve and update information about the merchant platform.
+
+ - **processingAccountId**- Unique identifier that we assign to each processing account. Use the processingAccountId to retrieve and update information about the processing account.
+
+ For more information about how to create a merchant platform, go to [Create a merchant platform.](/guides/integrate/boarding/merchant-platform)
+ operationId: createMerchant
+ parameters:
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ title: create merchant platform
+ required: &ref_434
+ - business
+ - processingAccounts
+ properties: &ref_435
+ business:
+ type: object
+ description: Object that contains information about the business.
+ title: business
+ required: &ref_188
+ - name
+ - taxId
+ - contactMethods
+ - addresses
+ - organizationType
+ properties: &ref_189
+ name:
+ type: string
+ description: Legal name of the business.
+ maxLength: 100
+ example: Example Corp
+ taxId:
+ type: string
+ description: Tax ID of the business.
+ maxLength: 20
+ example: 12-3456789
+ organizationType:
+ type: string
+ description: Type of organization.
+ enum:
+ - privateCorporation
+ - publicCorporation
+ - nonProfit
+ - privateLlc
+ - publicLlc
+ - privatePartnership
+ - publicPartnership
+ - soleProprietor
+ example: privateCorporation
+ countryOfOperation:
+ type: string
+ description: Two-digit country code for the country that the business operates in. The format follows the ISO-3166 standard.
+ enum:
+ - US
+ example: US
+ addresses:
+ type: array
+ minItems: 1
+ uniqueItems: true
+ description: Array of address objects.
+ items:
+ oneOf:
+ - title: Legal address
+ required: &ref_421
+ - type
+ - city
+ - country
+ - address1
+ - postalCode
+ - state
+ allOf: &ref_422
+ - type: object
+ properties:
+ type:
+ type: string
+ description: Type of address
+ enum:
+ - legalAddress
+ default: legalAddress
+ - required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ contactMethods:
+ type: array
+ minItems: 1
+ uniqueItems: true
+ description: An array of contactMethod objects. Email should always be provided.
+ items:
+ oneOf: *ref_2
+ processingAccounts:
+ description: Array of processingAccounts objects.
+ type: array
+ minItems: 1
+ items:
+ required: &ref_197
+ - doingBusinessAs
+ - owners
+ - businessType
+ - merchandiseOrServiceSold
+ - businessStartDate
+ - timezone
+ - address
+ - contactMethods
+ - processing
+ - funding
+ - pricing
+ - signature
+ - categoryCode
+ type: object
+ properties: &ref_198
+ processingAccountId:
+ type: integer
+ description: Unique identifier of the processing account.
+ readOnly: true
+ example: 38765
+ doingBusinessAs:
+ type: string
+ description: Trading name of the business.
+ maxLength: 100
+ example: Pizza Doe
+ owners:
+ description: |
+ Collection of individuals that are responsible for a processing account. When you create a processing account, you must indicate at least one owner as either of the following:
+ - Control prong - An individual who has a significant equity stake in the business and can make decisions for the processing account. You can add only one control prong to a processing account.
+ - Authorized signatory - An individual who doesn't have an equity stake in the business but can make decisions for the processing account.
+ minItems: 1
+ type: array
+ items:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ website:
+ type: string
+ description: Website address of the business.
+ maxLength: 128
+ example: www.example.com
+ businessType:
+ type: string
+ description: Type of business.
+ enum:
+ - retail
+ - restaurant
+ - internet
+ - moto
+ - lodging
+ - notForProfit
+ example: restaurant
+ categoryCode:
+ type: integer
+ format: int32
+ description: Category code for the type of business.
+ maxLength: 4
+ example: 5999
+ merchandiseOrServiceSold:
+ type: string
+ description: Description of the services or merchandise sold by the business.
+ maxLength: 125
+ example: Pizza
+ businessStartDate:
+ type: string
+ format: date
+ description: Date that the business was established. The format of the value is **YYYY-MM-DD**.
+ example: '2020-01-01'
+ timezone:
+ type: string
+ description: Time zone of the processing account.
+ enum:
+ - Pacific/Midway
+ - Pacific/Honolulu
+ - America/Anchorage
+ - America/Los_Angeles
+ - America/Denver
+ - America/Phoenix
+ - America/Chicago
+ - America/Indiana/Indianapolis
+ - America/New_York
+ example: America/Chicago
+ address:
+ type: object
+ oneOf:
+ - required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ contactMethods:
+ type: array
+ minItems: 1
+ description: Array of contactMethod objects. One contact method must be an email address.
+ items:
+ oneOf: *ref_2
+ processing:
+ type: object
+ title: processing
+ required: &ref_193
+ - transactionAmounts
+ - monthlyAmounts
+ - volumeBreakdown
+ properties: &ref_194
+ merchantId:
+ type: string
+ description: Unique identifier that the acquiring platform assigns to the merchant.
+ maxLength: 15
+ example: '444412365478965'
+ readOnly: true
+ transactionAmounts:
+ description: Object that contains information about transaction amounts for the processing account.
+ type: object
+ required:
+ - average
+ - highest
+ properties:
+ average:
+ type: integer
+ format: int32
+ description: Estimated average transaction amount. The value is in the currency's lowest denomination, for example, cents. You must provide an amount that is greater than zero.
+ example: 5000
+ highest:
+ type: integer
+ format: int32
+ description: Estimated maximum transaction amount. The value is in the currency's lowest denomination, for example, cents. You must provide an amount that is greater than zero.
+ example: 10000
+ monthlyAmounts:
+ description: Object that contains information about the monthly processing amounts for the processing account.
+ type: object
+ required:
+ - average
+ - highest
+ properties:
+ average:
+ type: integer
+ format: int32
+ description: Estimated average transaction amount each month. The value is in the currency's lowest denomination, for example, cents. You must provide an amount that is greater than zero.
+ example: 50000
+ highest:
+ type: integer
+ format: int32
+ description: Estimated maximum transaction amount each month. The value is in the currency's lowest denomination, for example, cents. You must provide an amount that is greater than zero.
+ example: 100000
+ volumeBreakdown:
+ type: object
+ description: Object that contains information about the types of transactions ran by the processing account. The percentages for transaction types must total 100%.
+ required:
+ - cardPresentKeyed
+ - cardPresentSwiped
+ - mailOrTelephone
+ - ecommerce
+ properties:
+ cardPresentKeyed:
+ description: Estimated percentage of keyed card-present transactions.
+ type: integer
+ format: int32
+ example: 47
+ cardPresentSwiped:
+ description: Estimated percentage of swiped card-present transactions.
+ type: integer
+ format: int32
+ example: 30
+ mailOrTelephone:
+ description: Estimated percentage of mail order or telephone transactions.
+ type: integer
+ format: int32
+ example: 3
+ ecommerce:
+ description: Esimated percentage of e-Commerce transactions.
+ type: integer
+ format: int32
+ example: 20
+ isSeasonal:
+ type: boolean
+ description: Indicates if the processing account runs transactions on a seasonal basis. For example, if the processing account runs transactions during only the winter months, send a value of `true`.
+ example: false
+ monthsOfOperation:
+ type: array
+ description: Months of the year that the processing account runs transactions.
+ maxItems: 12
+ items:
+ type: string
+ enum:
+ - jan
+ - feb
+ - mar
+ - apr
+ - may
+ - jun
+ - jul
+ - aug
+ - sep
+ - oct
+ - nov
+ - dec
+ example:
+ - jan
+ - feb
+ ach:
+ type: object
+ required:
+ - refunds
+ - estimatedMonthlyTransactions
+ - limits
+ properties:
+ naics:
+ type: string
+ description: North American Industry Classification System (NAICS) code.
+ maxLength: 6
+ example: 44-45
+ previouslyTerminatedForAch:
+ type: boolean
+ default: false
+ description: Indicates if the business or its principals were previously turned down for ACH processing.
+ example: false
+ refunds:
+ type: object
+ required:
+ - writtenRefundPolicy
+ properties:
+ writtenRefundPolicy:
+ type: boolean
+ description: Indicates if the business has a written refund policy.
+ default: false
+ example: true
+ refundPolicyUrl:
+ type: string
+ description: URL of the written refund policy.
+ maxLength: 2000
+ example: www.example.com/refund-poilcy-url
+ estimatedMonthlyTransactions:
+ type: integer
+ description: Estimated maximum number of transactions that the merchant will process in a month.
+ example: 3000
+ limits:
+ type: object
+ required:
+ - singleTransaction
+ - dailyDeposit
+ - monthlyDeposit
+ properties:
+ singleTransaction:
+ type: integer
+ description: Maximum amount allowed for a single debit or credit transaction. The value is in the currency's lowest denomination, for example, cents.
+ example: 10000
+ dailyDeposit:
+ type: integer
+ description: Maximum amount of total transactions allowed per day. The value is in the currency's lowest denomination, for example, cents.
+ example: 200000
+ monthlyDeposit:
+ type: integer
+ description: Maximum amount of total transactions allowed per month. The value is in the currency's lowest denomination, for example, cents.
+ example: 6000000
+ transactionTypes:
+ type: array
+ description: List of supported transaction types.
+ uniqueItems: true
+ items:
+ type: string
+ enum:
+ - prearrangedPayment
+ - corpCashDisbursement
+ - telephoneInitiatedPayment
+ - webInitiatedPayment
+ - other
+ example:
+ - prearrangedPayment
+ - other
+ transactionTypesOther:
+ type: string
+ description: If you send a value of `other` for transactionTypes, provide a list of the supported transaction types.
+ maxLength: 100
+ example: anotherTransactionType
+ cardAcceptance:
+ type: object
+ description: Information around the type of cards that will be accepted.
+ properties:
+ debitOnly:
+ type: boolean
+ default: false
+ description: Indicates if the merchant accepts only debit cards.
+ example: false
+ cardsAccepted:
+ type: array
+ description: List of card types the merchant accepts.
+ uniqueItems: true
+ default:
+ - visa
+ - mastercard
+ - discover
+ - amexOptBlue
+ items:
+ type: string
+ enum:
+ - visa
+ - mastercard
+ - discover
+ - amexOptBlue
+ example:
+ - visa
+ - mastercard
+ specialityCards:
+ type: object
+ description: Information about the speciality cards that the merchant accepts.
+ properties:
+ americanExpressDirect:
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ default: false
+ description: Indicates if the merchant accepts American Express Direct.
+ example: true
+ merchantNumber:
+ type: string
+ description: If the merchant accepts American Express Direct, provide their American Express merchant number.
+ maxLength: 100
+ example: abc1234567
+ electronicBenefitsTransfer:
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ default: false
+ description: Indicates if the merchant accepts EBT.
+ example: true
+ fnsNumber:
+ type: string
+ description: If the merchant accepts EBT, provide their FNS number.
+ maxLength: 7
+ example: abc1234
+ other:
+ type: object
+ properties:
+ wexMerchantNumber:
+ type: string
+ description: If the merchant accepts WEX, provide their WEX merchant number.
+ maxLength: 50
+ example: abc1234567
+ voyagerMerchantId:
+ type: string
+ description: If the merchant accepts Voyager, provide their Voyager merchant ID.
+ maxLength: 50
+ example: abc1234567
+ fleetMerchantId:
+ type: string
+ description: If the merchant accepts Fleet, provide their Fleet merchant ID.
+ maxLength: 50
+ example: abc1234567
+ funding:
+ type: object
+ allOf: &ref_428
+ - type: object
+ description: Object that contains information about the funding schedule of the processing account.
+ properties: &ref_195
+ status:
+ type: string
+ readOnly: true
+ description: Indicates if the processing account can receive funds.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ fundingSchedule:
+ type: string
+ description: |
+ Indicates when funds are sent to the funding account.
+ **Note:** If you send a value of `sameday`, funding includes all transactions the merchant ran before the ACH cut-off time.
+ enum:
+ - standard
+ - nextday
+ - sameday
+ example: nextday
+ default: standard
+ acceleratedFundingFee:
+ type: integer
+ description: Monthly fee in cents for accelerated funding. We apply this fee if the value for fundingSchedule is `sameday` or `nextday`.
+ example: 1999
+ default: 0
+ dailyDiscount:
+ type: boolean
+ description: Indicator if fees should be taken on a daily basis.
+ example: false
+ - type: object
+ properties:
+ fundingAccounts:
+ description: Array of fundingAccounts objects.
+ minItems: 1
+ maxItems: 2
+ writeOnly: true
+ type: array
+ items:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ pricing:
+ type: object
+ description: Object that contains pricing information.
+ oneOf: &ref_432
+ - type: object
+ title: Pricing intent
+ required: &ref_429
+ - type
+ - pricingIntentId
+ properties: &ref_430
+ type:
+ type: string
+ enum:
+ - intent
+ example: intent
+ pricingIntentId:
+ type: integer
+ description: Unique identifier of the pricing intent.
+ example: 6123
+ - type: object
+ title: Pricing agreement
+ allOf: &ref_431
+ - type: object
+ properties:
+ type:
+ type: string
+ enum:
+ - agreement
+ example: agreement
+ required:
+ - type
+ - type: object
+ title: US pricing agreement version 4.0
+ description: Object that contains information about U.S. pricing intents for Merchant Processing Agreement (MPA) 4.0.
+ required: *ref_184
+ properties: *ref_185
+ discriminator: &ref_433
+ propertyName: type
+ mapping:
+ intent: '#/components/schemas/pricingTemplate'
+ agreement: '#/components/schemas/pricingAgreement'
+ signature:
+ type: string
+ description: |
+ Method used to capture the owner's signature.
+
+ **Note:** If you request the owner’s signature by email and they don’t respond, use our Reminders endpoint to create a reminder and to send another email.
+ enum:
+ - requestedViaEmail
+ - requestedViaDirectLink
+ example: requestedViaEmail
+ contacts:
+ type: array
+ description: Array of contact objects.
+ items:
+ type: object
+ title: contact
+ required: &ref_206
+ - type
+ - firstName
+ - lastName
+ - identifiers
+ - contactMethods
+ properties: &ref_207
+ contactId:
+ type: integer
+ description: Unique identifier of the contact.
+ readOnly: true
+ example: 1543
+ type:
+ type: string
+ description: Type of contact.
+ enum:
+ - manager
+ - representative
+ - others
+ example: manager
+ firstName:
+ type: string
+ description: Contact's first name.
+ example: Jane
+ maxLength: 50
+ middleName:
+ type: string
+ description: Contact's middle name.
+ example: Helen
+ maxLength: 50
+ lastName:
+ type: string
+ description: Contact's last name.
+ example: Doe
+ maxLength: 50
+ identifiers:
+ minItems: 1
+ type: array
+ description: Array of identifier objects.
+ example:
+ - type: nationalId
+ value: 000-00-4320
+ items:
+ required: *ref_186
+ type: object
+ title: identifier
+ properties: *ref_187
+ contactMethods:
+ type: array
+ minItems: 1
+ maxItems: 4
+ uniqueItems: true
+ description: |
+ Array of contactMethod objects.
+ **Note**: If you are adding information about an owner, you must provide at least an email address. If you are adding information about a contact, you must provide at least a contact number.
+ items:
+ oneOf: *ref_2
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: Object that you can send to include custom data in the request.
+ example:
+ customerId: '2345'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: Object that you can send to include custom data in the request.
+ example:
+ customerId: '2345'
+ examples:
+ createMerchantPlatform:
+ summary: Create merchant platform
+ description: Create a merchant platform.
+ value: &ref_521
+ business:
+ name: Example Corp
+ taxId: 12-3456789
+ organizationType: privateCorporation
+ countryOfOperation: US
+ addresses:
+ - type: legalAddress
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processingAccounts:
+ - doingBusinessAs: Pizza Doe
+ owners:
+ - firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ dateOfBirth: '1964-03-22'
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ identifiers:
+ - type: nationalId
+ value: 000-00-4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ relationship:
+ equityPercentage: 35.4
+ title: CFO
+ isControlProng: true
+ isAuthorizedSignatory: false
+ website: www.example.com
+ businessType: restaurant
+ categoryCode: 5999
+ merchandiseOrServiceSold: Pizza
+ businessStartDate: '2020-01-01'
+ timezone: America/Chicago
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processing:
+ transactionAmounts:
+ average: 5000
+ highest: 10000
+ monthlyAmounts:
+ average: 50000
+ highest: 100000
+ volumeBreakdown:
+ cardPresentKeyed: 47
+ cardPresentSwiped: 30
+ mailOrTelephone: 3
+ ecommerce: 20
+ isSeasonal: true
+ monthsOfOperation:
+ - jan
+ - feb
+ ach:
+ naics: 44-45
+ previouslyTerminatedForAch: false
+ refunds:
+ writtenRefundPolicy: true
+ refundPolicyUrl: www.example.com/refund-poilcy-url
+ estimatedMonthlyTransactions: 3000
+ limits:
+ singleTransaction: 10000
+ dailyDeposit: 200000
+ monthlyDeposit: 6000000
+ transactionTypes:
+ - prearrangedPayment
+ - other
+ transactionTypesOther: anotherTransactionType
+ cardAcceptance:
+ debitOnly: false
+ cardsAccepted:
+ - visa
+ - mastercard
+ specialityCards:
+ americanExpressDirect:
+ enabled: true
+ merchantNumber: abc1234567
+ electronicBenefitsTransfer:
+ enabled: true
+ fnsNumber: abc1234
+ other:
+ wexMerchantNumber: abc1234567
+ voyagerMerchantId: abc1234567
+ fleetMerchantId: abc1234567
+ funding:
+ fundingSchedule: nextday
+ acceleratedFundingFee: 1999
+ dailyDiscount: false
+ fundingAccounts:
+ - type: checking
+ use: creditAndDebit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '123456789'
+ accountNumber: '1234567890'
+ metadata:
+ internalRef: '2345'
+ pricing:
+ type: intent
+ pricingIntentId: 6123
+ signature: requestedViaDirectLink
+ contacts:
+ - type: manager
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ identifiers:
+ - type: nationalId
+ value: 000-00-4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ metadata:
+ customerId: '2345'
+ metadata:
+ customerId: '2345'
+ responses:
+ '201':
+ description: Successful request. We created the merchant platform.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: merchant
+ required: &ref_190
+ - business
+ - processingAccounts
+ properties: &ref_191
+ merchantPlatformId:
+ type: string
+ readOnly: true
+ description: Unique identifier of the merchant platform.
+ example: '12345'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ description: Date that the merchant platform was created.
+ lastModifiedDate:
+ type: string
+ format: date-time
+ example: '2020-09-08T12:00:00.000Z'
+ readOnly: true
+ description: Date that the merchant platform was last modified.
+ business:
+ type: object
+ description: Object that contains information about the business.
+ title: business
+ required: *ref_188
+ properties: *ref_189
+ processingAccounts:
+ readOnly: true
+ description: Array of processingAccount objects
+ required:
+ - doingBusinessAs
+ - status
+ type: array
+ items:
+ type: object
+ title: processingAccount
+ properties:
+ processingAccountId:
+ type: string
+ description: Unique identifier of the processing account.
+ example: '38765'
+ doingBusinessAs:
+ type: string
+ description: Trading name of the business.
+ example: Pizza Doe
+ status:
+ type: string
+ description: |
+ Status of the processing account.
+ - `entered` - We have received information about the account, but we have not yet reviewed it.
+ - `pending` - We have reviewed the information about the account, but we have not yet approved it.
+ - `approved` - We have approved the account for processing transactions and funding.
+ - `subjectTo` - We have approved the account, but we are waiting on further information.
+ - `dormant` - Account is closed for a period.
+ - `nonProcessing` - We have approved the account, but the merchant has not yet run a transaction.
+ - `rejected` - We rejected the application for the processing account.
+ - `terminated` - Processing account is closed.
+ - `cancelled` - Merchant withdrew the application for the processing account.
+ - `failed` - An error occurred while we were setting up the processing account.
+ readOnly: true
+ enum:
+ - entered
+ - pending
+ - approved
+ - subjectTo
+ - dormant
+ - nonProcessing
+ - rejected
+ - terminated
+ - cancelled
+ - failed
+ example: entered
+ link:
+ type: object
+ description: Object that contains HATEOAS links for the processing account.
+ properties:
+ rel:
+ type: string
+ example: processingAccount
+ description: Relationship to the parent resource.
+ href:
+ type: string
+ example: https://api.payroc.com/v1/processing-accounts/38765
+ description: Link to the resource.
+ method:
+ type: string
+ example: get
+ description: HTTP method you can use to retrieve the resource.
+ signature:
+ type: object
+ description: Object containing the method we used to capture the owner's signature.
+ oneOf: &ref_196
+ - title: Signature by direct link
+ description: We return a link to the pricing agreement in the response.
+ type: object
+ required: &ref_423
+ - type
+ properties: &ref_424
+ type:
+ type: string
+ description: Method used to capture the owner's signature.
+ enum:
+ - requestedViaDirectLink
+ example: requestedViaDirectLink
+ link:
+ allOf:
+ - type: object
+ readOnly: true
+ description: Link to sign agreement
+ - type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ example:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000000
+ method: get
+ - title: Signature by email
+ description: Owner's signature by email.
+ type: object
+ required: &ref_425
+ - type
+ properties: &ref_426
+ type:
+ type: string
+ description: Method used to capture the owner's signature.
+ enum:
+ - requestedViaEmail
+ example: requestedViaEmail
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: Object that you can send to include custom metadata in the request.
+ example:
+ customerId: '2345'
+ links:
+ readOnly: true
+ type: array
+ description: Array of useful links related to your request
+ items:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ examples:
+ created:
+ summary: Created merchant platform
+ description: New merchant platform created
+ value: &ref_522
+ merchantPlatformId: '12345'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ business:
+ name: Example Corp
+ taxId: xxxxx6789
+ organizationType: privateCorporation
+ countryOfOperation: US
+ addresses:
+ - type: legalAddress
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processingAccounts:
+ - processingAccountId: '38765'
+ doingBusinessAs: Pizza Doe
+ status: pending
+ link:
+ rel: processingAccount
+ href: https://api.payroc.com/v1/processing-accounts/38765
+ method: get
+ signature:
+ type: requestedViaDirectLink
+ link:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000000
+ method: get
+ partialSuccess:
+ summary: Failed processing account
+ description: We successfully created the merchant platform, but failed to add one or more processing accounts.
+ value: &ref_523
+ merchantPlatformId: '12346'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ business:
+ name: Example Corp
+ taxId: xxxxx6789
+ organizationType: privateCorporation
+ countryOfOperation: US
+ addresses:
+ - type: legalAddress
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ - type: phone
+ value: 555 555 3456
+ processingAccounts:
+ - doingBusinessAs: Pizza Doe
+ status: failed
+ headers:
+ location:
+ description: URI reference to the resource.
+ style: simple
+ explode: false
+ schema:
+ type: string
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ fundingAccountsLimitReached:
+ summary: Funding accounts limit reached
+ description: Funding accounts restricted. You can not have any more than two funding accounts attached to this entity
+ value: &ref_201
+ type: https://docs.payroc.com/api/errors#funding-accounts-limit-reached
+ title: Funding accounts limit reached
+ status: 400
+ detail: You can not have any more than two funding accounts attached to this entity
+ tooManyControlProngs:
+ summary: Too many control prongs
+ description: Your request included more than one owner as the control prong. You can set only one owner as the control prong.
+ value: &ref_202
+ type: https://docs.payroc.com/api/errors#too-many-control-prongs
+ title: Too many control prongs
+ status: 400
+ detail: You can set only one owner as the control prong
+ noControlProng:
+ summary: No control prong or authorized signatory
+ description: Your request didn’t indicate which owner is the control prong or the authorized signatory. Set one owner as the control prong or the authorized signatory.
+ value: &ref_203
+ type: https://docs.payroc.com/api/errors#no-control-prong-or-authorized-signatory
+ title: No control prong or authorized signatory
+ status: 400
+ detail: Set one owner as the control prong or the authorized signatory
+ dailyDiscountAndRewardPayConflict:
+ summary: Cannot select Daily Discount and RewardPay or RewardPayChoice at the same time.
+ description: You can't select Daily Discount with a RewardPay or RewardPayChoice pricing plan. To select Daily Discount, choose a different pricing plan.
+ value: &ref_204
+ type: https://docs.payroc.com/api/errors#daily-discount-and-reward-pay-conflict
+ title: Cannot select Daily Discount and RewardPay or RewardPayChoice at the same time.
+ status: 400
+ detail: Choose a different pricing plan or don't select Daily Discount.
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ taxIdInUse:
+ summary: Tax ID in use
+ description: The tax ID supplied is already in use.
+ value: &ref_524
+ type: https://docs.payroc.com/api/errors#tax-id-in-use
+ title: Tax ID already in use
+ status: 409
+ detail: The tax ID that you supplied is already in use. Supply a unique tax ID
+ nationalIdInUse:
+ summary: National ID in use
+ description: One or more supplied national IDs are not unique. All national IDs must be unique.
+ value: &ref_525
+ type: https://docs.payroc.com/api/errors#national-id-in-use
+ title: National ID in use
+ status: 409
+ detail: One or more supplied national IDs are not unique. All national IDs must be unique
+ '500':
+ description: An error has occured
+ content: *ref_13
+ get:
+ tags:
+ - Merchant platforms
+ summary: List merchant platforms
+ description: Use this method to retrieve a [paginated](/api/pagination) list of the merchant platforms that are linked to the ISV's account.
+ operationId: listMerchantPlatforms
+ parameters:
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of merchant platforms associated with the ISV's account.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated merchant platforms
+ allOf: &ref_427
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of merchantPlatform objects.
+ items:
+ type: object
+ title: merchant
+ required: *ref_190
+ properties: *ref_191
+ examples:
+ listMerchantPlatforms:
+ summary: Paginated list of merchant platforms
+ description: Retrieve a list of merchant platforms associated with your account.
+ value: &ref_520
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/merchant-platforms?before=12345&limit=2
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/merchant-platforms?after=12346&limit=2
+ data:
+ - merchantPlatformId: '12345'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ business:
+ name: Example Corp
+ taxId: xxxxx6789
+ organizationType: privateCorporation
+ countryOfOperation: US
+ addresses:
+ - type: legalAddress
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: example-corp@example.com
+ - type: phone
+ value: 123 456 7890
+ processingAccounts:
+ - processingAccountId: '38765'
+ doingBusinessAs: Pizza Doe
+ status: pending
+ link:
+ rel: processingAccount
+ href: https://api.payroc.com/v1/processing-accounts/38765
+ method: get
+ signature:
+ type: requestedViaDirectLink
+ link:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000000
+ method: get
+ - merchantPlatformId: '12346'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ business:
+ name: Example Corp
+ taxId: xxxxx6789
+ organizationType: privateCorporation
+ countryOfOperation: US
+ addresses:
+ - type: legalAddress
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: example-corp@example.com
+ - type: phone
+ value: 123 456 7890
+ processingAccounts:
+ - processingAccountId: '38766'
+ doingBusinessAs: Doe Hot Dogs
+ status: pending
+ link:
+ rel: processingAccount
+ href: https://api.payroc.com/v1/processing-accounts/38766
+ method: get
+ signature:
+ type: requestedViaDirectLink
+ link:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000001
+ method: get
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /merchant-platforms/{merchantPlatformId}:
+ get:
+ tags:
+ - Merchant platforms
+ summary: Retrieve merchant platform
+ description: |
+ Use this method to retrieve information about a merchant platform, including its legal information and processing accounts.
+
+ Include the merchantPlatformId that we sent you when you created the merchant platform.
+ operationId: getMerchantAcccounts
+ parameters:
+ - name: merchantPlatformId
+ in: path
+ description: Unique identifier of the merchant platform.
+ required: true
+ style: simple
+ explode: false
+ schema: &ref_192
+ type: string
+ example: '12345'
+ responses:
+ '200':
+ description: Successful request. Returns the merchant platform.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: merchant
+ required: *ref_190
+ properties: *ref_191
+ examples:
+ retrievedMerchantPlatforms:
+ summary: Retrieve merchant platform
+ description: Retrieve a merchant platform.
+ value: &ref_526
+ merchantPlatformId: '12345'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ business:
+ name: Example Corp
+ taxId: xxxxx6789
+ organizationType: privateCorporation
+ countryOfOperation: US
+ addresses:
+ - type: legalAddress
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processingAccounts:
+ - processingAccountId: '38765'
+ doingBusinessAs: Pizza Doe
+ status: approved
+ link:
+ rel: processingAccount
+ href: https://api.payroc.com/v1/processing-accounts/38765
+ method: get
+ signature:
+ type: requestedViaDirectLink
+ link:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000000
+ method: get
+ metadata:
+ customerId: '2345'
+ links: []
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /merchant-platforms/{merchantPlatformId}/processing-accounts:
+ get:
+ tags:
+ - Merchant platforms
+ summary: List merchant platform's processing accounts
+ description: |
+ Use this method to retrieve a paginated list of processing accounts associated with a merchant platform.
+
+ When you created the merchant platform, we sent you its merchantPlatformId in the response. Send this merchantPlatformId as a path parameter in your endpoint.
+
+ > **Note**: By default, we return only open processing accounts. To include closed processing accounts, send a value of `true` for the includeClosed query parameter.
+ operationId: listMerchantLocations
+ parameters:
+ - name: merchantPlatformId
+ in: path
+ description: Unique identifier of the merchant platform.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_192
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ - in: query
+ name: includeClosed
+ description: Indicates if you want to return closed processing accounts. This includes processing accounts that have a status of `terminated`, `cancelled`, or `rejected`.
+ required: false
+ schema:
+ type: boolean
+ default: false
+ responses:
+ '200':
+ description: Successful request. Returns a list of processing accounts associated with the merchant platform.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated processing accounts
+ allOf: &ref_438
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of processingAccount objects.
+ items:
+ required: &ref_199
+ - doingBusinessAs
+ - owners
+ - businessType
+ - merchandiseOrServiceSold
+ - timezone
+ - address
+ - contactMethods
+ - processing
+ - funding
+ - pricing
+ - signature
+ - categoryCode
+ type: object
+ properties: &ref_200
+ processingAccountId:
+ type: string
+ readOnly: true
+ description: Unique identifier of the processing account.
+ example: '38765'
+ createdDate:
+ type: string
+ format: date-time
+ readOnly: true
+ description: Date that the processing account was created.
+ example: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate:
+ type: string
+ format: date-time
+ readOnly: true
+ description: Date that the processing account was last modified.
+ example: '2020-09-08T12:00:00.000Z'
+ status:
+ type: string
+ description: |
+ Status of the processing account.
+ - `entered` - We have received information about the account, but we have not yet reviewed it.
+ - `pending` - We have reviewed the information about the account, but we have not yet approved it.
+ - `approved` - We have approved the account for processing transactions and funding.
+ - `subjectTo` - We have approved the account, but we are waiting on further information.
+ - `dormant` - Account is closed for a period.
+ - `nonProcessing` - We have approved the account, but the merchant has not yet run a transaction.
+ - `rejected` - We rejected the application for the processing account.
+ - `terminated` - Processing account is closed.
+ - `cancelled` - Merchant withdrew the application for the processing account.
+ readOnly: true
+ enum:
+ - entered
+ - pending
+ - approved
+ - subjectTo
+ - dormant
+ - nonProcessing
+ - rejected
+ - terminated
+ - cancelled
+ example: entered
+ doingBusinessAs:
+ type: string
+ description: Trading name of the business.
+ maxLength: 100
+ example: Pizza Doe
+ owners:
+ readOnly: true
+ description: Object that contains information about the owners of the business.
+ type: array
+ items:
+ type: object
+ title: owner
+ properties:
+ ownerId:
+ type: integer
+ example: 4564
+ firstName:
+ type: string
+ example: Jane
+ lastName:
+ type: string
+ example: Doe
+ link:
+ type: object
+ properties:
+ rel:
+ type: string
+ description: The relationship to the parent resource.
+ example: owner
+ href:
+ type: string
+ description: The link to the resource.
+ example: https://api.payroc.com/v1/owners/1543
+ method:
+ type: string
+ description: HTTP method for retrieving the resource.
+ example: get
+ website:
+ type: string
+ description: Website address of the business.
+ maxLength: 128
+ example: www.example.com
+ businessType:
+ type: string
+ description: Type of business.
+ enum:
+ - retail
+ - restaurant
+ - internet
+ - moto
+ - lodging
+ - notForProfit
+ example: restaurant
+ categoryCode:
+ type: integer
+ format: int32
+ example: 5999
+ description: Category code for the type of business.
+ maxLength: 4
+ merchandiseOrServiceSold:
+ type: string
+ description: Description of the services or merchandise sold by the business.
+ maxLength: 125
+ example: Pizza
+ businessStartDate:
+ type: string
+ format: date
+ description: Date that the business was established. The format of the value is **YYYY-MM-DD**.
+ example: '2020-01-01'
+ timezone:
+ type: string
+ description: Time zone for the processing account.
+ enum:
+ - Pacific/Midway
+ - Pacific/Honolulu
+ - America/Anchorage
+ - America/Los_Angeles
+ - America/Denver
+ - America/Phoenix
+ - America/Chicago
+ - America/Indiana/Indianapolis
+ - America/New_York
+ example: America/Chicago
+ address:
+ type: object
+ oneOf:
+ - required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ contactMethods:
+ type: array
+ minItems: 1
+ description: Array of contactMethods objects for the processing account. Atleast one contactMethod must be an email address.
+ items:
+ oneOf: *ref_2
+ processing:
+ type: object
+ title: processing
+ required: *ref_193
+ properties: *ref_194
+ funding:
+ type: object
+ description: Object that contains funding information.
+ allOf: &ref_437
+ - type: object
+ description: Object that contains information about the funding schedule of the processing account.
+ properties: *ref_195
+ - type: object
+ properties:
+ fundingAccounts:
+ minItems: 1
+ maxItems: 2
+ readOnly: true
+ type: array
+ items:
+ type: object
+ title: funding account summary
+ properties: &ref_436
+ fundingAccountId:
+ type: integer
+ readOnly: true
+ example: 123
+ status:
+ type: string
+ readOnly: true
+ example: pending
+ enum:
+ - approved
+ - rejected
+ - pending
+ link:
+ readOnly: true
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ pricing:
+ type: object
+ description: Object that contains pricing information.
+ properties:
+ link:
+ type: object
+ description: HATEOAS link for pricing information.
+ properties:
+ rel:
+ type: string
+ example: pricing
+ description: Relationship to the parent resource.
+ href:
+ type: string
+ example: https://api.payroc.com/v1/processing-account/38765/pricing
+ description: Link to the resource.
+ method:
+ type: string
+ example: get
+ description: HTTP method you can use to retrieve the resource.
+ contacts:
+ readOnly: true
+ description: Array of contact objects.
+ type: array
+ items:
+ type: object
+ title: contact
+ properties:
+ contactId:
+ type: integer
+ description: Unique identifier of the contact.
+ example: 1543
+ firstName:
+ type: string
+ description: Contact's first name.
+ example: Jane
+ lastName:
+ type: string
+ description: Contact's last name.
+ example: Doe
+ link:
+ type: object
+ description: Object that contains HATEOAS links for the contact.
+ properties:
+ rel:
+ type: string
+ example: contact
+ description: Relationship to the parent resource.
+ href:
+ type: string
+ example: https://api.payroc.com/v1/contacts/1543
+ description: Link to the resource.
+ method:
+ type: string
+ example: get
+ description: HTTP method you can use to retrieve the resource.
+ signature:
+ type: object
+ description: Object containing the method we used to capture the owner's signature.
+ oneOf: *ref_196
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ description: Object that you can send to include custom data in the request.
+ example:
+ customerId: '2345'
+ links:
+ type: array
+ description: Array of useful links related to your request.
+ items:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ example: []
+ examples:
+ listProcessingAccounts:
+ summary: Paginated list of processing account
+ description: Retrieve processing accounts associated with a merchant platform.
+ value: &ref_527
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/merchant-platforms/12345/processing-accounts?before=38765&limit=2
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/merchant-platforms/12345/processing-accounts?after=38766&limit=2
+ data:
+ - processingAccountId: '38765'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ doingBusinessAs: Pizza Doe
+ owners:
+ - ownerId: 4564
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: owner
+ href: https://api.payroc.com/v1/owners/4564
+ method: get
+ website: www.example.com
+ businessType: restaurant
+ categoryCode: 5999
+ merchandiseOrServiceSold: Food
+ businessStartDate: '2020-01-01'
+ timezone: America/Chicago
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: example-corp@example.com
+ - type: phone
+ value: 123 456 7890
+ processing:
+ merchantId: '444412365478965'
+ transactionAmounts:
+ average: 1000
+ highest: 200000
+ monthlyAmounts:
+ average: 1000000
+ highest: 200000000
+ volumeBreakdown:
+ cardPresentKeyed: 47
+ cardPresentSwiped: 30
+ mailOrTelephone: 3
+ ecommerce: 20
+ isSeasonal: true
+ monthsOfOperation:
+ - jan
+ - feb
+ - mar
+ - nov
+ - dec
+ ach:
+ naics: '441222'
+ previouslyTerminatedForAch: false
+ refunds:
+ writtenRefundPolicy: true
+ refundPolicyUrl: http://www.example.com/refunds
+ estimatedMonthlyTransactions: 1000
+ limits:
+ singleTransaction: 10000000
+ dailyDeposit: 1000
+ monthlyDeposit: 2000
+ transactionTypes:
+ - telephoneInitiatedPayment
+ - webInitiatedPayment
+ cardAcceptance:
+ debitOnly: false
+ cardsAccepted:
+ - visa
+ - mastercard
+ specialityCards:
+ americanExpressDirect:
+ enabled: true
+ merchantNumber: '1234567890'
+ electronicBenefitsTransfer:
+ enabled: true
+ fnsNumber: '1234567'
+ other:
+ wexMerchantNumber: '1234567890'
+ voyagerMerchantId: '1234567890'
+ fleetMerchantId: '1234567890'
+ funding:
+ status: enabled
+ fundingSchedule: nextday
+ acceleratedFundingFee: 1999
+ fundingAccounts:
+ - fundingAccountId: 123
+ status: pending
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/123
+ pricing:
+ link:
+ rel: pricing
+ method: get
+ href: https://api.payroc.com/v1/processing-account/12345/pricing
+ signature:
+ type: requestedViaEmail
+ contacts:
+ - contactId: 1543
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: owner
+ href: https://api.payroc.com/v1/contacts/1543
+ method: get
+ - processingAccountId: '38766'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ doingBusinessAs: Doe Hot Dogs
+ owners:
+ - ownerId: 4564
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: owner
+ href: https://api.payroc.com/v1/owners/4564
+ method: get
+ website: www.example.com
+ businessType: internet
+ categoryCode: 5999
+ merchandiseOrServiceSold: Food
+ businessStartDate: '2020-01-01'
+ timezone: America/Chicago
+ address:
+ address1: 3 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ - type: phone
+ value: 555 555 3456
+ processing:
+ merchantId: '444412365478966'
+ transactionAmounts:
+ average: 2000
+ highest: 300000
+ monthlyAmounts:
+ average: 2000000
+ highest: 300000000
+ volumeBreakdown:
+ cardPresentKeyed: 0
+ cardPresentSwiped: 0
+ mailOrTelephone: 0
+ ecommerce: 100
+ isSeasonal: true
+ funding:
+ status: enabled
+ fundingSchedule: nextday
+ acceleratedFundingFee: 1999
+ fundingAccounts:
+ - fundingAccountId: 124
+ status: pending
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-accounts/124
+ pricing:
+ link:
+ rel: pricing
+ method: get
+ href: https://api.payroc.com/v1/processing-account/12346/pricing
+ signature:
+ type: requestedViaEmail
+ contacts:
+ - contactId: 1543
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: owner
+ href: https://api.payroc.com/v1/contacts/1543
+ method: get
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ post:
+ tags:
+ - Merchant platforms
+ summary: Create processing account
+ description: |
+ Use this method to create a processing account and add it to a merchant platform.
+ > **Note**: You can create and add a processing account only to an existing merchant platform. If you have not already created a merchant platform, go to [Create a merchant platform.](#createMerchant)
+
+ In the response we return a processingAccountId for the processing account, which you need for the following methods.
+ - [Retrieve processing account](#getProcessingAcccounts)
+ - [List processing account's funding accounts](#listProcessingAccountsFundingAccounts)
+ - [List contacts](#listProcessingAccountContacts)
+ - [Get a processing account pricing agreement](#retrieveProcessingAccountPricing)
+ - [List owners](#listMerchantOwners)
+ - [Create reminder for processing account](#createReminder)
+ operationId: createProcessingAccount
+ parameters:
+ - name: merchantPlatformId
+ in: path
+ description: Unique identifier of the merchant platform.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_192
+ - name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ requestBody:
+ content:
+ application/json:
+ schema:
+ required: *ref_197
+ type: object
+ properties: *ref_198
+ examples:
+ retrievedMerchantPlatforms:
+ summary: Create merchant platform
+ description: Create a merchant platform.
+ value: &ref_528
+ doingBusinessAs: Pizza Doe
+ owners:
+ - firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ dateOfBirth: '1964-03-22'
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ identifiers:
+ - type: nationalId
+ value: 000-00-4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ relationship:
+ equityPercentage: 35.4
+ title: CFO
+ isControlProng: true
+ isAuthorizedSignatory: false
+ website: www.example.com
+ businessType: restaurant
+ categoryCode: 5999
+ merchandiseOrServiceSold: Pizza
+ businessStartDate: '2020-01-01'
+ timezone: America/Chicago
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processing:
+ transactionAmounts:
+ average: 5000
+ highest: 10000
+ monthlyAmounts:
+ average: 50000
+ highest: 100000
+ volumeBreakdown:
+ cardPresentKeyed: 47
+ cardPresentSwiped: 30
+ mailOrTelephone: 3
+ ecommerce: 20
+ isSeasonal: true
+ monthsOfOperation:
+ - jan
+ - feb
+ ach:
+ naics: 44-45
+ previouslyTerminatedForAch: false
+ refunds:
+ writtenRefundPolicy: true
+ refundPolicyUrl: www.example.com/refund-poilcy-url
+ estimatedMonthlyTransactions: 3000
+ limits:
+ singleTransaction: 10000
+ dailyDeposit: 200000
+ monthlyDeposit: 6000000
+ transactionTypes:
+ - prearrangedPayment
+ - other
+ transactionTypesOther: anotherTransactionType
+ cardAcceptance:
+ debitOnly: false
+ cardsAccepted:
+ - visa
+ - mastercard
+ specialityCards:
+ americanExpressDirect:
+ enabled: true
+ merchantNumber: abc1234567
+ electronicBenefitsTransfer:
+ enabled: true
+ fnsNumber: abc1234
+ other:
+ wexMerchantNumber: abc1234567
+ voyagerMerchantId: abc1234567
+ fleetMerchantId: abc1234567
+ funding:
+ fundingSchedule: nextday
+ acceleratedFundingFee: 1999
+ dailyDiscount: false
+ fundingAccounts:
+ - type: checking
+ use: creditAndDebit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '123456789'
+ accountNumber: '1234567890'
+ metadata:
+ internalRef: '2345'
+ pricing:
+ type: intent
+ pricingIntentId: 6123
+ signature: requestedViaDirectLink
+ contacts:
+ - type: manager
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ identifiers:
+ - type: nationalId
+ value: 000-00-4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ metadata:
+ customerId: '2345'
+ responses:
+ '201':
+ description: Successful request. We created the processing account.
+ content:
+ application/json:
+ schema:
+ required: *ref_199
+ type: object
+ properties: *ref_200
+ examples:
+ retrievedMerchantPlatforms:
+ summary: Retrieve merchant platform
+ description: Retrieve a merchant platform.
+ value: &ref_529
+ processingAccountId: '12345'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: entered
+ doingBusinessAs: Pizza Doe
+ owners:
+ - ownerId: 4564
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: owner
+ href: https://api.payroc.com/v1/owners/4564
+ method: get
+ website: www.example.com
+ businessType: restaurant
+ categoryCode: 5999
+ merchandiseOrServiceSold: Pizza
+ businessStartDate: '2020-01-01'
+ timezone: America/Chicago
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processing:
+ transactionAmounts:
+ average: 5000
+ highest: 10000
+ monthlyAmounts:
+ average: 50000
+ highest: 100000
+ volumeBreakdown:
+ cardPresentKeyed: 47
+ cardPresentSwiped: 30
+ mailOrTelephone: 3
+ ecommerce: 20
+ isSeasonal: true
+ monthsOfOperation:
+ - jan
+ - feb
+ ach:
+ naics: 44-45
+ previouslyTerminatedForAch: false
+ refunds:
+ writtenRefundPolicy: true
+ refundPolicyUrl: www.example.com/refund-poilcy-url
+ estimatedMonthlyTransactions: 3000
+ limits:
+ singleTransaction: 10000
+ dailyDeposit: 200000
+ monthlyDeposit: 6000000
+ transactionTypes:
+ - prearrangedPayment
+ - other
+ transactionTypesOther: anotherTransactionType
+ cardAcceptance:
+ debitOnly: false
+ cardsAccepted:
+ - visa
+ - mastercard
+ specialityCards:
+ americanExpressDirect:
+ enabled: true
+ merchantNumber: abc1234567
+ electronicBenefitsTransfer:
+ enabled: true
+ fnsNumber: abc1234
+ other:
+ wexMerchantNumber: abc1234567
+ voyagerMerchantId: abc1234567
+ fleetMerchantId: abc1234567
+ funding:
+ status: enabled
+ fundingSchedule: nextday
+ acceleratedFundingFee: 1999
+ dailyDiscount: false
+ fundingAccounts:
+ - fundingAccountId: 123
+ status: pending
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-account/123
+ pricing:
+ link:
+ rel: pricing
+ href: https://api.payroc.com/v1/processing-account/12345/pricing
+ method: get
+ contacts:
+ - contactId: 1543
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: contact
+ href: https://api.payroc.com/v1/contacts/1543
+ method: get
+ signature:
+ type: requestedViaDirectLink
+ link:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000000
+ method: get
+ metadata:
+ customerId: '2345'
+ headers:
+ location:
+ description: URI reference to the resource.
+ style: simple
+ explode: false
+ schema:
+ type: string
+ '400':
+ description: Validation error.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ fundingAccountsLimitReached:
+ summary: Funding accounts limit reached
+ description: Funding accounts restricted. You can not have any more than two funding accounts attached to this entity
+ value: *ref_201
+ tooManyControlProngs:
+ summary: Too many control prongs
+ description: Your request included more than one owner as the control prong. You can set only one owner as the control prong.
+ value: *ref_202
+ noControlProng:
+ summary: No control prong or authorized signatory
+ description: Your request didn’t indicate which owner is the control prong or the authorized signatory. Set one owner as the control prong or the authorized signatory.
+ value: *ref_203
+ dailyDiscountAndRewardPayConflict:
+ summary: Cannot select Daily Discount and RewardPay or RewardPayChoice at the same time.
+ description: You can't select Daily Discount with a RewardPay or RewardPayChoice pricing plan. To select Daily Discount, choose a different pricing plan.
+ value: *ref_204
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ examples:
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-accounts/{processingAccountId}:
+ get:
+ tags:
+ - Processing accounts
+ summary: Retrieve processing account
+ description: Retrieve a specific processing account.
+ operationId: getProcessingAcccounts
+ parameters:
+ - name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: &ref_205
+ type: string
+ example: '12345'
+ responses:
+ '200':
+ description: Successful request. Returns the processing account.
+ content:
+ application/json:
+ schema:
+ required: *ref_199
+ type: object
+ properties: *ref_200
+ examples:
+ processingAccount:
+ summary: Retrieve processing account
+ description: Retrieve a specific processing account.
+ value: &ref_530
+ processingAccountId: '38765'
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ doingBusinessAs: Pizza Doe
+ owners:
+ - ownerId: 4564
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: owner
+ href: https://api.payroc.com/v1/owners/1543
+ method: get
+ website: www.example.com
+ businessType: restaurant
+ categoryCode: 5999
+ merchandiseOrServiceSold: Pizza
+ businessStartDate: '2020-01-01'
+ timezone: America/Chicago
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ processing:
+ merchantId: '444412365478965'
+ transactionAmounts:
+ average: 5000
+ highest: 10000
+ monthlyAmounts:
+ average: 50000
+ highest: 100000
+ volumeBreakdown:
+ cardPresentKeyed: 47
+ cardPresentSwiped: 30
+ mailOrTelephone: 3
+ ecommerce: 20
+ isSeasonal: true
+ monthsOfOperation:
+ - jan
+ - feb
+ ach:
+ naics: 44-45
+ previouslyTerminatedForAch: false
+ refunds:
+ writtenRefundPolicy: true
+ refundPolicyUrl: www.example.com/refund-poilcy-url
+ estimatedMonthlyTransactions: 3000
+ limits:
+ singleTransaction: 10000
+ dailyDeposit: 200000
+ monthlyDeposit: 6000000
+ transactionTypes:
+ - prearrangedPayment
+ - other
+ transactionTypesOther: anotherTransactionType
+ cardAcceptance:
+ debitOnly: false
+ cardsAccepted:
+ - visa
+ - mastercard
+ specialityCards:
+ americanExpressDirect:
+ enabled: true
+ merchantNumber: abc1234567
+ electronicBenefitsTransfer:
+ enabled: true
+ fnsNumber: abc1234
+ other:
+ wexMerchantNumber: abc1234567
+ voyagerMerchantId: abc1234567
+ fleetMerchantId: abc1234567
+ funding:
+ status: enabled
+ fundingSchedule: nextday
+ acceleratedFundingFee: 1999
+ dailyDiscount: false
+ fundingAccounts:
+ - fundingAccountId: 123
+ status: pending
+ link:
+ rel: fundingAccount
+ method: get
+ href: https://api.payroc.com/v1/funding-account/123
+ pricing:
+ link:
+ rel: pricing
+ href: https://api.payroc.com/v1/processing-account/38765/pricing
+ method: get
+ contacts:
+ - contactId: 1543
+ firstName: Jane
+ lastName: Doe
+ link:
+ rel: contact
+ href: https://api.payroc.com/v1/contacts/1543
+ method: get
+ signature:
+ type: requestedViaDirectLink
+ link:
+ rel: agreement
+ href: https://us.agreementexpress.net/mv2/viewer2.jsp?docId=00000000-0000-0000-0000-000000000000
+ method: get
+ metadata:
+ customerId: '2345'
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-accounts/{processingAccountId}/funding-accounts:
+ get:
+ tags:
+ - Processing accounts
+ summary: List processing account's funding accounts
+ description: Retrieve a list of funding accounts associated with a processing account.
+ operationId: listProcessingAccountsFundingAccounts
+ parameters:
+ - name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_205
+ responses:
+ '200':
+ description: Successful request. Returns a list of funding accounts associated with the processing account.
+ content:
+ application/json:
+ schema:
+ type: array
+ description: Array of fundingAccount objects.
+ items:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ examples:
+ fundingAccounts:
+ summary: List of funding accounts
+ description: List of funding accounts associated with a processing account.
+ value: &ref_531
+ - fundingAccountId: 123
+ createdDate: '2020-09-08T12:00:00.000Z'
+ lastModifiedDate: '2020-09-08T12:00:00.000Z'
+ status: approved
+ type: checking
+ use: creditAndDebit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****6789'
+ accountNumber: '******7890'
+ metadata:
+ internalRef: '2345'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/processing-accounts/38765
+ method: get
+ - fundingAccountId: 124
+ createdDate: '2021-01-08T12:00:00.000Z'
+ lastModifiedDate: '2021-01-08T12:00:00.000Z'
+ status: pending
+ type: checking
+ use: creditAndDebit
+ nameOnAccount: Jane Doe
+ paymentMethods:
+ - type: ach
+ value:
+ routingNumber: '*****8725'
+ accountNumber: '******3491'
+ metadata:
+ internalRef: '2346'
+ links:
+ - rel: parent
+ href: https://api.payroc.com/v1/processing-accounts/38765
+ method: get
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Identity could not be verified
+ content: *ref_11
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-accounts/{processingAccountId}/contacts:
+ get:
+ tags:
+ - Processing accounts
+ summary: List contacts
+ description: Retrieve a list of contacts associated with a processing account.
+ operationId: listProcessingAccountContacts
+ parameters:
+ - name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_205
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of contacts associated with the processing account.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated Contacts
+ allOf: &ref_439
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: An array of contact objects.
+ items:
+ type: object
+ title: contact
+ required: *ref_206
+ properties: *ref_207
+ examples:
+ paginatedContacts:
+ summary: Paginated list of processing account contacts
+ description: List of contacts associated with a processing account.
+ value: &ref_532
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/processing-accounts/38765/contacts?before=4564&limit=2
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/processing-accounts/38765/contacts?after=4565&limit=2
+ data:
+ - contactId: 1543
+ type: manager
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ identifiers:
+ - type: nationalId
+ value: xxxxx4320
+ contactMethods:
+ - type: phone
+ value: '2025550164'
+ - type: mobile
+ value: '8445557624'
+ - type: email
+ value: jane.doe@example.com
+ - contactId: 12346
+ type: representative
+ firstName: Fred
+ middleName: Jim
+ lastName: Nerk
+ identifiers:
+ - type: nationalId
+ value: xxxxx9876
+ contactMethods:
+ - type: phone
+ value: '2025550110'
+ - type: mobile
+ value: '85645787451'
+ - type: email
+ value: fred.nerk@example.com
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Identity could not be verified
+ content: *ref_11
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-accounts/{processingAccountId}/pricing:
+ get:
+ summary: Get processing account pricing agreement
+ description: Retrieve a pricing agreement for a processing account.
+ operationId: retrieveProcessingAccountPricing
+ tags:
+ - Processing accounts
+ parameters:
+ - name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_205
+ responses:
+ '200':
+ description: Successful request. Returns the pricing agreement for the processing account.
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - type: object
+ title: US pricing agreement version 4.0
+ description: Object that contains information about U.S. pricing intents for Merchant Processing Agreement (MPA) 4.0.
+ required: *ref_184
+ properties: *ref_185
+ examples:
+ paginatedContacts:
+ summary: Get processing account pricing agreement
+ description: Retrieve a pricing agreement for a processing account.
+ value: &ref_533
+ country: US
+ version: '4.0'
+ base:
+ addressVerification: 5
+ annualFee:
+ billInMonth: june
+ amount: 100
+ regulatoryAssistanceProgram: 15
+ pciNonCompliance: 4995
+ merchantAdvantage: 10
+ platinumSecurity:
+ billingFrequency: monthly
+ amount: 1295
+ maintenance: 500
+ minimum: 100
+ voiceAuthorization: 95
+ chargeback: 2500
+ retrieval: 1500
+ batch: 1500
+ earlyTermination: 57500
+ processor:
+ card:
+ planType: interchangePlus
+ fees:
+ mastercardVisaDiscover:
+ volume: 1.25
+ transaction: 0
+ amex:
+ type: optBlue
+ volume: 1.25
+ transaction: 0
+ pinDebit:
+ additionalDiscount: 1.25
+ transaction: 0
+ monthlyAccess: 0
+ electronicBenefitsTransfer:
+ transaction: 0
+ enhancedInterchange:
+ enrollment: 0
+ creditToMerchant: 1.25
+ specialityCards:
+ transaction: 0
+ ach:
+ fees:
+ transaction: 50
+ batch: 1000
+ returns: 400
+ unauthorizedReturn: 1999
+ statement: 800
+ monthlyMinimum: 20000
+ accountVerification: 100
+ discountRateUnder10000: 1.25
+ discountRateAbove10000: 1.25
+ gateway:
+ fees:
+ monthly: 0
+ setup: 0
+ perTransaction: 0
+ perDeviceMonthly: 0
+ additionalServiceMonthly: 0
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-accounts/{processingAccountId}/owners:
+ get:
+ tags:
+ - Processing accounts
+ summary: List owners
+ description: Retrieve owners associated with a processing account.
+ operationId: listMerchantOwners
+ parameters:
+ - name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_205
+ - name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ - name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ - name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ responses:
+ '200':
+ description: Successful request. Returns a list of owners associated with the processing account.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: paginated Owners
+ allOf: &ref_440
+ - type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ - type: object
+ properties:
+ data:
+ type: array
+ description: Array of owner objects.
+ items:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ examples:
+ listProcessingAccountOwners:
+ summary: Paginated list of processing account owners
+ description: Retrieve owners associated with a processing account.
+ value: &ref_534
+ limit: 2
+ count: 2
+ hasMore: true
+ links:
+ - rel: previous
+ method: get
+ href: https://api.payroc.com/v1/processing-accounts/38765/owners?before=4564&limit=2
+ - rel: next
+ method: get
+ href: https://api.payroc.com/v1/processing-accounts/38765/owners?after=4565&limit=2
+ data:
+ - ownerId: 4564
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ dateOfBirth: '1964-03-22'
+ address:
+ address1: 1 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ identifiers:
+ - type: nationalId
+ value: xxxxx4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ - type: phone
+ value: '2025550164'
+ relationship:
+ equityPercentage: 49
+ title: CFO
+ isControlProng: true
+ isAuthorizedSignatory: false
+ - ownerId: 12346
+ firstName: Fred
+ middleName: Jim
+ lastName: Nerk
+ dateOfBirth: '1980-01-19'
+ address:
+ address1: 2 Example Ave.
+ address2: Example Address Line 2
+ address3: Example Address Line 3
+ city: Chicago
+ state: Illinois
+ country: US
+ postalCode: '60056'
+ identifiers:
+ - type: nationalId
+ value: xxxxx9876
+ contactMethods:
+ - type: email
+ value: fred.nerk@example.com
+ relationship:
+ equityPercentage: 51
+ title: CEO
+ isControlProng: false
+ isAuthorizedSignatory: true
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /processing-accounts/{processingAccountId}/reminders:
+ post:
+ tags:
+ - Processing accounts
+ summary: Create reminder for processing account
+ description: |
+ When you create a processing account, we send a copy of the pricing agreement to the merchant to sign. You can choose to send them a copy of the pricing agreement by email, or you can generate a link to the pricing agreement.
+ If you requested the merchant's signature by email and they don't respond, use our Reminders endpoint to create a reminder and to send another email.
+ **Note:** You can use the Reminders endpoint only if you request the merchant's signature by email. If you generate a link to the pricing agreement, you can't use the Reminders endpoint.
+ operationId: createReminder
+ parameters:
+ - name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_205
+ requestBody:
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - type: object
+ required: &ref_208
+ - type
+ properties: &ref_209
+ reminderId:
+ type: string
+ description: Unique ID of the reminder.
+ readOnly: true
+ example: '1234567'
+ type:
+ type: string
+ description: Type of reminder.
+ enum:
+ - pricingAgreement
+ example: pricingAgreement
+ examples:
+ createReminderForProcessingAccount:
+ summary: Create reminder for processing account
+ description: |
+ When you create a processing account, we send a copy of the pricing agreement to the merchant to sign. You can choose to send them a copy of the pricing agreement by email, or you can generate a link to the pricing agreement.
+ If you requested the merchant's signature by email and they don't respond, use our Reminders endpoint to create a reminder and to send another email.
+ **Note:** You can use the Reminders endpoint only if you request the merchant's signature by email. If you generate a link to the pricing agreement, you can't use the Reminders endpoint.
+ value: &ref_535
+ type: pricingAgreement
+ responses:
+ '201':
+ description: Successful request. We sent the email to the merchant.
+ content:
+ application/json:
+ schema:
+ oneOf:
+ - type: object
+ required: *ref_208
+ properties: *ref_209
+ examples:
+ reminderCreated:
+ summary: ''
+ description: ''
+ value: &ref_536
+ reminderId: '1234567'
+ type: pricingAgreement
+ '400':
+ description: Bad request
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ badRequest:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ notRequestedByEmail:
+ summary: Not requested by email
+ description: We couldn't resend the email to the merchant because you didn't originally choose to send the information by email.
+ value: &ref_537
+ type: https://docs.payroc.com/api/errors#not-requested-by-email
+ title: Not requested by email
+ status: 400
+ detail: You can use the Reminders endpoint only for documentation that we sent by email.
+ contractAlreadySigned:
+ summary: Contract already signed
+ description: We couldn’t resend the email because the merchant already signed the contract.
+ value: &ref_538
+ type: https://docs.payroc.com/api/errors#contract-already-signed
+ title: Contract already signed
+ status: 400
+ detail: The merchant has already signed the contract.
+ noPricingAgreementExistsForTheProcessingAccount:
+ summary: No pricing agreement exists for the processing account
+ description: We couldn’t resend the email because there is no pricing agreement for the processing account.
+ value: &ref_539
+ type: https://docs.payroc.com/api/errors#no-pricing-agreement-exists-for-the-processing-account
+ title: No pricing agreement exists
+ status: 400
+ detail: There is no pricing agreement linked to the processing account.
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ /contacts/{contactId}:
+ get:
+ tags:
+ - Contacts
+ summary: Retrieve contact
+ description: Retrieve a specific contact.
+ operationId: getContact
+ parameters:
+ - name: contactId
+ in: path
+ description: Unique identifier for the contact.
+ required: true
+ style: simple
+ explode: false
+ schema: &ref_210
+ type: integer
+ example: 1543
+ responses:
+ '200':
+ description: Successful request. Returns the requested contact.
+ content:
+ application/json:
+ schema:
+ type: object
+ title: contact
+ required: *ref_206
+ properties: *ref_207
+ examples:
+ contact:
+ summary: Contact object
+ description: Contact object
+ value: &ref_540
+ contactId: 1543
+ type: manager
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ identifiers:
+ - type: nationalId
+ value: xxxxx4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ - type: phone
+ value: '2025550164'
+ - type: mobile
+ value: '8445557624'
+ - type: fax
+ value: '2025550110'
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+ put:
+ tags:
+ - Contacts
+ summary: Update contact
+ description: Update a specific contact.
+ operationId: updateContact
+ parameters:
+ - name: contactId
+ in: path
+ description: Unique identifier for the contact.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_210
+ example: 1543
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ title: contact
+ required: *ref_206
+ properties: *ref_207
+ examples:
+ updateContact:
+ summary: Update contact
+ description: Update a specific contact.
+ value: &ref_541
+ type: manager
+ firstName: Jane
+ middleName: Helen
+ lastName: Doe
+ identifiers:
+ - type: nationalId
+ value: 000-00-4320
+ contactMethods:
+ - type: email
+ value: jane.doe@example.com
+ responses:
+ '204':
+ description: Successful request. We updated the contact.
+ '400':
+ description: Validation errors.
+ content:
+ application/problem+json:
+ schema:
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ examples:
+ validationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '500':
+ description: An error has occured
+ content: *ref_13
+ delete:
+ tags:
+ - Contacts
+ summary: Delete contact
+ description: Delete a contact.
+ operationId: deleteContact
+ parameters:
+ - name: contactId
+ in: path
+ description: Unique identifier for the contact.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_210
+ example: 1543
+ responses:
+ '204':
+ description: Successful request. We deleted the contact.
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '500':
+ description: An error has occured
+ content: *ref_13
+components:
+ securitySchemes:
+ bearerAuth:
+ type: http
+ description: 'Example: Authorization: Bearer '
+ scheme: bearer
+ bearerFormat: JWT
+ parameters:
+ before:
+ name: before
+ in: query
+ required: false
+ description: Points to the resource identifier that you want to receive your results before. Typically, this is the first resource on the previous page.
+ explode: false
+ schema: *ref_29
+ example: '2571'
+ after:
+ name: after
+ in: query
+ description: Points to the resource identifier that you want to receive your results after. Typically, this is the last resource on the previous page.
+ schema: *ref_30
+ example: '8516'
+ limit:
+ name: limit
+ in: query
+ description: States the total amount of results the response is limited to.
+ schema: *ref_31
+ example: 25
+ idempotencyKey:
+ name: Idempotency-Key
+ in: header
+ required: true
+ description: Unique identifier that you generate for each request. You must use the UUID v4 format for the identifier.
+ schema: *ref_21
+ example: 8e03978e-40d5-43e8-bc93-6894a57f9324
+ recipientId:
+ name: recipientId
+ description: Unique identifier of the funding recipient.
+ in: path
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_15
+ fundingAccountId:
+ name: fundingAccountId
+ in: path
+ required: true
+ description: Unique identifier of the funding account.
+ style: simple
+ explode: false
+ schema: *ref_33
+ ownerId:
+ name: ownerId
+ in: path
+ description: Unique identifier for the owner.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_34
+ example: 4564
+ pricingIntentId:
+ in: path
+ name: pricingIntentId
+ schema: *ref_211
+ required: true
+ description: Unique identifier of the pricing intent.
+ example: '5'
+ dateFrom:
+ name: dateFrom
+ in: query
+ description: Retrieve activity that occured since `dateFrom`. We can return activity from only the last two years.
+ required: true
+ schema: *ref_212
+ dateTo:
+ name: dateTo
+ in: query
+ required: true
+ description: Retrieve activity that occured before `dateTo`.
+ schema: *ref_213
+ instructionId:
+ name: instructionId
+ in: path
+ required: true
+ description: Unique identifier of the funding instruction.
+ schema: *ref_214
+ merchantId:
+ name: merchantId
+ in: query
+ description: Unique identifier of the merchant.
+ schema: *ref_58
+ example: '4525644354'
+ batchId:
+ name: batchId
+ description: Unique identifier of the batch.
+ in: path
+ required: true
+ style: simple
+ schema: *ref_215
+ example: 12345
+ keyDate:
+ name: date
+ in: query
+ required: true
+ description: Date to retrieve results from. The format of this value is **YYYY-MM-DD**. You must provide either the 'batchId' or the 'date'.
+ schema: *ref_64
+ example: '2021-09-05'
+ batchIdQuery:
+ name: batchId
+ in: query
+ required: true
+ description: Unique identifier of the batch. You must provide either the 'batchId' or the 'date'.
+ schema: *ref_65
+ example: 12345
+ transactionType:
+ name: transactionType
+ in: query
+ required: false
+ description: Type of transaction.
+ schema: *ref_216
+ transactionId:
+ name: transactionId
+ description: Unique identifier of the transaction.
+ in: path
+ required: true
+ style: simple
+ schema: *ref_217
+ authorizationId:
+ name: authorizationId
+ description: Unique identifier of the authorization.
+ in: path
+ required: true
+ style: simple
+ schema: *ref_218
+ disputeId:
+ name: disputeId
+ description: Unique identifier of the dispute.
+ in: path
+ required: true
+ style: simple
+ schema: *ref_219
+ merchantPlatformId:
+ name: merchantPlatformId
+ in: path
+ description: Unique identifier of the merchant platform.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_192
+ processingAccountId:
+ name: processingAccountId
+ in: path
+ description: Unique identifier of the processing account.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_205
+ contactId:
+ name: contactId
+ in: path
+ description: Unique identifier for the contact.
+ required: true
+ style: simple
+ explode: false
+ schema: *ref_210
+ example: 1543
+ schemas:
+ '400':
+ type: object
+ properties: *ref_8
+ required: *ref_9
+ '401':
+ type: object
+ properties: *ref_220
+ required: *ref_221
+ '403':
+ type: object
+ properties: *ref_222
+ required: *ref_223
+ '404':
+ type: object
+ properties: *ref_224
+ required: *ref_225
+ '406':
+ type: object
+ properties: *ref_226
+ required: *ref_227
+ '409':
+ type: object
+ properties: *ref_24
+ required: *ref_25
+ '415':
+ type: object
+ properties: *ref_228
+ required: *ref_229
+ '500':
+ type: object
+ properties: *ref_230
+ required: *ref_231
+ link:
+ type: object
+ description: Object that contains information about a HATEOAS link. If we can't match a dispute to a transaction, we don't return a 'link' object.
+ properties: *ref_3
+ required: *ref_4
+ example: *ref_5
+ paginatedList:
+ type: object
+ description: Contains the pagination properties that you use to navigate through a list of results.
+ properties: *ref_32
+ address:
+ required: *ref_0
+ type: object
+ title: address
+ description: Object that contains information about the address.
+ properties: *ref_1
+ contactMethodEmail:
+ required: *ref_232
+ type: object
+ title: Email contact method
+ properties: *ref_233
+ contactMethodPhone:
+ required: *ref_234
+ type: object
+ title: Phone number contact method
+ properties: *ref_235
+ contactMethodMobile:
+ required: *ref_236
+ type: object
+ title: Mobile number contact method
+ properties: *ref_237
+ contactMethodFax:
+ required: *ref_238
+ type: object
+ title: Fax number contact method
+ properties: *ref_239
+ contactMethod:
+ oneOf: *ref_2
+ fundingRecipient:
+ required: *ref_6
+ type: object
+ title: funding recipient
+ properties: *ref_7
+ paginatedFundRecipients:
+ type: object
+ title: paginated funding recipients
+ allOf: *ref_240
+ identifier:
+ required: *ref_186
+ type: object
+ title: identifier
+ properties: *ref_187
+ ownerRelationship:
+ required: *ref_241
+ type: object
+ title: Owner relationship
+ description: Object that contains information about the owner's relationship to the business.
+ properties: *ref_242
+ owner:
+ type: object
+ title: owner
+ required: *ref_27
+ properties: *ref_28
+ PaymentMethodAch:
+ type: object
+ title: ACH payment method
+ properties: *ref_243
+ paymentMethods:
+ uniqueItems: true
+ type: array
+ description: Array of PaymentMethodAch objects.
+ xml: *ref_244
+ items: *ref_245
+ fundingAccount:
+ required: *ref_19
+ type: object
+ title: funding account
+ properties: *ref_20
+ createFundingRecipient:
+ required: *ref_246
+ type: object
+ title: create funding recipient
+ properties: *ref_247
+ listFundingAccounts:
+ type: object
+ title: paginated funding accounts
+ allOf: *ref_248
+ baseIntent:
+ type: object
+ title: base pricing intent
+ description: Object that contains information about the base fees.
+ properties: *ref_249
+ required: *ref_250
+ baseUs:
+ type: object
+ title: US base fees
+ description: Object that contains information about U.S. base fees.
+ properties: *ref_251
+ required: *ref_252
+ percentage:
+ description: Percentage value up to 2 decimal places.
+ title: percentage
+ type: number
+ format: double
+ minimum: 0
+ maximum: 100
+ example: 1.25
+ amount:
+ type: integer
+ minimum: 0
+ processorFee:
+ type: object
+ title: Processor Fee
+ description: Object that contains information about the processor fees.
+ properties: *ref_35
+ pinDebit:
+ type: object
+ required: *ref_36
+ properties: *ref_37
+ electronicBenefitsTransfer:
+ type: object
+ required: *ref_38
+ properties: *ref_39
+ enhancedInterchange:
+ type: object
+ required: *ref_40
+ properties: *ref_41
+ specialityCards:
+ type: object
+ required: *ref_42
+ properties: *ref_43
+ interchangePlus:
+ type: object
+ title: Interchange Plus Plan
+ description: Object that contains information about Interchange Plus.
+ properties: *ref_253
+ required: *ref_254
+ qualRates:
+ type: object
+ required: *ref_44
+ properties: *ref_45
+ interchangePlusTiered3:
+ type: object
+ title: Interchange Plus with three tiers
+ description: Object that contains information about Interchange Plus with three tiers.
+ properties: *ref_255
+ required: *ref_256
+ tiered3:
+ type: object
+ title: Tiered pricing with three tiers
+ description: Object that contains information about tiered pricing with three tiers.
+ properties: *ref_257
+ required: *ref_258
+ qualRatesWithPremium:
+ type: object
+ allOf: *ref_46
+ tiered4:
+ type: object
+ title: Tiered pricing with four tiers
+ description: Object that contains information about tiered pricing with four tiers.
+ properties: *ref_259
+ required: *ref_260
+ qualRatesWithPremiumAndRegulated:
+ type: object
+ allOf: *ref_261
+ tiered6:
+ type: object
+ title: Tiered pricing with six tiers
+ description: Object that contains information about tiered pricing with six tiers.
+ properties: *ref_262
+ required: *ref_263
+ flatRate:
+ type: object
+ title: Flat Rate Plan
+ description: Object that contains information about Flat Rate.
+ properties: *ref_264
+ required: *ref_265
+ consumerChoice:
+ type: object
+ title: Consumer Choice Plan
+ description: Object that contains information about ConsumerChoice.
+ properties: *ref_266
+ required: *ref_267
+ rewardPay:
+ type: object
+ title: RewardPay Plan
+ description: Object that contains information about RewardPay.
+ properties: *ref_268
+ required: *ref_269
+ rewardPayChoice:
+ type: object
+ title: RewardPayChoice Plan
+ description: Object that contains information about RewardPayChoice.
+ properties: *ref_270
+ required: *ref_271
+ ach:
+ type: object
+ properties: *ref_272
+ processorFeesUs:
+ type: object
+ title: US processor fees
+ description: Object that contains information about U.S. processor fees.
+ properties: *ref_273
+ gatewayUs:
+ type: object
+ description: Object that contains information about the gateway fees.
+ title: gateway fees
+ properties: *ref_274
+ required: *ref_275
+ pricingAgreementUs4.0:
+ type: object
+ title: US pricing agreement version 4.0
+ description: Object that contains information about U.S. pricing intents for Merchant Processing Agreement (MPA) 4.0.
+ required: *ref_184
+ properties: *ref_185
+ pricingIntent4.0:
+ type: object
+ title: pricing intent version 4.0
+ description: Object that contains information about a pricing intent for Merchant Processing Agreement (MPA) 4.0.
+ allOf: *ref_276
+ pricingIntent:
+ type: object
+ title: pricing intent
+ description: Object that contains information about a pricing intent.
+ oneOf: *ref_48
+ paginatedPricingIntent:
+ type: object
+ title: paginated pricing intents
+ description: Object that contains information about your pricing intents.
+ allOf: *ref_277
+ patchDocument:
+ description: JSONPatch document, specified in RFC 6902.
+ required: *ref_278
+ properties: *ref_279
+ patchRequest:
+ type: array
+ description: A JSONPatch document as defined by RFC 6902
+ example: *ref_77
+ items: *ref_78
+ instruction:
+ type: object
+ description: Inform the payfac what to do with the specified funds. **
+ title: funding instruction
+ properties: *ref_51
+ merchantBalance:
+ type: object
+ description: Object that contains information about the total funds available to the merchant.
+ title: merchant balance
+ properties: *ref_280
+ activityRecord:
+ type: object
+ description: Array of activityRecord objects.
+ title: activity record
+ properties: *ref_281
+ required: *ref_282
+ merchantSummary:
+ type: object
+ title: merchant summary
+ description: Object that contains information about the merchant.
+ properties: *ref_59
+ example: *ref_60
+ batch:
+ type: object
+ title: batch
+ properties: *ref_56
+ settledSummary:
+ type: object
+ title: settlement summary
+ description: Object that contains information about the settlement.
+ properties: *ref_283
+ batchSummary:
+ type: object
+ title: batch summary
+ description: Object that contains information about the batch. If we can't match a dispute to a batch, we don't return 'batch' object.
+ nullable: true
+ properties: *ref_66
+ cardSummary:
+ type: object
+ title: card summary
+ description: Object that contains information about the card.
+ properties: *ref_67
+ authorizationSummary:
+ type: object
+ title: authorization summary
+ description: Object that contains information about the authorization.
+ properties: *ref_284
+ transaction:
+ type: object
+ title: transaction
+ description: Object that contains information about the transaction.
+ properties: *ref_63
+ transactionSummary:
+ type: object
+ title: transaction summary
+ description: Object that contains summary information about the transaction.
+ properties: *ref_69
+ authorization:
+ type: object
+ title: authorization
+ description: Object that contains information about the authorization.
+ properties: *ref_68
+ disputeStatus:
+ type: object
+ title: dispute status
+ description: Object that contains information about the current status of the dispute.
+ properties: *ref_70
+ dispute:
+ type: object
+ title: dispute
+ description: Object that contains information about the dispute.
+ properties: *ref_285
+ tax:
+ required: *ref_102
+ type: object
+ properties: *ref_103
+ subscriptionBreakdown:
+ required: *ref_71
+ type: object
+ description: |
+ Object that contains information about the taxes that apply to the transaction.
+ properties: *ref_72
+ subscriptionOrder:
+ type: object
+ properties: *ref_73
+ setupOrder:
+ type: object
+ description: Object that contains information about the initial cost that a customer pays to set up the subscription.
+ allOf: *ref_286
+ recurringOrder:
+ type: object
+ description: |
+ Object that contains information about the cost of each payment.
+ **Note:** Send this object only if the value for **type** is `automatic`.
+ allOf: *ref_81
+ paymentPlan:
+ required: *ref_74
+ type: object
+ properties: *ref_75
+ paymentPlanPaginatedList:
+ required: *ref_287
+ type: object
+ allOf: *ref_288
+ paymentPlanSummary:
+ required: *ref_289
+ type: object
+ properties: *ref_290
+ secureTokenSummary:
+ required: *ref_86
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_87
+ subscriptionPaymentOrder:
+ description: Object that contains information about the initial cost that a customer pays to set up the subscription.
+ type: object
+ allOf: *ref_82
+ subscriptionState:
+ required: *ref_88
+ type: object
+ properties: *ref_89
+ description: A snapshot of the subscription's current state.
+ subscription:
+ required: *ref_83
+ type: object
+ properties: *ref_84
+ subscriptionPaginatedList:
+ required: *ref_291
+ type: object
+ allOf: *ref_292
+ secureTokenPayload:
+ required: *ref_108
+ type: object
+ writeOnly: true
+ title: Secure token
+ description: Object that contains information about the secure token that represents the customer’s payment details.
+ properties: *ref_109
+ subscriptionRequest:
+ required: *ref_293
+ type: object
+ properties: *ref_294
+ subscriptionPaymentRequest:
+ required: *ref_295
+ properties: *ref_296
+ paymentSummary:
+ required: *ref_139
+ type: object
+ description: Object that contains information about a payment.
+ properties: *ref_140
+ subscriptionPayment:
+ required: *ref_297
+ type: object
+ properties: *ref_298
+ shipping:
+ description: Object that contains information about the customer and their shipping address.
+ type: object
+ properties: *ref_121
+ customer:
+ type: object
+ description: Customer contact and address details.
+ properties: *ref_98
+ achSource:
+ required: *ref_299
+ type: object
+ title: ACH account
+ description: Object that contains the customer's account details.
+ properties: *ref_300
+ padSource:
+ required: *ref_301
+ type: object
+ title: PAD account
+ description: Object that contains the customer's account details.
+ properties: *ref_302
+ cardSource:
+ required: *ref_303
+ type: object
+ title: Card
+ description: Object that contains the customer's card details.
+ properties: *ref_304
+ secureToken:
+ required: *ref_99
+ type: object
+ description: Object that contains information about the secure token.
+ properties: *ref_100
+ secureTokenPaginatedList:
+ required: *ref_305
+ type: object
+ allOf: *ref_306
+ ipAddress:
+ required: *ref_104
+ type: object
+ writeOnly: true
+ description: Object that contains information about the IP address of the device that sent the request.
+ properties: *ref_105
+ achPayload:
+ required: *ref_161
+ type: object
+ writeOnly: true
+ title: ACH
+ description: Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
+ properties: *ref_162
+ padPayload:
+ required: *ref_163
+ type: object
+ writeOnly: true
+ title: PAD
+ description: Object that contains information about the payment details for the customer’s preauthorized electronic debit (PAD) transactions.
+ properties: *ref_164
+ deviceConfig:
+ required: *ref_307
+ type: object
+ properties: *ref_308
+ description: Object that contains information about the configuration of the POS terminal.
+ device:
+ required: *ref_90
+ type: object
+ properties: *ref_91
+ description: Object that contains information about the physical device the merchant used to capture the customer’s card details.
+ rawCardDetails:
+ required: *ref_309
+ type: object
+ title: Raw
+ description: Object that contains information about the unencrypted card details.
+ properties: *ref_310
+ encryptionCapableDevice:
+ required: *ref_92
+ type: object
+ description: Object that contains information about the encryption details of the POS terminal.
+ allOf: *ref_93
+ iccCardDetails:
+ required: *ref_311
+ type: object
+ title: Chip
+ description: Object that contains information about the Integrated Circuit Card (ICC).
+ properties: *ref_312
+ fullyEncryptedKeyedDataFormat:
+ required: *ref_313
+ type: object
+ title: Encrypted
+ description: Object that contains information about the encrypted card data for keyed transactions.
+ properties: *ref_314
+ partiallyEncryptedKeyedDataFormat:
+ required: *ref_315
+ type: object
+ title: Partially encrypted
+ description: Object that contains information about the partially-encrypted card data for keyed transactions.
+ properties: *ref_316
+ plainTextKeyedDataFormat:
+ required: *ref_317
+ type: object
+ title: Unencrypted
+ description: Object that contains information about the plain-text card data for keyed transactions.
+ properties: *ref_318
+ dukptPinDetails:
+ required: *ref_94
+ type: object
+ title: Encrypted
+ description: Object that contains information about encrypted PIN details.
+ properties: *ref_95
+ ebtDetails:
+ required: *ref_129
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ properties: *ref_130
+ voucher:
+ required: *ref_319
+ type: object
+ properties: *ref_320
+ description: |
+ Object that contains information about the EBT voucher.
+ **Note:** Voucher is available only for EBT Cash benefit accounts.
+ ebtDetailsWithVoucher:
+ required: *ref_96
+ type: object
+ description: Object that contains information about the Electronic Benefit Transfer (EBT) transaction.
+ allOf: *ref_97
+ keyedCardDetails:
+ required: *ref_321
+ type: object
+ title: Keyed
+ description: Object that contains information about the keyed card details.
+ properties: *ref_322
+ encryptedSwipedDataFormat:
+ required: *ref_323
+ type: object
+ title: Encrypted
+ description: Object that contains information about the encrypted swiped card data.
+ properties: *ref_324
+ plainTextSwipedDataFormat:
+ required: *ref_325
+ type: object
+ title: Unencrypted
+ description: Object that contains information about plain-text swiped card data.
+ properties: *ref_326
+ swipedCardDetails:
+ required: *ref_327
+ type: object
+ title: Swiped
+ description: Object that contains information about the customer’s card details for swiped transactions.
+ properties: *ref_328
+ cardPayload:
+ required: *ref_106
+ type: object
+ writeOnly: true
+ title: Card
+ description: Object that contains information about the customer’s payment card.
+ properties: *ref_107
+ gatewayThreeDSecure:
+ required: *ref_110
+ type: object
+ title: Gateway
+ description: Object that contains the 3-D Secure information from our gateway.
+ properties: *ref_111
+ thirdPartyThreeDSecure:
+ required: *ref_112
+ type: object
+ title: Third party
+ description: Object that contains the 3-D Secure information from a third party.
+ properties: *ref_113
+ tokenizationRequest:
+ required: *ref_329
+ type: object
+ properties: *ref_330
+ order:
+ required: *ref_124
+ type: object
+ description: Object that contains details about the transaction.
+ properties: *ref_125
+ tip:
+ required: *ref_119
+ type: object
+ description: Object that contains information about the tip.
+ properties: *ref_120
+ surcharge:
+ type: object
+ description: |
+ Object that contains information about the surcharge.
+ properties: *ref_331
+ choiceRate:
+ required: *ref_332
+ type: object
+ readOnly: true
+ properties: *ref_333
+ description: |
+ The choice rate.
+ **Note:** This field is required if dual pricing was offered.
+ dualPricing:
+ required: *ref_334
+ type: object
+ description: Object that contains information about dual pricing.
+ properties: *ref_335
+ breakdown:
+ required: *ref_126
+ type: object
+ description: Object that contains information about the breakdown of the transaction.
+ properties: *ref_127
+ convenienceFee:
+ required: *ref_336
+ type: object
+ readOnly: true
+ description: Object that contains convenience fee information for the transaction.
+ properties: *ref_337
+ lineItem:
+ required: *ref_338
+ type: object
+ description: List of line items.
+ properties: *ref_339
+ itemizedBreakdown:
+ required: *ref_122
+ type: object
+ description: Object that contains information about the breakdown of the transaction.
+ allOf: *ref_123
+ dccOffer:
+ required: *ref_133
+ type: object
+ properties: *ref_134
+ description: Object that contains the exchange rates offer for a foreign card.
+ firstTxnReferenceData:
+ type: object
+ description: Object that contains information about the initial payment for the payment instruction.
+ properties: *ref_340
+ standingInstructions:
+ required: *ref_341
+ type: object
+ description: If you don't use our Subscriptions mechanism, include this section to configure your standing/recurring orders.
+ properties: *ref_342
+ paymentOrder:
+ required: *ref_114
+ type: object
+ description: Object that contains information about the payment.
+ allOf: *ref_115
+ securityCheck:
+ type: object
+ properties: *ref_343
+ description: Object that contains information about card verification and security checks.
+ emvTag:
+ required: *ref_344
+ type: object
+ description: Object that contains information about the EMV tag.
+ properties: *ref_345
+ cardBalance:
+ required: *ref_346
+ type: object
+ properties: *ref_347
+ description: Object that contains information about the total funds available in the card.
+ card:
+ required: *ref_137
+ type: object
+ properties: *ref_138
+ description: Object that contains information about the card.
+ refundSummary:
+ required: *ref_168
+ type: object
+ description: Object that contains information about a refund.
+ properties: *ref_169
+ supportedOperations:
+ type: array
+ items: *ref_141
+ description: |
+ Array of operations that you can perform on the transaction.
+ - `capture` - Capture the payment.
+ - `refund` - Refund the payment.
+ - `fullyReverse` - Fully reverse the transaction.
+ - `partiallyReverse` - Partially reverse the payment.
+ - `incrementAuthorization` - Increase the amount of the authorization.
+ - `adjustTip` - Adjust the tip post-payment.
+ - `addSignature` - Add a signature to the payment.
+ - `setAsReady` - Set the transaction’s status to `ready`.
+ - `setAsPending` - Set the transaction’s status to `pending`.
+ - `setAsDeclined` - Set the transaction’s status to `declined`.
+ transactionResult:
+ required: *ref_142
+ type: object
+ properties: *ref_143
+ description: Object that contains information about the transaction response details.
+ payment:
+ required: *ref_116
+ type: object
+ properties: *ref_117
+ paymentPaginatedList:
+ required: *ref_348
+ type: object
+ allOf: *ref_349
+ digitalWalletPayload:
+ required: *ref_157
+ type: object
+ writeOnly: true
+ title: Digital wallet
+ description: Object that contains information about the payment details in the customer’s digital wallet.
+ properties: *ref_158
+ rawPinDetails:
+ required: *ref_350
+ type: object
+ title: Unencrypted
+ description: Object that contains information about the unencrypted PIN details.
+ properties: *ref_351
+ singleUseTokenPayload:
+ required: *ref_155
+ type: object
+ writeOnly: true
+ title: Single-use token
+ description: Object that contains information about the single-use token, which represents the customer’s payment details.
+ properties: *ref_156
+ credentialOnFile:
+ type: object
+ description: Object that contains information about saving the customer’s payment details.
+ properties: *ref_128
+ offlineProcessing:
+ required: *ref_352
+ type: object
+ description: Object that contains information about the transaction if the merchant ran it when the terminal was offline.
+ properties: *ref_353
+ paymentRequest:
+ required: *ref_354
+ type: object
+ properties: *ref_355
+ breakdownAdjustment:
+ type: object
+ description: Object that contains information about the tip amount of a transaction.
+ properties: *ref_356
+ orderAdjustment:
+ required: *ref_357
+ type: object
+ title: Order
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the order details.
+ properties: *ref_358
+ statusAdjustment:
+ required: *ref_147
+ type: object
+ title: Status
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the status of the transaction.
+ properties: *ref_148
+ customerAdjustment:
+ required: *ref_149
+ type: object
+ title: Customer
+ description: Object that contains information about the adjustment to the transaction. Send this object if the merchant is adjusting the customer’s contact details.
+ properties: *ref_150
+ signatureAdjustment:
+ required: *ref_359
+ type: object
+ title: Signature
+ description: |
+ Object that contains the signature for the transaction.
+ **Note:** If the merchant previously added a signature to the transaction, they can’t adjust or delete the signature.
+ properties: *ref_360
+ paymentAdjustment:
+ required: *ref_361
+ type: object
+ description: Object that contains the transaction adjustment object.
+ properties: *ref_362
+ paymentCapture:
+ description: Object that contains the details of the payment that the merchant wants to capture.
+ type: object
+ properties: *ref_363
+ paymentReversal:
+ type: object
+ properties: *ref_364
+ referencedRefund:
+ description: Object that contains the details of the payment that the merchant wants to refund.
+ required: *ref_365
+ type: object
+ properties: *ref_366
+ paymentInstructionOrder:
+ required: *ref_367
+ type: object
+ description: Object that contains information about the payment.
+ allOf: *ref_368
+ customizationOptions:
+ type: object
+ description: Object that contains available options to customize certain aspects of an instruction.
+ properties: *ref_151
+ paymentInstructionRequest:
+ required: *ref_369
+ type: object
+ description: Object that contains the instructions for initiating a payment on a physical device.
+ properties: *ref_370
+ deviceInstruction:
+ type: object
+ description: Object that contains information about the status of the instruction
+ properties: *ref_152
+ paymentInstruction:
+ required: *ref_131
+ type: object
+ allOf: *ref_132
+ refundOrder:
+ required: *ref_135
+ type: object
+ description: Object that contains information about the refund.
+ allOf: *ref_136
+ refund:
+ required: *ref_144
+ type: object
+ description: Object that contains information about the refund.
+ properties: *ref_145
+ refundPaginatedList:
+ required: *ref_371
+ type: object
+ description: Object that contains information about refund objects.
+ allOf: *ref_372
+ unreferencedRefund:
+ required: *ref_373
+ type: object
+ description: Refund a payment that is not linked to a previous transaction. Unreferenced refunds are available only on certain accounts.
+ properties: *ref_374
+ refundAdjustment:
+ required: *ref_375
+ type: object
+ description: Object that contains information about the adjustment to the refund.
+ properties: *ref_376
+ refundInstructionOrder:
+ required: *ref_377
+ type: object
+ description: Object that contains information about the refund.
+ allOf: *ref_378
+ refundInstructionRequest:
+ required: *ref_379
+ type: object
+ description: Object that contains information about the instruction request to initiate a refund on a payment device.
+ properties: *ref_380
+ refundInstruction:
+ required: *ref_153
+ type: object
+ allOf: *ref_154
+ cardVerificationRequest:
+ required: *ref_381
+ type: object
+ properties: *ref_382
+ cardVerificationResult:
+ required: *ref_383
+ type: object
+ properties: *ref_384
+ balanceInquiry:
+ required: *ref_385
+ type: object
+ properties: *ref_386
+ balance:
+ required: *ref_387
+ type: object
+ properties: *ref_388
+ cardBinPayload:
+ required: *ref_389
+ type: object
+ writeOnly: true
+ title: Card BIN
+ description: Object that contains information about the card's bank identification number (BIN).
+ properties: *ref_390
+ binLookup:
+ required: *ref_391
+ type: object
+ properties: *ref_392
+ surcharging:
+ required: *ref_393
+ type: object
+ properties: *ref_394
+ description: Object that contains surcharge information. Our gateway returns this object only if the merchant adds a surcharge to transactions.
+ cardInfo:
+ required: *ref_159
+ type: object
+ readOnly: true
+ properties: *ref_160
+ description: Object that contains information about the card.
+ fxRateInquiry:
+ required: *ref_395
+ type: object
+ properties: *ref_396
+ fxRateInquiryResult:
+ required: *ref_397
+ type: object
+ properties: *ref_398
+ description: Object that contains information about the currency conversion rate.
+ fxRate:
+ required: *ref_399
+ type: object
+ description: Foreign exchange rate for the transaction.
+ properties: *ref_400
+ bankTransferBreakdown:
+ required: *ref_401
+ type: object
+ description: Object that contains information about the taxes and tip amount on the transaction.
+ properties: *ref_402
+ bankTransferPaymentOrder:
+ required: *ref_165
+ type: object
+ allOf: *ref_166
+ description: Object that contains information about the transaction.
+ bankTransferCustomer:
+ type: object
+ properties: *ref_167
+ description: Object that contains information about the customer.
+ achBankAccount:
+ required: *ref_175
+ type: object
+ title: ACH account
+ description: Object that contains the customer's account details.
+ properties: *ref_176
+ padBankAccount:
+ required: *ref_177
+ type: object
+ title: PAD account
+ description: Object that contains the customer's account details.
+ properties: *ref_178
+ bankTransferReturnSummary:
+ required: *ref_403
+ type: object
+ description: Object that contains information about a return.
+ properties: *ref_404
+ bankTransferResult:
+ required: *ref_179
+ type: object
+ readOnly: true
+ properties: *ref_180
+ description: Object that contains information about the transaction.
+ bankTransferPayment:
+ required: *ref_170
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_171
+ bankTransferPaymentPaginatedList:
+ required: *ref_405
+ type: object
+ allOf: *ref_406
+ bankTransferPaymentRequest:
+ required: *ref_407
+ type: object
+ description: Object that contains information about the sale and the customer's bank details.
+ properties: *ref_408
+ bankTransferReferencedRefund:
+ required: *ref_409
+ type: object
+ description: Object that contains information about the payment that you want to refund.
+ properties: *ref_410
+ representment:
+ required: *ref_411
+ type: object
+ description: Object that contains the paymentMethod object.
+ properties: *ref_412
+ bankTransferRefundOrder:
+ description: Object that contains information about the order.
+ required: *ref_173
+ type: object
+ allOf: *ref_174
+ bankTransferRefund:
+ required: *ref_181
+ type: object
+ properties: *ref_182
+ bankTransferRefundPaginatedList:
+ required: *ref_413
+ type: object
+ allOf: *ref_414
+ bankTransferUnreferencedRefund:
+ required: *ref_415
+ type: object
+ properties: *ref_416
+ bankAccountVerificationRequest:
+ required: *ref_417
+ type: object
+ properties: *ref_418
+ bankAccountVerificationResult:
+ required: *ref_419
+ type: object
+ properties: *ref_420
+ legalAddress:
+ title: Legal address
+ required: *ref_421
+ allOf: *ref_422
+ business:
+ type: object
+ description: Object that contains information about the business.
+ title: business
+ required: *ref_188
+ properties: *ref_189
+ signatureByDirectLink:
+ title: Signature by direct link
+ description: We return a link to the pricing agreement in the response.
+ type: object
+ required: *ref_423
+ properties: *ref_424
+ signatureByEmail:
+ title: Signature by email
+ description: Owner's signature by email.
+ type: object
+ required: *ref_425
+ properties: *ref_426
+ signature:
+ type: object
+ description: Object containing the method we used to capture the owner's signature.
+ oneOf: *ref_196
+ merchantPlatform:
+ type: object
+ title: merchant
+ required: *ref_190
+ properties: *ref_191
+ paginatedMerchants:
+ type: object
+ title: paginated merchant platforms
+ allOf: *ref_427
+ processing:
+ type: object
+ title: processing
+ required: *ref_193
+ properties: *ref_194
+ commonFunding:
+ type: object
+ description: Object that contains information about the funding schedule of the processing account.
+ properties: *ref_195
+ createFunding:
+ type: object
+ allOf: *ref_428
+ pricingTemplate:
+ type: object
+ title: Pricing intent
+ required: *ref_429
+ properties: *ref_430
+ pricingAgreement:
+ type: object
+ title: Pricing agreement
+ allOf: *ref_431
+ pricing:
+ type: object
+ description: Object that contains pricing information.
+ oneOf: *ref_432
+ discriminator: *ref_433
+ contact:
+ type: object
+ title: contact
+ required: *ref_206
+ properties: *ref_207
+ createProcessingAccount:
+ required: *ref_197
+ type: object
+ properties: *ref_198
+ createMerchantAccount:
+ type: object
+ title: create merchant platform
+ required: *ref_434
+ properties: *ref_435
+ fundingAccountSummary:
+ type: object
+ title: funding account summary
+ properties: *ref_436
+ funding:
+ type: object
+ description: Object that contains funding information.
+ allOf: *ref_437
+ processingAccount:
+ required: *ref_199
+ type: object
+ properties: *ref_200
+ paginatedProcessingAccounts:
+ type: object
+ title: paginated processing accounts
+ allOf: *ref_438
+ paginatedContacts:
+ type: object
+ title: paginated Contacts
+ allOf: *ref_439
+ paginatedOwners:
+ type: object
+ title: paginated Owners
+ allOf: *ref_440
+ pricingAgreementReminder:
+ type: object
+ required: *ref_208
+ properties: *ref_209
+ examples:
+ paginatedFundRecipients:
+ summary: Paginated funding recipients.
+ description: Paginated list of funding recipients.
+ value: *ref_441
+ noActivity:
+ summary: No records found
+ description: Valid request, but no records match the criteria.
+ value: *ref_47
+ validatorError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_10
+ notAuthorized:
+ summary: Not Authorized
+ description: Your identity could not be verified
+ value: *ref_442
+ forbidden:
+ summary: Forbidden
+ description: You do not have the required permission
+ value: *ref_443
+ apiError:
+ summary: Api error
+ description: Unable to process your request.
+ value: *ref_444
+ idempotentKeyMissing:
+ summary: Idempotency key missing
+ description: Idempotency key must be supplied
+ value: *ref_23
+ kycCheckFailed:
+ summary: KYC check failed
+ description: KYC check failed
+ value: *ref_16
+ notAcceptable:
+ summary: Not acceptable
+ description: Requested representation not supported
+ value: *ref_445
+ idempotentKeyInUse:
+ summary: Idempotency key in use
+ description: Idempotency key in use
+ value: *ref_26
+ fundingRecipient:
+ summary: Funding recipient.
+ description: Funding recipients.
+ value: *ref_446
+ notFound:
+ summary: Not found
+ description: Resource could not be found
+ value: *ref_447
+ fundingAccounts:
+ summary: List of funding accounts
+ description: List of funding accounts.
+ value: *ref_448
+ fundingAccount:
+ summary: Funding account
+ description: Funding accounts.
+ value: *ref_449
+ listFundingAccountExample:
+ summary: Paginated funding accounts
+ value: *ref_450
+ noResults:
+ summary: No results found
+ description: No results found
+ value: *ref_451
+ fundingAccountExample:
+ summary: Masked funding account example.
+ value: *ref_452
+ retrievedOwner:
+ summary: Retrieve owner
+ description: Retrieve a specific owner.
+ value: *ref_453
+ updateOwner:
+ summary: Update owner
+ description: Update a specific owner.
+ value: *ref_454
+ paginatedPricingIntent:
+ summary: Paginated pricing intent
+ description: Example of a paginated pricing intent.
+ value: *ref_455
+ modifyPricingIntent:
+ summary: Create pricing intent
+ description: Create a pricing intent.
+ value: *ref_50
+ pricingIntent:
+ summary: Pricing intent
+ description: Pricing intent
+ value: *ref_49
+ patchPricingIntentRealistic:
+ summary: Partially update pricing intent
+ description: |
+ Partially update an existing pricing intent.
+
+ Structure your request to follow the RFC 6902 standard.
+ value: *ref_456
+ patchOperations:
+ summary: Example patch operations that apply the RFC 6902 standard
+ description: |
+ Example patch operations that apply the RFC 6902 standard.
+ value: *ref_457
+ listInstructionsExample:
+ summary: Paginated instructions list
+ value: *ref_458
+ parameterError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value: *ref_459
+ paginationError:
+ summary: Bad request
+ description: One or more validation errors occurred
+ value: *ref_460
+ outsideRecordRange:
+ summary: Bad request
+ description: Requested data outside allowed range.
+ value: *ref_461
+ newInstructionAccepted:
+ summary: New instruction accepted.
+ value: *ref_462
+ insufficientFunds:
+ summary: Insufficient funds
+ description: You do not have enough funds to complete the request.
+ value: *ref_52
+ fundingAccountsRestricted:
+ summary: Funding accounts restricted
+ description: Funding accounts restricted.
+ value: *ref_54
+ instructionIdError:
+ summary: Bad request
+ description: One or more validation errors occurred.
+ value: *ref_53
+ canNotBeModified:
+ summary: Cannot be modified
+ description: Resource cannot be modified.
+ value: *ref_55
+ listBalancesExample:
+ summary: Paginated list of merchant balances
+ description: Paginated list of merchant balances.
+ value: *ref_463
+ paginatedList:
+ summary: Paginated activity records
+ description: Valid payfac account with activity for date range.
+ value: *ref_464
+ paginatedBatches:
+ summary: Paginated batches
+ value: *ref_465
+ examples-parameterError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_61
+ examples-paginationError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_62
+ batchIdError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_57
+ paginatedTransactions:
+ summary: Paginated transactions
+ value: *ref_466
+ transactionIdError:
+ summary: Bad Request
+ description: One or more validation errors occurred
+ value: *ref_467
+ paginatedAuthorizations:
+ summary: Paginated authorizations
+ value: *ref_468
+ paginatedDisputes:
+ summary: Paginated disputes
+ value: *ref_469
+ paginatedPaymentPlan:
+ summary: Payment Plan
+ description: Payment Plan
+ value: *ref_470
+ paymentPlanRequest:
+ summary: Payment Plan
+ description: Payment Plan
+ value: *ref_471
+ paymentPlanResponse:
+ summary: Payment Plan
+ description: Payment Plan
+ value: *ref_76
+ resourceExists:
+ summary: Resource already exists
+ description: Resource already exists
+ value: *ref_472
+ unsupportedMediaType:
+ summary: Unsupported media type
+ description: The payload is in an unsupported format.
+ value: *ref_473
+ paginatedSubscription:
+ summary: Paginated Subscription
+ description: Example of Paginated Subscription
+ value: *ref_474
+ subscriptionRequest:
+ summary: Subscription
+ description: Subscription
+ value: *ref_475
+ subscriptionResponse:
+ summary: Subscription
+ description: Subscription
+ value: *ref_85
+ deactivateSubscription:
+ summary: Deactivate subscription
+ description: Deactivate a subscription
+ value: *ref_476
+ subscriptionPaymentRequest:
+ summary: Subscription manual payment
+ description: Subscription manual payment
+ value: *ref_477
+ subscriptionPaymentResponse:
+ summary: Subscription manual payment
+ description: Subscription manual payment
+ value: *ref_478
+ paginatedSecureToken:
+ summary: Paginated Secure Token
+ description: Paginated Secure Token
+ value: *ref_479
+ secureTokenRequest:
+ summary: Secure Token
+ description: Secure Token
+ value: *ref_480
+ secureTokenResponse:
+ summary: Secure Token
+ description: Secure Token
+ value: *ref_101
+ paginatedPayment:
+ summary: Payment
+ description: Payment
+ value: *ref_481
+ paymentRequest:
+ summary: Payment
+ description: Payment
+ value: *ref_482
+ paymentResponse:
+ summary: Payment
+ description: Payment
+ value: *ref_118
+ adjustPaymentRequest:
+ summary: Adjust Payment
+ description: Adjust Payment
+ value: *ref_483
+ adjustPaymentResponse:
+ summary: Adjust Payment
+ description: Adjust Payment
+ value: *ref_484
+ reversalPaymentRequest:
+ summary: Reversal Payment
+ description: Reversal Payment
+ value: *ref_485
+ reversalPaymentResponse:
+ summary: Reversal Payment
+ description: Reversal Payment
+ value: *ref_486
+ refundPaymentRequest:
+ summary: Refund Payment
+ description: Refund Payment
+ value: *ref_487
+ refundPaymentResponse:
+ summary: Refund Payment
+ description: Refund Payment
+ value: *ref_488
+ paymentInstructionRequest:
+ summary: Payment Instruction
+ description: Submit an instruction for initiating a payment on a physical device.
+ value: *ref_489
+ paymentInstructionInProgress:
+ summary: Payment instruction
+ description: Object that contains information about the progress of the payment instruction.
+ value: *ref_490
+ paymentInstruction:
+ summary: Payment instruction
+ description: Object that contains information about the progress of the payment instruction.
+ value: *ref_491
+ paginatedRefund:
+ summary: Paginated Refund
+ description: Paginated Refund
+ value: *ref_492
+ refundRequest:
+ summary: Refund
+ description: Refund
+ value: *ref_493
+ refundResponse:
+ summary: Refund
+ description: Refund
+ value: *ref_146
+ adjustRefundRequest:
+ summary: Adjust Refund
+ description: Adjust Refund
+ value: *ref_494
+ adjustRefundResponse:
+ summary: Adjust Refund
+ description: Adjust Refund
+ value: *ref_495
+ reverseRefund:
+ summary: Reverse Refund
+ description: Reverse Refund
+ value: *ref_496
+ refundInstructionRequest:
+ summary: Refund instruction
+ description: Submit an instruction for initiating a refund on a physical device.
+ value: *ref_497
+ refundInstructionInProgress:
+ summary: Refund instruction
+ description: Object that contains information about the progress of the refund instruction.
+ value: *ref_498
+ refundInstruction:
+ summary: Refund instruction
+ description: Object that contains information about the progress of the refund instruction.
+ value: *ref_499
+ cardVerificationRequest:
+ summary: Card Verification
+ description: Card Verification
+ value: *ref_500
+ cardVerificationResponse:
+ summary: Card Verification
+ description: Card Verification
+ value: *ref_501
+ cardBalanceRequest:
+ summary: Card Balance
+ description: Card Balance
+ value: *ref_502
+ cardBalanceResponse:
+ summary: Card Balance
+ description: Card Balance
+ value: *ref_503
+ binLookupRequest:
+ summary: BIN lookup
+ description: BIN lookup
+ value: *ref_504
+ binLookupResponse:
+ summary: BIN lookup
+ description: BIN lookup
+ value: *ref_505
+ fxRateRequest:
+ summary: Fx-Rate
+ description: Fx-Rate
+ value: *ref_506
+ fxRateResponse:
+ summary: Fx-Rate
+ description: Fx-Rate
+ value: *ref_507
+ paginatedBankTransferPayment:
+ summary: Bank Transfer Payment
+ description: Bank Transfer Payment
+ value: *ref_508
+ bankTransferPaymentRequestStoreToken:
+ summary: Store Token Bank Transfer Payment
+ description: Bank Transfer Payment with ACH payload and token storage
+ value: *ref_509
+ bankTransferPaymentResponseStoreToken:
+ summary: Store Token Bank Transfer Payment
+ description: Bank Transfer Payment with ACH payload and token storage
+ value: *ref_172
+ reverseBankTransferPayment:
+ summary: Reverse Bank Transfer Payment
+ description: Reverse Bank Transfer Payment
+ value: *ref_510
+ refundBankTransferPaymentRequest:
+ summary: Refund Bank Transfer Payment
+ description: Refund Bank Transfer Payment
+ value: *ref_511
+ refundBankTransferPaymentResponse:
+ summary: Reverse Bank Transfer Payment
+ description: Reverse Bank Transfer Payment
+ value: *ref_512
+ representmentBankTransferPaymentRequest:
+ summary: Representment Bank Transfer Payment
+ description: Representment Bank Transfer Payment
+ value: *ref_513
+ paginatedBankTransferUnreferencedRefund:
+ summary: Paginated Bank Transfer Unreferenced Refund
+ description: Paginated Bank Transfer Unreferenced Refund
+ value: *ref_514
+ bankTransferUnreferencedRefundRequest:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: *ref_515
+ bankTransferUnreferencedRefundResponse:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: *ref_183
+ reverseBankTransferUnreferencedRefund:
+ summary: Bank Transfer Unreferenced Refund
+ description: Bank Transfer Unreferenced Refund
+ value: *ref_516
+ bankAccountVerificationRequestPad:
+ summary: PAD Bank Account Verification Request
+ description: Bank Account Verification Request for PAD
+ value: *ref_517
+ bankAccountVerificationRequestAch:
+ summary: ACH Bank Account Verification Request
+ description: Bank Account Verification Request for ACH
+ value: *ref_518
+ bankAccountVerificationResponse:
+ summary: Bank Account Verification Response
+ description: Bank Account Verification Response
+ value: *ref_519
+ listMerchantPlatforms:
+ summary: Paginated list of merchant platforms
+ description: Retrieve a list of merchant platforms associated with your account.
+ value: *ref_520
+ createMerchantPlatform:
+ summary: Create merchant platform
+ description: Create a merchant platform.
+ value: *ref_521
+ merchantPlatformCreated:
+ summary: Created merchant platform
+ description: New merchant platform created
+ value: *ref_522
+ processingAccountFailed:
+ summary: Failed processing account
+ description: We successfully created the merchant platform, but failed to add one or more processing accounts.
+ value: *ref_523
+ fundingAccountsLimitReached:
+ summary: Funding accounts limit reached
+ description: Funding accounts restricted. You can not have any more than two funding accounts attached to this entity
+ value: *ref_201
+ tooManyControlProngs:
+ summary: Too many control prongs
+ description: Your request included more than one owner as the control prong. You can set only one owner as the control prong.
+ value: *ref_202
+ noControlProng:
+ summary: No control prong or authorized signatory
+ description: Your request didn’t indicate which owner is the control prong or the authorized signatory. Set one owner as the control prong or the authorized signatory.
+ value: *ref_203
+ dailyDiscountAndRewardPayConflict:
+ summary: Cannot select Daily Discount and RewardPay or RewardPayChoice at the same time.
+ description: You can't select Daily Discount with a RewardPay or RewardPayChoice pricing plan. To select Daily Discount, choose a different pricing plan.
+ value: *ref_204
+ taxIdInUse:
+ summary: Tax ID in use
+ description: The tax ID supplied is already in use.
+ value: *ref_524
+ nationalIdInUse:
+ summary: National ID in use
+ description: One or more supplied national IDs are not unique. All national IDs must be unique.
+ value: *ref_525
+ retrievedMerchantPlatforms:
+ summary: Retrieve merchant platform
+ description: Retrieve a merchant platform.
+ value: *ref_526
+ listProcessingAccounts:
+ summary: Paginated list of processing account
+ description: Retrieve processing accounts associated with a merchant platform.
+ value: *ref_527
+ createProcessingAccount:
+ summary: Create merchant platform
+ description: Create a merchant platform.
+ value: *ref_528
+ processingAccountCreated:
+ summary: Retrieve merchant platform
+ description: Retrieve a merchant platform.
+ value: *ref_529
+ retrieveProcessingAccount:
+ summary: Retrieve processing account
+ description: Retrieve a specific processing account.
+ value: *ref_530
+ listProcessingAccountFundingAccounts:
+ summary: List of funding accounts
+ description: List of funding accounts associated with a processing account.
+ value: *ref_531
+ listContactsPaginated:
+ summary: Paginated list of processing account contacts
+ description: List of contacts associated with a processing account.
+ value: *ref_532
+ retrieveProcessingAccountPricingAgreement:
+ summary: Get processing account pricing agreement
+ description: Retrieve a pricing agreement for a processing account.
+ value: *ref_533
+ listProcessingAccountOwners:
+ summary: Paginated list of processing account owners
+ description: Retrieve owners associated with a processing account.
+ value: *ref_534
+ createReminderForProcessingAccount:
+ summary: Create reminder for processing account
+ description: |
+ When you create a processing account, we send a copy of the pricing agreement to the merchant to sign. You can choose to send them a copy of the pricing agreement by email, or you can generate a link to the pricing agreement.
+ If you requested the merchant's signature by email and they don't respond, use our Reminders endpoint to create a reminder and to send another email.
+ **Note:** You can use the Reminders endpoint only if you request the merchant's signature by email. If you generate a link to the pricing agreement, you can't use the Reminders endpoint.
+ value: *ref_535
+ reminderCreated:
+ summary: ''
+ description: ''
+ value: *ref_536
+ notRequestedByEmail:
+ summary: Not requested by email
+ description: We couldn't resend the email to the merchant because you didn't originally choose to send the information by email.
+ value: *ref_537
+ contractAlreadySigned:
+ summary: Contract already signed
+ description: We couldn’t resend the email because the merchant already signed the contract.
+ value: *ref_538
+ noPricingAgreementExistsForTheProcessingAccount:
+ summary: No pricing agreement exists for the processing account
+ description: We couldn’t resend the email because there is no pricing agreement for the processing account.
+ value: *ref_539
+ contact:
+ summary: Contact object
+ description: Contact object
+ value: *ref_540
+ updateContact:
+ summary: Update contact
+ description: Update a specific contact.
+ value: *ref_541
+ responses:
+ '400':
+ description: Invalid request
+ content: *ref_14
+ '401':
+ description: Identity could not be verified
+ content: *ref_11
+ '403':
+ description: Do not have permissions to perform this action
+ content: *ref_12
+ '404':
+ description: Resource not found
+ content: *ref_17
+ '406':
+ description: Not acceptable
+ content: *ref_18
+ '409':
+ description: Conflict
+ content: *ref_79
+ '415':
+ description: Unsupported media type
+ content: *ref_80
+ '500':
+ description: An error has occured
+ content: *ref_13
+ headers:
+ location:
+ description: URI reference to created resource.
+ style: simple
+ explode: false
+ schema: *ref_22
+x-tagGroups:
+ - name: Boarding
+ tags:
+ - Contacts
+ - Merchant platforms
+ - Owners
+ - Pricing intents
+ - Processing accounts
+ - name: Payroc Cloud
+ tags:
+ - Payment instructions
+ - Refund instructions
+ - name: Payments
+ tags:
+ - Bank accounts
+ - Bank transfer payments
+ - Bank transfer refunds
+ - Cards
+ - Currency conversion
+ - Payments
+ - Payment plans
+ - Refunds
+ - Secure tokens
+ - Subscriptions
+ - name: Funding
+ tags:
+ - Funding accounts
+ - Funding instructions
+ - Funding recipients
+ - Funding activity
+ - name: Reporting
+ tags:
+ - Settlement
diff --git a/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj b/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
index 8ae8d083..870a7b61 100644
--- a/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
+++ b/test/WireMock.Net.Tests/WireMock.Net.Tests.csproj
@@ -128,6 +128,9 @@
PreserveNewest
+
+ PreserveNewest
+
PreserveNewest