openapi: 3.2.0 info: version: 1.0.0 title: Accrue Merchant Payments API x-links: - name: View Alternative Version url: /api-fs/ description: View API documentation with alternative enum-based WebhookIncluded schema description: Payments are the realization of payment intents, representing the actual transfer or authorization of funds. This resource encapsulates the details of completed transactions, including the payment status, amount, and any adjustments or refunds that have occurred post-initial authorization. Payments can have various statuses reflecting their current state, from pending to refunded, providing a comprehensive view of the transaction lifecycle. servers: - description: Production API url: https://merchant-api.accruesavings.com - description: Sandbox API url: https://merchant-api-sandbox.accruesavings.com tags: - name: Payments description: Payments are the realization of payment intents, representing the actual transfer or authorization of funds. This resource encapsulates the details of completed transactions, including the payment status, amount, and any adjustments or refunds that have occurred post-initial authorization. Payments can have various statuses reflecting their current state, from pending to refunded, providing a comprehensive view of the transaction lifecycle. paths: /api/v1/payments: post: operationId: createPayment tags: - Payments summary: Create Payment parameters: - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: $ref: '#/components/schemas/CreatePayment' required: - data responses: '200': description: OK content: application/vnd.api+json: schema: type: object properties: data: $ref: '#/components/schemas/CreatePaymentResponse' required: - data '400': description: Bad Request content: application/vnd.api+json: schema: $ref: '#/components/schemas/PaymentValidationResponse' '402': description: Payment Required. The authorization or capture was declined by the funding source. x-codeSamples: - lang: Shell source: "curl --request POST \\\n --url https://merchant-api.accruesavings.com/api/v1/payments \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments',\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"POST\", \"/api/v1/payments\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments\")\n .post(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments"); var request = new RestRequest(Method.POST); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" get: operationId: listPayments tags: - Payments summary: List Payments parameters: - schema: type: string description: Filter the list of objects by the value of the status field. required: false name: filter[status] in: query - schema: type: string description: Filter the list of objects by the value of the paymentIntentId field. required: false name: filter[paymentIntentId] in: query - schema: type: string description: Filter the list of objects by the value of the reference field. required: false name: filter[reference] in: query - schema: type: string description: Filter the list of objects by the value of the channel field. required: false name: filter[channel] in: query - schema: type: number minimum: 1 maximum: 50 default: 10 description: Maximum number of objects that will be returned. Can not be greater than 50. required: false name: page[limit] in: query - schema: type: number minimum: 0 default: 0 description: Offset from the beginning of the list of objects. Can not be negative. required: false name: page[offset] in: query - schema: type: string default: sort=-createdAt description: Sorts the list of objects by the given criteria. The sort parameter value is a comma separated list of sort criteria. Each sort criteria is a field name optionally followed by a minus sign (-) to indicate descending order. Ascending order is assumed if no minus sign is present. The sort criteria are applied in the order in which they appear in the sort parameter. required: false name: sort in: query - schema: type: string description: 'Comma-separated list of resources to include. Supported resources: `paymentIntent`,`captures`,`refunds`' required: true name: include in: query - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/ListPaymentsResponse' '400': description: Bad Request content: application/vnd.api+json: schema: $ref: '#/components/schemas/PaymentQueryValidationErrorResponse' x-codeSamples: - lang: Shell source: "curl --request GET \\\n --url 'https://merchant-api.accruesavings.com/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentIntentId%5D=SOME_STRING_VALUE&filter%5Breference%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments',\n qs: {\n 'filter[status]': 'SOME_STRING_VALUE',\n 'filter[paymentIntentId]': 'SOME_STRING_VALUE',\n 'filter[reference]': 'SOME_STRING_VALUE',\n 'filter[channel]': 'SOME_STRING_VALUE',\n 'page[limit]': 'SOME_NUMBER_VALUE',\n 'page[offset]': 'SOME_NUMBER_VALUE',\n sort: 'SOME_STRING_VALUE',\n include: 'SOME_STRING_VALUE'\n },\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"GET\", \"/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentIntentId%5D=SOME_STRING_VALUE&filter%5Breference%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentIntentId%5D=SOME_STRING_VALUE&filter%5Breference%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentIntentId%5D=SOME_STRING_VALUE&filter%5Breference%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE\")\n .get()\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentIntentId%5D=SOME_STRING_VALUE&filter%5Breference%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments?filter%5Bstatus%5D=SOME_STRING_VALUE&filter%5BpaymentIntentId%5D=SOME_STRING_VALUE&filter%5Breference%5D=SOME_STRING_VALUE&filter%5Bchannel%5D=SOME_STRING_VALUE&page%5Blimit%5D=SOME_NUMBER_VALUE&page%5Boffset%5D=SOME_NUMBER_VALUE&sort=SOME_STRING_VALUE&include=SOME_STRING_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments');\n$request->setMethod(HTTP_METH_GET);\n\n$request->setQueryData([\n 'filter[status]' => 'SOME_STRING_VALUE',\n 'filter[paymentIntentId]' => 'SOME_STRING_VALUE',\n 'filter[reference]' => 'SOME_STRING_VALUE',\n 'filter[channel]' => 'SOME_STRING_VALUE',\n 'page[limit]' => 'SOME_NUMBER_VALUE',\n 'page[offset]' => 'SOME_NUMBER_VALUE',\n 'sort' => 'SOME_STRING_VALUE',\n 'include' => 'SOME_STRING_VALUE'\n]);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}: get: operationId: getPayment tags: - Payments summary: Get a Payment parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string description: 'Comma-separated list of resources to include. Supported resources: `paymentIntent`,`refunds`' required: false name: include in: query - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetPaymentResponse' '404': description: Not Found content: application/vnd.api+json: schema: $ref: '#/components/schemas/PaymentAccessCheckNotFoundResponse' x-codeSamples: - lang: Shell source: "curl --request GET \\\n --url 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000',\n qs: {include: 'SOME_STRING_VALUE'},\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"GET\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE\")\n .get()\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000?include=SOME_STRING_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000');\n$request->setMethod(HTTP_METH_GET);\n\n$request->setQueryData([\n 'include' => 'SOME_STRING_VALUE'\n]);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" patch: operationId: updatePayment tags: - Payments summary: Update a payment parameters: - schema: type: string format: uuid description: Payment id required: true name: paymentId in: path - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header requestBody: required: true content: application/vnd.api+json: schema: type: object properties: id: type: string format: uuid description: Payment id type: type: string enum: - Payment attributes: type: object properties: reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN required: - id - type - attributes responses: '200': description: 200 OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/PaymentResponse' '404': description: Not Found content: application/vnd.api+json: schema: $ref: '#/components/schemas/PaymentAccessCheckNotFoundResponse' x-codeSamples: - lang: Shell source: "curl --request PATCH \\\n --url https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'PATCH',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D',\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"PATCH\", \"/api/v1/payments/%7BpaymentId%7D\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Patch.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D\")\n .patch(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D\"\n\n\treq, _ := http.NewRequest(\"PATCH\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D"); var request = new RestRequest(Method.PATCH); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/%7BpaymentId%7D');\n$request->setMethod(HttpRequest::HTTP_METH_PATCH);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}/card: get: operationId: getVirtualDebitCard tags: - Payments servers: - url: https://secure-api.accruesavings.com description: Production API - url: https://secure-api-sandbox.accruesavings.com description: Sandbox API summary: Get Virtual Debit Card description: 'The get virtual debit card endpoint can be used to fetch the card details for a payment. **This endpoint is available for Card Rails (Virtual Debit Cards) only**. Refer to the Merchant API Guide for more information.' parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetVirtualDebitCardResponse' '400': description: Bad Request content: application/vnd.api+json: schema: $ref: '#/components/schemas/GetVirtualDebitCardErrorResponse' '403': description: Forbidden content: application/vnd.api+json: schema: $ref: '#/components/schemas/ForbiddenForCardDetailsResponse' x-codeSamples: - lang: Shell source: "curl --request GET \\\n --url https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'GET',\n url: 'https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card',\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"secure-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"GET\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card\")\n .get()\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card"); var request = new RestRequest(Method.GET); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://secure-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card');\n$request->setMethod(HTTP_METH_GET);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}/capture: post: operationId: capturePayment tags: - Payments summary: Capture Payment parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: $ref: '#/components/schemas/CapturePayment' required: - data responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/CapturePaymentResponse' '402': description: Capture Failed x-codeSamples: - lang: Shell source: "curl --request POST \\\n --url https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture',\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"POST\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture\")\n .post(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture"); var request = new RestRequest(Method.POST); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/capture');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}/increase-authorization: patch: operationId: increaseAuthorization tags: - Payments summary: Increase Authorization Amount parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: $ref: '#/components/schemas/IncreaseAuthorization' required: - data responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/IncreasePaymentAuthorizationResponse' '402': description: Increase Authorization Failed x-codeSamples: - lang: Shell source: "curl --request PATCH \\\n --url https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'PATCH',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization',\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"PATCH\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Patch.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization\")\n .patch(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization\"\n\n\treq, _ := http.NewRequest(\"PATCH\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization"); var request = new RestRequest(Method.PATCH); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/increase-authorization');\n$request->setMethod(HttpRequest::HTTP_METH_PATCH);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}/cancel: post: operationId: cancelPayment tags: - Payments summary: Cancel Payment description: 'The cancel endpoint can be called on a `Payment` that is in the `Created` or `Waiting` status, otherwise it will return an error. A Payment will be in the `Waiting` status if you the capture endpoint has been called but the capture is in the waiting period before it is actually committed. Cancelling is always the full amount so there’s no support for partial amounts with cancel. The status of the payment will transition to `Canceled` **ONLY** after successfully calling the cancel endpoint. **For Card Rails (Virtual Debit Cards)**, this endpoint should only be called if the manual capture on your payment processor fails. Refer to Merchant API Guide for more information.' parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string description: 'Comma-separated list of resources to include. Supported resources: `paymentIntent`' required: false name: include in: query - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/CancelPaymentResponse' '400': description: Bad Request content: application/vnd.api+json: schema: $ref: '#/components/schemas/CancelPaymentErrorResponse' '404': description: Not Found content: application/vnd.api+json: schema: $ref: '#/components/schemas/PaymentNotFoundResponse' x-codeSamples: - lang: Shell source: "curl --request POST \\\n --url 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel',\n qs: {include: 'SOME_STRING_VALUE'},\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"POST\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE\")\n .post(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel?include=SOME_STRING_VALUE"); var request = new RestRequest(Method.POST); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setQueryData([\n 'include' => 'SOME_STRING_VALUE'\n]);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}/complete: post: operationId: completePayment tags: - Payments summary: Complete Payment description: 'Once you have capture all the funds from the Virtual Debit Card, you can call this endpoint to complete the payment. That will mark the payment as complete and remaining funds will be released back to the user. **This endpoint is available for Card Rails (Virtual Debit Cards) only**. Refer to Merchant API Guide for more information.' parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string description: 'Comma-separated list of resources to include. Supported resources: `paymentIntent`' required: false name: include in: query - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/CompletePaymentResponse' '402': description: Complete payment failed x-codeSamples: - lang: Shell source: "curl --request POST \\\n --url 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE' \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete',\n qs: {include: 'SOME_STRING_VALUE'},\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"POST\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE\")\n .post(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete?include=SOME_STRING_VALUE"); var request = new RestRequest(Method.POST); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/complete');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setQueryData([\n 'include' => 'SOME_STRING_VALUE'\n]);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" /api/v1/payments/{paymentId}/refund: post: operationId: refund tags: - Payments summary: Refund Payment description: 'The refund endpoint can be called on a `Payment` that is in the `Processing` or `Sent` status and has at least one successful capture. It supports partial refunds — the refund amount cannot exceed the captured amount, and the sum of all non-failed refunds cannot exceed the captured amount. Calling the refund endpoint will never change the status of the payment so the status of the payment cannot be used to determine if it has been refunded. When a `Payment` is refunded, an associated `Refund` object is created. The `Refund` object has an independent status representing the refund. The refund endpoint returns the `Refund` object created and can be included in the get payment endpoint. **Idempotency**: The `idempotencyKey` field is required to prevent duplicate refund operations. If a refund with the same key already exists, the existing refund will be returned. **Disbursements**: For pay-by-wallet refunds, you can optionally specify `disbursement` to indicate which counterparties to debit and for how much. The sum of disbursement amounts must equal the refund amount. If `disbursement` is omitted, the system automatically derives proportional disbursements from the original payment''s disbursement breakdown. The refund amount is distributed across the same counterparties using their original ratios. For full refunds the derived amounts match the original proportions exactly.' parameters: - schema: type: string format: uuid description: Payment ID example: 123e4567-e89b-12d3-a456-426614174000 required: true name: paymentId in: path - schema: type: string format: uuid description: The unique identifier of the client making the request. This header is required to retrieve the client-specific configuration and ensure that the response is tailored to the client's settings and permissions. example: 123e4567-e89b-12d3-a456-426614174000 required: true name: Client-ID in: header - schema: type: string format: uuid description: Secure secret to access privileged endpoints. example: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef required: true name: Authorization in: header requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: $ref: '#/components/schemas/RefundPayment' required: - data responses: '200': description: OK content: application/vnd.api+json: schema: $ref: '#/components/schemas/RefundPaymentResponse' '400': description: Bad Request. Also returned when the payment does not exist, or cannot be refunded for the requested amount. content: application/vnd.api+json: schema: $ref: '#/components/schemas/RefundValidationResponse' x-codeSamples: - lang: Shell source: "curl --request POST \\\n --url https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund \\\n --header 'Authorization: Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef' \\\n --header 'Client-ID: 123e4567-e89b-12d3-a456-426614174000'" - lang: Node source: "const request = require('request');\n\nconst options = {\n method: 'POST',\n url: 'https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund',\n headers: {\n 'Client-ID': '123e4567-e89b-12d3-a456-426614174000',\n Authorization: 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n }\n};\n\nrequest(options, function (error, response, body) {\n if (error) throw new Error(error);\n\n console.log(body);\n});\n" - lang: Python source: "import http.client\n\nconn = http.client.HTTPSConnection(\"merchant-api.accruesavings.com\")\n\nheaders = {\n 'Client-ID': \"123e4567-e89b-12d3-a456-426614174000\",\n 'Authorization': \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\"\n }\n\nconn.request(\"POST\", \"/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund\", headers=headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))" - lang: Ruby source: 'require ''uri'' require ''net/http'' require ''openssl'' url = URI("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["Client-ID"] = ''123e4567-e89b-12d3-a456-426614174000'' request["Authorization"] = ''Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'' response = http.request(request) puts response.read_body' - lang: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund\")\n .post(null)\n .addHeader(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n .addHeader(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io/ioutil\"\n)\n\nfunc main() {\n\n\turl := \"https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\treq.Header.Add(\"Client-ID\", \"123e4567-e89b-12d3-a456-426614174000\")\n\treq.Header.Add(\"Authorization\", \"Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}" - lang: Csharp source: 'var client = new RestClient("https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund"); var request = new RestRequest(Method.POST); request.AddHeader("Client-ID", "123e4567-e89b-12d3-a456-426614174000"); request.AddHeader("Authorization", "Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef"); IRestResponse response = client.Execute(request);' - lang: Php source: "setUrl('https://merchant-api.accruesavings.com/api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setHeaders([\n 'Client-ID' => '123e4567-e89b-12d3-a456-426614174000',\n 'Authorization' => 'Bearer 633b336e4f57f095a405f6685e208cc7dd16de3e82494662f2acfeec3af1cdef'\n]);\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}" components: schemas: RefundPayment: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - RefundPayment attributes: type: object properties: amount: type: integer description: Amount to refund in cents format: int32 idempotencyKey: type: string minLength: 1 maxLength: 255 description: A unique key to prevent duplicate refund operations. Must be between 1 and 255 characters. If a refund with the same idempotency key already exists, the existing refund will be returned. example: refund-order-12345 disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 remit: type: boolean description: Deprecated. This field is accepted but always treated as `true` regardless of the value provided. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount description: Optional array of disbursement reversals for pay-by-wallet refunds. Each entry specifies a counterparty to debit and the amount to reverse. The sum of all disbursement amounts must equal the refund amount. When omitted, the system automatically derives proportional disbursements from the original payment's disbursement breakdown. example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 500 - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 500 required: - amount - idempotencyKey required: - id - type - attributes description: RefundPayment x-tags: - Model CancelPaymentErrorResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - IllegalOperation description: A unique, camel-cased Accrue-specific code detailing the error. example: IllegalOperation title: type: string description: Generic title for the error. example: PaymentException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentException (code='IllegalOperation' message='Payment cannot be canceled in sent state' metaData=undefined) - PaymentException (code='IllegalOperation' message='Cannot cancel a captured payment' metaData=undefined) - PaymentException (code='IllegalOperation' message='Cannot cancel payment that is already approved' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel required: - id - status - code - title - detail - meta PaymentQueryValidationErrorResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - BadRequest description: A unique, camel-cased Accrue-specific code detailing the error. example: BadRequest title: type: string description: Generic title for the error. example: ValidationError detail: type: string description: A human-readable explanation providing more insights about the error. examples: - 'Validation failed for page[limit]: expected number' meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments required: - id - status - code - title - detail - meta PaymentValidationResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - InvalidPayment description: A unique, camel-cased Accrue-specific code detailing the error. example: InvalidPayment title: type: string description: Generic title for the error. example: PaymentValidationException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - Payment intent not found for the given payment. meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments required: - id - status - code - title - detail - meta WalletNotReadyForPaymentResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - InvalidWalletState description: A unique, camel-cased Accrue-specific code detailing the error. example: InvalidWalletState title: type: string description: Generic title for the error. example: PaymentException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentException (code='InvalidWalletState' message='Wallet not ready to accept payments' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - id - status - code - title - detail - meta Payment: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Payment attributes: type: object properties: id: type: string format: uuid example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 status: type: string enum: - Canceled - Created - Failed - Processing - Returned - Sent description: The current status of the payment. Each status indicates a specific phase in the payment process, such as waiting for authorization, being processed, or having been successfully completed or canceled. example: Sent amount: type: integer description: The total amount of the payment processed, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. This amount may differ from the initially intended amount due to adjustments, fees, or additional charges. format: int32 example: 9999 channel: type: - string - 'null' description: External system identifier used to identify the payment channel. E.g. App Name, Activity ID, Checkout Interface, etc. example: ORG-1 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 fee: type: integer description: The fee assigned to this particular disbursement based on the whole payment fee, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 deprecated: true example: 10 remit: type: boolean description: Deprecated. Always returns `true`. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount - fee - remit description: Array of disbursements associated with this payment, including counterparty IDs, amounts, and fees. example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 800 fee: 10 remit: true - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 200 fee: 5 remit: true charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 150 type: type: string description: Fee type identifier example: pay_by_wallet required: - amount - type description: Processing fee details rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 description: Charges applied to this payment. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 fees: type: integer minimum: 0 description: Processing fees charged, in cents format: int32 example: 150 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true expiresAt: type: string format: date-time description: The field indicates the date and time until which the payment is valid. After this date, the payment will either be automatically cancelled or completed. readOnly: true updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt relationships: type: object properties: paymentIntent: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - PaymentIntent required: - id - type links: type: object properties: self: type: string format: uri example: /api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08 required: - self required: - data - links required: - paymentIntent links: type: object properties: virtualDebitCard: type: string example: https://secure-api.accruesavings.com/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/card required: - virtualDebitCard required: - id - type - attributes - relationships - links description: A payment x-tags: - Model GetPaymentResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/Payment' - type: object properties: {} description: A payment x-tags: - Model included: type: array items: anyOf: - type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - PaymentIntent attributes: type: object properties: balance: allOf: - $ref: '#/components/schemas/PaymentIntentBalanceInformation' - description: Optional wallet balance information billingAddress: type: - object - 'null' properties: street: type: - string - 'null' street2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' required: - street - street2 - city - state - postalCode - country email: type: - string - 'null' format: email error: type: - string - 'null' enum: - LinkedAccountUnverified - LinkedAccountDisconnected - LinkedAccountMissing - InsufficientBalance - MissingFullName - WrongEmail - InvalidKycStatus description: Specific error associated with the current invalid status. expiresAt: type: - string - 'null' format: date-time description: The datetime at which the payment intent is set to expire. After this time, the intent cannot be promoted to a payment and is considered expired. readOnly: true fullName: type: - string - 'null' phoneNumber: type: - string - 'null' amount: type: integer description: Total purchase amount in cents. format: int32 example: 3600 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN status: type: string enum: - Promotable - PromotedToPayment - Invalid - Expired - Canceled description: The current status of the payment intent. Each status represents a different stage in the payment intent lifecycle, from creation to completion or cancellation. userId: type: - string - 'null' walletId: type: - string - 'null' description: The ID of the wallet for which the payment intent is created. example: 123e4567-e89b-12d3-a456-426614174000 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes - type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Refund attributes: type: object properties: status: type: string enum: - Failed - Pending - Sent - Waiting description: The current status of the refund. amount: type: integer description: The amount refunded, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 9999 message: type: string description: A human-readable message describing the refund status or outcome. example: 'Refund processed. Fee: 59 cents' reference: type: - string - 'null' description: Reference inherited from the parent Payment. This is not a direct field on the Refund entity. example: MERCHANT-GENERATED-TOKEN charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 59 type: type: string description: Fee type identifier. For refunds, this is `pay_by_wallet_refund`. example: pay_by_wallet_refund required: - amount - type description: Processing fee details for this refund rewards: type: integer minimum: 0 description: Rewards amount. Always 0 for refunds (rewards are not applicable to refunds). format: int32 example: 0 description: Charges applied to this refund. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount. Always 0 for refunds. format: int32 example: 0 fees: type: integer minimum: 0 description: Processing fees charged for this refund, in cents. Same value as `charges.fee.amount`. format: int32 example: 59 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true id: type: string format: uuid example: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes required: - data - included PaymentNotFoundResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 404 code: type: string enum: - PaymentNotFound description: A unique, camel-cased Accrue-specific code detailing the error. example: PaymentNotFound title: type: string description: Generic title for the error. example: PaymentNotFoundException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentNotFoundException (code='PaymentNotFound' message='Payment with ID '{paymentId}' not found.' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/cancel required: - id - status - code - title - detail - meta RefundValidationResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - InvalidRefund description: A unique, camel-cased Accrue-specific code detailing the error. example: InvalidRefund title: type: string description: Generic title for the error. example: PaymentValidationException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - The payment cannot be refunded for the requested amount. meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/refund required: - id - status - code - title - detail - meta PaymentAccessCheckNotFoundResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 404 code: type: string title: type: string description: Generic title for the error. example: NotFoundException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - 'NotFoundException: Not Found' meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000 required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000 required: - id - status - title - detail - meta IncreasePaymentAuthorizationResponse: type: object properties: data: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Payment attributes: type: object properties: id: type: string format: uuid example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 status: type: string enum: - Canceled - Created - Failed - Processing - Returned - Sent description: The current status of the payment. Each status indicates a specific phase in the payment process, such as waiting for authorization, being processed, or having been successfully completed or canceled. example: Authorized amount: type: integer format: int32 example: 10500 channel: type: - string - 'null' description: External system identifier used to identify the payment channel. E.g. App Name, Activity ID, Checkout Interface, etc. example: ORG-1 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 fee: type: integer description: The fee assigned to this particular disbursement based on the whole payment fee, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 deprecated: true example: 10 remit: type: boolean description: Deprecated. Always returns `true`. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount - fee - remit description: Array of disbursements associated with this payment, including counterparty IDs, amounts, and fees. example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 800 fee: 10 remit: true - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 200 fee: 5 remit: true charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 150 type: type: string description: Fee type identifier example: pay_by_wallet required: - amount - type description: Processing fee details rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 description: Charges applied to this payment. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 fees: type: integer minimum: 0 description: Processing fees charged, in cents format: int32 example: 150 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true expiresAt: type: string format: date-time description: The field indicates the date and time until which the payment is valid. After this date, the payment will either be automatically cancelled or completed. readOnly: true updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - amount - updatedAt - createdAt relationships: type: object properties: paymentIntent: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - PaymentIntent required: - id - type links: type: object properties: self: type: string format: uri example: /api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08 required: - self required: - data - links required: - paymentIntent required: - id - type - attributes - relationships links: type: object properties: self: type: string example: /api/v1/payments/4cf95060-dd01-42ac-9020-8ca42004920d/increase-authorization required: - self included: type: array items: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - PaymentIntent attributes: type: object properties: balance: allOf: - $ref: '#/components/schemas/PaymentIntentBalanceInformation' - description: Optional wallet balance information billingAddress: type: - object - 'null' properties: street: type: - string - 'null' street2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' required: - street - street2 - city - state - postalCode - country email: type: - string - 'null' format: email error: type: - string - 'null' enum: - LinkedAccountUnverified - LinkedAccountDisconnected - LinkedAccountMissing - InsufficientBalance - MissingFullName - WrongEmail - InvalidKycStatus description: Specific error associated with the current invalid status. expiresAt: type: - string - 'null' format: date-time description: The datetime at which the payment intent is set to expire. After this time, the intent cannot be promoted to a payment and is considered expired. readOnly: true fullName: type: - string - 'null' phoneNumber: type: - string - 'null' amount: type: integer description: Total purchase amount in cents. format: int32 example: 3600 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN status: type: string enum: - Promotable - PromotedToPayment - Invalid - Expired - Canceled description: The current status of the payment intent. Each status represents a different stage in the payment intent lifecycle, from creation to completion or cancellation. userId: type: - string - 'null' walletId: type: - string - 'null' description: The ID of the wallet for which the payment intent is created. example: 123e4567-e89b-12d3-a456-426614174000 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes required: - data - links - included CapturePaymentResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/Payment' - type: object properties: meta: type: object properties: processor: description: Opaque object reflecting the raw response from a third-party processor API call. The structure varies depending on which upstream call produced it and is not part of a stable, versioned contract. description: Optional metadata on the Payment resource. Omitted when no processor payload is attached to the response. description: A payment x-tags: - Model links: type: object properties: self: type: string example: /api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/capture required: - self included: type: array items: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - PaymentIntent attributes: type: object properties: balance: allOf: - $ref: '#/components/schemas/PaymentIntentBalanceInformation' - description: Optional wallet balance information billingAddress: type: - object - 'null' properties: street: type: - string - 'null' street2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' required: - street - street2 - city - state - postalCode - country email: type: - string - 'null' format: email error: type: - string - 'null' enum: - LinkedAccountUnverified - LinkedAccountDisconnected - LinkedAccountMissing - InsufficientBalance - MissingFullName - WrongEmail - InvalidKycStatus description: Specific error associated with the current invalid status. expiresAt: type: - string - 'null' format: date-time description: The datetime at which the payment intent is set to expire. After this time, the intent cannot be promoted to a payment and is considered expired. readOnly: true fullName: type: - string - 'null' phoneNumber: type: - string - 'null' amount: type: integer description: Total purchase amount in cents. format: int32 example: 3600 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN status: type: string enum: - Promotable - PromotedToPayment - Invalid - Expired - Canceled description: The current status of the payment intent. Each status represents a different stage in the payment intent lifecycle, from creation to completion or cancellation. userId: type: - string - 'null' walletId: type: - string - 'null' description: The ID of the wallet for which the payment intent is created. example: 123e4567-e89b-12d3-a456-426614174000 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes required: - data - links - included RefundPaymentResponse: type: object properties: data: type: object properties: id: type: string example: 123e4567-e89b-12d3-a456-426614174000 type: type: string enum: - Payment relationships: type: object properties: paymentIntent: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - PaymentIntent required: - id - type links: type: object properties: self: type: string format: uri example: /api/v1/payment-intents/497f6eca-6276-4993-bfeb-53cbbbba6f08 required: - self required: - data - links refunds: type: object properties: data: type: array items: type: object properties: id: type: string type: type: string required: - id - type example: - id: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 type: Refund required: - data captures: type: object properties: data: type: array items: type: object properties: id: type: string type: type: string required: - id - type example: - id: 4cf95060-dd01-42ac-9020-8ca42004920d type: Capture required: - data required: - paymentIntent - refunds - captures links: type: object properties: virtualDebitCard: type: string example: https://secure-api.accruesavings.com/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/card required: - virtualDebitCard meta: type: object properties: processor: description: Opaque object reflecting the raw response from a third-party processor API call. The structure varies depending on which upstream call produced it and is not part of a stable, versioned contract. description: Optional metadata on the Payment resource. Omitted when no processor payload is attached to the response. attributes: type: object properties: id: type: string example: 123e4567-e89b-12d3-a456-426614174000 status: type: string enum: - Canceled - Created - Failed - Processing - Returned - Sent description: The current status of the payment. Each status indicates a specific phase in the payment process, such as waiting for authorization, being processed, or having been successfully completed or canceled. example: Sent amount: type: integer description: The total amount of the payment processed, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. This amount may differ from the initially intended amount due to adjustments, fees, or additional charges. format: int32 example: 9999 channel: type: - string - 'null' description: External system identifier used to identify the payment channel. E.g. App Name, Activity ID, Checkout Interface, etc. example: ORG-1 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 fee: type: integer description: The fee assigned to this particular disbursement based on the whole payment fee, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 deprecated: true example: 10 remit: type: boolean description: Deprecated. Always returns `true`. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount - fee - remit description: Array of disbursements associated with this payment, including counterparty IDs, amounts, and fees. example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 800 fee: 10 remit: true - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 200 fee: 5 remit: true charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 150 type: type: string description: Fee type identifier example: pay_by_wallet required: - amount - type description: Processing fee details rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 description: Charges applied to this payment. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 fees: type: integer minimum: 0 description: Processing fees charged, in cents format: int32 example: 150 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true expiresAt: type: string format: date-time description: The field indicates the date and time until which the payment is valid. After this date, the payment will either be automatically cancelled or completed. readOnly: true updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - id - updatedAt - createdAt required: - id - type - relationships - links - attributes links: type: object properties: self: type: string example: /api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/refund required: - self included: type: array items: anyOf: - $ref: '#/components/schemas/Refund' - type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - PaymentIntent attributes: type: object properties: balance: allOf: - $ref: '#/components/schemas/PaymentIntentBalanceInformation' - description: Optional wallet balance information billingAddress: type: - object - 'null' properties: street: type: - string - 'null' street2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' required: - street - street2 - city - state - postalCode - country email: type: - string - 'null' format: email error: type: - string - 'null' enum: - LinkedAccountUnverified - LinkedAccountDisconnected - LinkedAccountMissing - InsufficientBalance - MissingFullName - WrongEmail - InvalidKycStatus description: Specific error associated with the current invalid status. expiresAt: type: - string - 'null' format: date-time description: The datetime at which the payment intent is set to expire. After this time, the intent cannot be promoted to a payment and is considered expired. readOnly: true fullName: type: - string - 'null' phoneNumber: type: - string - 'null' amount: type: integer description: Total purchase amount in cents. format: int32 example: 3600 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN status: type: string enum: - Promotable - PromotedToPayment - Invalid - Expired - Canceled description: The current status of the payment intent. Each status represents a different stage in the payment intent lifecycle, from creation to completion or cancellation. userId: type: - string - 'null' walletId: type: - string - 'null' description: The ID of the wallet for which the payment intent is created. example: 123e4567-e89b-12d3-a456-426614174000 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt relationships: type: object properties: client: type: object properties: data: type: object properties: id: type: string type: type: string enum: - Client required: - id - type required: - data required: - client required: - id - type - attributes - relationships - $ref: '#/components/schemas/Capture' - $ref: '#/components/schemas/Client' example: - id: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 type: Refund attributes: status: Sent amount: 1000 message: 'Refund processed. Fee: 59 cents' reference: MERCHANT-GENERATED-TOKEN charges: fee: amount: 59 type: pay_by_wallet_refund rewards: 0 deductions: rewards: 0 fees: 59 id: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 createdAt: '2024-06-19T12:19:17.031Z' updatedAt: '2024-06-19T12:19:17.064Z' - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 type: PaymentIntent attributes: status: PromotedToPayment amount: 9999 id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 expiresAt: '2024-12-19T10:39:59.447Z' createdAt: '2024-06-19T10:39:59.452Z' updatedAt: '2024-06-19T10:43:59.337Z' relationships: client: data: id: b5f8c9d2-1a3e-4f5b-8c7d-9e0f1a2b3c4d type: Client - id: 4cf95060-dd01-42ac-9020-8ca42004920d type: Capture attributes: id: 4cf95060-dd01-42ac-9020-8ca42004920d createdAt: '2024-06-19T12:00:00.000Z' updatedAt: '2024-06-19T12:00:00.000Z' method: Direct amount: 9999 - id: b5f8c9d2-1a3e-4f5b-8c7d-9e0f1a2b3c4d type: Client attributes: id: b5f8c9d2-1a3e-4f5b-8c7d-9e0f1a2b3c4d createdAt: '2024-01-01T00:00:00.000Z' updatedAt: '2024-06-19T10:00:00.000Z' allowedOrigins: - https://example.com preferredStorage: Web: localStorage merchantId: 123e4567-e89b-12d3-a456-426614174000 merchantName: Example Merchant containerPlacements: {} containerDisplayRules: {} containerIntegrityEffects: {} copyAdjustments: {} rewardsFlowType: Instant rewardsRateType: Purchase widgetCustomizations: {} meta: type: object properties: message: type: string example: Full refund will be initiated after the original payment is successfully received. required: - message required: - data - links - included - meta ListPaymentsResponse: type: object properties: data: type: array items: allOf: - $ref: '#/components/schemas/Payment' - type: object properties: links: type: object properties: self: type: string example: https://merchant-api.accruesavings.com/api/v1/payments virtualDebitCard: type: string example: https://secure-api.accruesavings.com/api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/card required: - self - virtualDebitCard description: A payment x-tags: - Model meta: type: object properties: total: type: number example: 1 limit: type: number example: 10 offset: type: number example: 0 required: - total - limit - offset required: - data - meta CompletePaymentResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/Payment' - type: object properties: {} description: A payment x-tags: - Model links: type: object properties: self: type: string example: /api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/complete required: - self included: type: array items: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - PaymentIntent attributes: type: object properties: balance: allOf: - $ref: '#/components/schemas/PaymentIntentBalanceInformation' - description: Optional wallet balance information billingAddress: type: - object - 'null' properties: street: type: - string - 'null' street2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' required: - street - street2 - city - state - postalCode - country email: type: - string - 'null' format: email error: type: - string - 'null' enum: - LinkedAccountUnverified - LinkedAccountDisconnected - LinkedAccountMissing - InsufficientBalance - MissingFullName - WrongEmail - InvalidKycStatus description: Specific error associated with the current invalid status. expiresAt: type: - string - 'null' format: date-time description: The datetime at which the payment intent is set to expire. After this time, the intent cannot be promoted to a payment and is considered expired. readOnly: true fullName: type: - string - 'null' phoneNumber: type: - string - 'null' amount: type: integer description: Total purchase amount in cents. format: int32 example: 3600 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN status: type: string enum: - Promotable - PromotedToPayment - Invalid - Expired - Canceled description: The current status of the payment intent. Each status represents a different stage in the payment intent lifecycle, from creation to completion or cancellation. userId: type: - string - 'null' walletId: type: - string - 'null' description: The ID of the wallet for which the payment intent is created. example: 123e4567-e89b-12d3-a456-426614174000 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes required: - data - links - included CreatePaymentResponse: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Payment attributes: type: object properties: id: type: string format: uuid example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 status: type: string enum: - Canceled - Created - Failed - Processing - Returned - Sent description: The current status of the payment. Each status indicates a specific phase in the payment process, such as waiting for authorization, being processed, or having been successfully completed or canceled. example: Processing amount: type: integer description: The total amount of the payment processed, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. This amount may differ from the initially intended amount due to adjustments, fees, or additional charges. format: int32 example: 9999 channel: type: - string - 'null' description: External system identifier used to identify the payment channel. E.g. App Name, Activity ID, Checkout Interface, etc. example: ORG-1 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 fee: type: integer description: The fee assigned to this particular disbursement based on the whole payment fee, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 deprecated: true example: 10 remit: type: boolean description: Deprecated. Always returns `true`. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount - fee - remit description: Array of disbursements associated with this payment, including counterparty IDs, amounts, and fees. example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 800 fee: 10 remit: true - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 200 fee: 5 remit: true charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 150 type: type: string description: Fee type identifier example: pay_by_wallet required: - amount - type description: Processing fee details rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 description: Charges applied to this payment. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 fees: type: integer minimum: 0 description: Processing fees charged, in cents format: int32 example: 150 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true expiresAt: type: string format: date-time description: The field indicates the date and time until which the payment is valid. After this date, the payment will either be automatically cancelled or completed. readOnly: true updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes Client: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Client attributes: type: object properties: id: type: string format: uuid allowedOrigins: type: array items: type: string description: Allowed origins for this client. preferredStorage: type: object properties: Web: type: string enum: - localStorage - sessionStorage RN: type: string enum: - localStorage - sessionStorage description: Preferred storage type. merchantId: type: string format: uuid description: The merchant ID associated with this client. merchantName: type: string description: The merchant name. programName: type: string description: The program name. cardClearingTime: type: string enum: - Instant - TwoDays - ThreeDays - FourDays - FiveDays - Default description: Card clearing time. One of Instant, TwoDays, ThreeDays, FourDays, FiveDays, Default. achClearingTime: type: string enum: - Instant - TwoDays - ThreeDays - FourDays - FiveDays - Default description: ACH clearing time. One of Instant, TwoDays, ThreeDays, FourDays, FiveDays, Default. containerPlacements: type: object properties: Wallet: type: array items: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant PaymentMethods: type: array items: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant WalletBalance: type: array items: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant WalletRewards: type: array items: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant WalletPaymentSuccess: type: array items: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant description: Container placements per Flow (Wallet, PaymentMethods) and Widget (WalletBalance, WalletRewards, WalletPaymentSuccess). Every key is optional. containerDisplayRules: type: object properties: Wallet: type: array items: type: object properties: order: type: integer expectedResult: type: string enum: - show - hide lookupPlace: type: string enum: - url - document lookupType: type: string enum: - string - regex - selector lookupValue: type: string placementOverride: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant required: - order - expectedResult - lookupPlace - lookupType - lookupValue PaymentMethods: type: array items: type: object properties: order: type: integer expectedResult: type: string enum: - show - hide lookupPlace: type: string enum: - url - document lookupType: type: string enum: - string - regex - selector lookupValue: type: string placementOverride: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant required: - order - expectedResult - lookupPlace - lookupType - lookupValue WalletBalance: type: array items: type: object properties: order: type: integer expectedResult: type: string enum: - show - hide lookupPlace: type: string enum: - url - document lookupType: type: string enum: - string - regex - selector lookupValue: type: string placementOverride: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant required: - order - expectedResult - lookupPlace - lookupType - lookupValue WalletRewards: type: array items: type: object properties: order: type: integer expectedResult: type: string enum: - show - hide lookupPlace: type: string enum: - url - document lookupType: type: string enum: - string - regex - selector lookupValue: type: string placementOverride: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant required: - order - expectedResult - lookupPlace - lookupType - lookupValue WalletPaymentSuccess: type: array items: type: object properties: order: type: integer expectedResult: type: string enum: - show - hide lookupPlace: type: string enum: - url - document lookupType: type: string enum: - string - regex - selector lookupValue: type: string placementOverride: type: object properties: type: type: string enum: - background - selector - css value: anyOf: - type: string - type: array items: type: string - type: object additionalProperties: {} variant: type: string enum: - Inline - Popup - Redirect isDefault: type: boolean isFixedPositionPlacement: type: boolean required: - type - value - variant required: - order - expectedResult - lookupPlace - lookupType - lookupValue description: Container display rules per Flow and Widget. Every key is optional. containerIntegrityEffects: type: object properties: Wallet: type: array items: type: string enum: - EnsureContainerPersistence - LimitChildrenCount PaymentMethods: type: array items: type: string enum: - EnsureContainerPersistence - LimitChildrenCount WalletBalance: type: array items: type: string enum: - EnsureContainerPersistence - LimitChildrenCount WalletRewards: type: array items: type: string enum: - EnsureContainerPersistence - LimitChildrenCount WalletPaymentSuccess: type: array items: type: string enum: - EnsureContainerPersistence - LimitChildrenCount description: Container integrity effects per Flow and Widget. Every key is optional. copyAdjustments: type: object properties: balanceSuccessIcon: type: string balanceSuccessMessage: type: string description: Optional copy overrides. rewardsFlowType: type: string enum: - Delayed - Instant description: Rewards flow type. One of Delayed, Instant. rewardsRateType: type: string enum: - Savings - Purchase description: Rewards rate type. One of Savings, Purchase. widgetCustomizations: type: object properties: walletIconUrl: type: string togglePosition: type: string enum: - left - right toggleStyle: type: string enum: - switch - checkbox showToggleStatus: type: boolean textStyle: type: string enum: - small - smallSemibold paymentSuccessTitle: type: string paymentSuccessDescription: type: string paymentWalletButtonType: type: string enum: - button - link paymentWalletButtonText: type: string rewardsBackgroundColor: type: string rewardsCopyColor: type: string balanceBreakdownPadding: type: string enum: - auto - tiny - small - medium rewardsBadgeSignedOutLabel: type: string description: Partial widget customization overrides. Every field is optional. rewardProfile: type: object properties: level1pct: type: number level2pct: type: number level3pct: type: number required: - level1pct - level2pct - level3pct description: Reward profile with percentage levels. onBoardingReward: type: number description: Onboarding reward amount. purchaseReward: type: number description: Purchase reward amount. updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - id - allowedOrigins - preferredStorage - merchantId - merchantName - containerPlacements - containerDisplayRules - containerIntegrityEffects - copyAdjustments - rewardsFlowType - rewardsRateType - widgetCustomizations - updatedAt - createdAt required: - id - type - attributes description: A client included in the refund response x-tags: - Model InvalidPaymentForCardDetailsResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - InvalidPayment description: A unique, camel-cased Accrue-specific code detailing the error. example: InvalidPayment title: type: string description: Generic title for the error. example: PaymentException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentException (code='InvalidPayment' message='Payment is not in a state where card details can be retrieved' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - id - status - code - title - detail - meta ForbiddenForCardDetailsResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 403 code: type: string enum: - AccessDenied description: A unique, camel-cased Accrue-specific code detailing the error. example: AccessDenied title: type: string description: Generic title for the error. example: PaymentException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentException (code='AccessDenied' message='You are not allowed to access this card' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - id - status - code - title - detail - meta PaymentResponse: type: object properties: data: $ref: '#/components/schemas/Payment' required: - data CreatePayment: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - CreatePayment attributes: type: object properties: walletId: type: string format: uuid description: Wallet ID example: 123e4567-e89b-12d3-a456-426614174000 amount: type: integer description: Amount to capture in cents format: int32 example: 1000 linkedAccountId: type: string format: uuid description: The ID of the linked account to use for funding this payment. example: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 channel: type: - string - 'null' description: External system identifier used to identify the payment channel. E.g. App Name, Activity ID, Checkout Interface, etc. example: ORG-1 reference: type: - string - 'null' description: Reference to the payment inside an external system. E.g. Cart ID. example: cart-123 externalPayments: type: array items: type: object properties: amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 method: type: string enum: - Cash - DebitCard - CreditCard - Wire - GiftCard - Wallet - Other - Unknown default: Unknown description: The method used for the split payment. required: - amount example: - method: Cash amount: 100 disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 remit: type: boolean description: Deprecated. This field is accepted but always treated as `true` regardless of the value provided. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 800 - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 200 remit: true required: - walletId - amount required: - id - type - attributes description: CreatePayment x-tags: - Model GetVirtualDebitCardErrorResponse: anyOf: - $ref: '#/components/schemas/InvalidPaymentIntentForCardDetailsResponse' - $ref: '#/components/schemas/InvalidPaymentForCardDetailsResponse' - $ref: '#/components/schemas/PaymentNotFoundForCardDetailsResponse' - $ref: '#/components/schemas/WalletNotReadyForPaymentResponse' Refund: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Refund attributes: type: object properties: status: type: string enum: - Failed - Pending - Sent - Waiting description: The current status of the refund. amount: type: integer description: The amount refunded, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 9999 message: type: string description: A human-readable message describing the refund status or outcome. example: 'Refund processed. Fee: 59 cents' reference: type: - string - 'null' description: Reference inherited from the parent Payment. This is not a direct field on the Refund entity. example: MERCHANT-GENERATED-TOKEN charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 59 type: type: string description: Fee type identifier. For refunds, this is `pay_by_wallet_refund`. example: pay_by_wallet_refund required: - amount - type description: Processing fee details for this refund rewards: type: integer minimum: 0 description: Rewards amount. Always 0 for refunds (rewards are not applicable to refunds). format: int32 example: 0 description: Charges applied to this refund. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount. Always 0 for refunds. format: int32 example: 0 fees: type: integer minimum: 0 description: Processing fees charged for this refund, in cents. Same value as `charges.fee.amount`. format: int32 example: 59 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true id: type: string format: uuid example: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes description: A refund x-tags: - Model PaymentNotFoundForCardDetailsResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - PaymentNotFound description: A unique, camel-cased Accrue-specific code detailing the error. example: PaymentNotFound title: type: string description: Generic title for the error. example: PaymentException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentException (code='PaymentNotFound' message='Wallet not found for the given payment' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - id - status - code - title - detail - meta InvalidPaymentIntentForCardDetailsResponse: type: object properties: id: type: string format: uuid description: A unique UUID for this particular occurrence of the problem. example: 123e4567-e89b-12d3-a456-426614174000 status: type: integer description: The HTTP status code applicable to this error. example: 400 code: type: string enum: - InvalidPaymentIntent description: A unique, camel-cased Accrue-specific code detailing the error. example: InvalidPaymentIntent title: type: string description: Generic title for the error. example: PaymentException detail: type: string description: A human-readable explanation providing more insights about the error. examples: - PaymentException (code='InvalidPaymentIntent' message='Payment Intent cannot be used to get card details' metaData=undefined) meta: type: object properties: environment: type: string enum: - production - sandbox example: sandbox timestamp: type: string format: date-time example: '2025-06-23T12:00:00.000Z' path: type: string example: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - environment - timestamp - path example: environment: sandbox timestamp: '2025-06-23T12:00:00.000Z' path: /api/v1/payments/123e4567-e89b-12d3-a456-426614174000/card required: - id - status - code - title - detail - meta IncreaseAuthorization: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - IncreaseAuthorization attributes: type: object properties: increase: type: integer description: Amount to increase in cents format: int32 required: - increase required: - id - type - attributes description: IncreaseAuthorization x-tags: - Model CapturePayment: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - CapturePayment attributes: type: object properties: amount: type: integer description: Amount to capture in cents format: int32 required: - amount required: - id - type - attributes description: CapturePayment x-tags: - Model VirtualDebitCard: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - VirtualDebitCard attributes: type: object properties: number: type: string description: The card number. example: card_12a3b45cdefghi expirationMonth: type: string description: The card expiration month. example: '6' expirationYear: type: string description: The card expiration year. example: '2028' cvc: type: string description: The virtual card security code. example: '123' billingAddress: type: object properties: street: type: string description: The billing address line 1. example: 123 Main St. street2: type: string description: The billing address line 2. example: Apt. 1 city: type: string description: The billing address city. example: San Francisco state: type: string description: The billing address state. example: CA postalCode: type: string description: The billing address postal code. example: '94107' country: type: string description: The billing address country. example: US required: - street - city - state - postalCode - country required: - number - expirationMonth - expirationYear - cvc - billingAddress relationships: type: object properties: payment: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - Payment required: - id - type required: - data paymentIntent: type: object properties: data: type: object properties: id: type: string format: uuid type: type: string enum: - PaymentIntent required: - id - type required: - data required: - payment - paymentIntent required: - id - type - attributes - relationships description: A virtual debit card x-tags: - Model Capture: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - Capture attributes: type: object properties: id: type: string format: uuid method: type: string enum: - Direct - BankRails - VirtualDebitCard description: The method used for the capture. amount: type: integer description: The captured amount in cents. format: int32 externalPayments: type: object additionalProperties: {} description: Optional external payment references. reference: type: - string - 'null' description: Optional reference string. updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - id - method - amount - updatedAt - createdAt required: - id - type - attributes description: A capture included in the refund response x-tags: - Model GetVirtualDebitCardResponse: type: object properties: data: $ref: '#/components/schemas/VirtualDebitCard' required: - data PaymentIntentBalanceInformation: type: object properties: available: type: integer description: Available wallet balance in cents format: int32 example: 1500 eligibleReward: type: integer description: Eligible reward amount for this transaction in cents format: int32 example: 500 upperLimit: type: integer description: Maximum checkout amount supported for this purchase, in cents format: int32 example: 103600 required: - available - eligibleReward - upperLimit description: Balance for this payment intent. `available` is the remaining spendable amount in cents (gift remaining for a gift lookUpId, or wallet available for a wallet). x-tags: - Model CancelPaymentResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/Payment' - type: object properties: attributes: type: object properties: id: type: string format: uuid example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 status: type: string enum: - Canceled - Created - Failed - Processing - Returned - Sent description: The current status of the payment. Each status indicates a specific phase in the payment process, such as waiting for authorization, being processed, or having been successfully completed or canceled. example: Canceled amount: type: integer description: The total amount of the payment processed, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. This amount may differ from the initially intended amount due to adjustments, fees, or additional charges. format: int32 example: 9999 channel: type: - string - 'null' description: External system identifier used to identify the payment channel. E.g. App Name, Activity ID, Checkout Interface, etc. example: ORG-1 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN disbursement: type: array items: type: object properties: counterpartyId: type: string format: uuid description: The ID of the counterparty to whom the funds are being disbursed. example: 497f6eca-6276-4993-bfeb-53cbbbba6f08 amount: type: integer description: The total amount charged with a particular payment method, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 example: 1337 fee: type: integer description: The fee assigned to this particular disbursement based on the whole payment fee, represented in the smallest currency unit (e.g., cents for USD). To obtain the value in dollars, divide by 100. format: int32 deprecated: true example: 10 remit: type: boolean description: Deprecated. Always returns `true`. All disbursements are remitted directly. Will be removed in a future version. example: true deprecated: true required: - counterpartyId - amount - fee - remit description: Array of disbursements associated with this payment, including counterparty IDs, amounts, and fees. example: - counterpartyId: 9f755746-13cb-4d0b-81f2-3b4f1b44f6d8 amount: 800 fee: 10 remit: true - counterpartyId: 4cf95060-dd01-42ac-9020-8ca42004920d amount: 200 fee: 5 remit: true charges: type: object properties: fee: type: object properties: amount: type: integer minimum: 0 description: Fee amount in cents format: int32 example: 150 type: type: string description: Fee type identifier example: pay_by_wallet required: - amount - type description: Processing fee details rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 description: Charges applied to this payment. deductions: type: object properties: rewards: type: integer minimum: 0 description: Rewards amount spent from wallet balance, in cents format: int32 example: 1000 fees: type: integer minimum: 0 description: Processing fees charged, in cents format: int32 example: 150 required: - rewards - fees description: Legacy charges breakdown. Use `charges` instead. deprecated: true expiresAt: type: string format: date-time description: The field indicates the date and time until which the payment is valid. After this date, the payment will either be automatically cancelled or completed. readOnly: true updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt meta: type: object properties: processor: description: Opaque object reflecting the raw response from a third-party processor API call. The structure varies depending on which upstream call produced it and is not part of a stable, versioned contract. description: Optional metadata on the Payment resource. Omitted when no processor payload is attached to the response. description: A payment x-tags: - Model links: type: object properties: self: type: string example: /api/v1/payments/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel required: - self included: type: array items: type: object properties: id: type: string format: uuid description: Unique identifier for the object. readOnly: true type: type: string enum: - PaymentIntent attributes: type: object properties: balance: allOf: - $ref: '#/components/schemas/PaymentIntentBalanceInformation' - description: Optional wallet balance information billingAddress: type: - object - 'null' properties: street: type: - string - 'null' street2: type: - string - 'null' city: type: - string - 'null' state: type: - string - 'null' postalCode: type: - string - 'null' country: type: - string - 'null' required: - street - street2 - city - state - postalCode - country email: type: - string - 'null' format: email error: type: - string - 'null' enum: - LinkedAccountUnverified - LinkedAccountDisconnected - LinkedAccountMissing - InsufficientBalance - MissingFullName - WrongEmail - InvalidKycStatus description: Specific error associated with the current invalid status. expiresAt: type: - string - 'null' format: date-time description: The datetime at which the payment intent is set to expire. After this time, the intent cannot be promoted to a payment and is considered expired. readOnly: true fullName: type: - string - 'null' phoneNumber: type: - string - 'null' amount: type: integer description: Total purchase amount in cents. format: int32 example: 3600 reference: type: - string - 'null' description: Reference to the data inside an external system. example: MERCHANT-GENERATED-TOKEN status: type: string enum: - Promotable - PromotedToPayment - Invalid - Expired - Canceled description: The current status of the payment intent. Each status represents a different stage in the payment intent lifecycle, from creation to completion or cancellation. userId: type: - string - 'null' walletId: type: - string - 'null' description: The ID of the wallet for which the payment intent is created. example: 123e4567-e89b-12d3-a456-426614174000 updatedAt: type: string format: date-time readOnly: true createdAt: type: string format: date-time readOnly: true required: - updatedAt - createdAt required: - id - type - attributes required: - data - links - included x-tagGroups: - name: Overview tags: - Introduction - API Design - name: Users tags: - Users - LinkedAccounts - Identity Verification - name: Wallets tags: - Wallets - name: Gifts tags: - Gifts - name: Payments tags: - PaymentIntents - Payments - ExternalTransactions - Simulations - name: Banking & KYC tags: - Banking - Counterparties - CounterpartyTransfers - name: Sweepstakes tags: - Sweepstakes - name: Rewards tags: - Rewards - name: Widgets tags: - Widgets - name: Webhooks tags: - Webhooks - WebhookEvents - Webhook Topics