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