{"openapi":"3.0.1","info":{"description":"MassPay API","version":"1.0.0","title":"MassPay API","termsOfService":"https://www.masspay.io/terms/","contact":{"name":"MassPay","email":"info@masspay.io","url":"https://www.masspay.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}},"tags":[{"name":"Account","description":"The account resource describes your account."},{"name":"Attribute","description":"The attribute resource describes attributes of a user. For instance their bank account number, ID number, DOB, etc."},{"name":"Business","description":"Management of business/subaccounts"},{"name":"Card","description":"The card resource describe your MassPay cards."},{"name":"Payout Catalog","description":"The catalog resource describes the available payout services and countries."},{"name":"Payin Catalog","description":"The catalog resource describes the available payin services and countries."},{"name":"KYC","description":"MassPay KYC operations."},{"name":"Load","description":"The load resource describes a load of balance into a user's wallet."},{"name":"Payout","description":"The payout resource describes a transfer from user’s account to a payout method."},{"name":"Spend Back","description":"The spend back resource describes a spend bank from the user's wallet."},{"name":"Tax","description":"Tax resource for managing tax responsibilities."},{"name":"User","description":"A user represents an individual or a business that can receive payments, such as employees, survey participants, contractors, or distributors. Users can withdraw funds using any of MassPay's supported payout options, including but not limited to bank accounts, debit card, PayPal account, prepaid cards, cash pickup locations, mobile wallets, etc. All payout options for a user are attached to their user resource, so you will always need to create users."},{"name":"Wallet","description":"Wallet operations for your payment activities."},{"name":"Ledger","description":"The ledger entry resource describes a single movement affecting a user's wallet balance, such as a payout, payin, load, spend back, fee, credit, or reversal."}],"paths":{"/payout/{user_token}":{"post":{"tags":["Payout"],"summary":"Initiate a payout transaction","description":"This **POST** endpoint is used to initiate a payout transaction from your account to a user with a specified token.\n<br> You can use this endpoint to pay out funds to your users, such as payments for services rendered or rewards for completing tasks. To use this endpoint, you need to provide the user token of the recipient in the URL Path.\n<br> The request body should include the funding source (`source_token`), payout destination (`destination_token`) and specify in which currency the payout should be made (`destination_currency_code`).\n<br> As a response API will return all details about your payout transaction.","operationId":"initiatePayout","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out. Accepted either as a bare UUID or prefixed with `usr_`; both forms reference the same user. 36 characters long, or 40 with the `usr_` prefix.","required":true,"schema":{"type":"string","pattern":"^(usr_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":40,"example":"usr_5b54fd79-2aa8-4965-85ed-0b3ad3739752"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"number","minimum":0},"in":"query","name":"limit","description":"Limit amount for transaction amount + fee. If fee + amount are higher than the limit, the output will automatically adjust to maximize the possible amount sent. Amount is specified in `source_currency`."},{"schema":{"type":"boolean","default":false},"in":"query","name":"dry_run","description":"When true, performs all validation checks without initiating the payout."}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutTxn"}}},"description":"Payout parameters for a quote","required":true},"responses":{"201":{"description":"Successfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PayoutTxnResp"},{"$ref":"#/components/schemas/PayoutTxnCommitResp"}]},"examples":{"Payout Response":{"value":{"payout_token":"payout_ba4275f2-bae1-488d-9d6f-20af1cd83574","client_transfer_id":"aEjn345","source_currency_code":"USD","destination_currency_code":"MXN","source_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","destination_amount":100.5,"source_amount":100.5,"attr_set_token":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0","exchange_rate":18.55,"fee":2.99,"expiration":"2019-06-26T22:32:05.000Z","pickup_code":"54238173","status":"PENDING","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","delivery_type":"CASH_PICKUP","country_code":"MEX","metadata":{"group_id":541},"estimated_availability":"2020-07-21T17:32:28Z","status_reason":"Success","reversible_amount":1.2,"sender_user_token":"usr_5b54fd79-2aa8-4965-85ed-0b3ad3739752","attrs":{}}}}}}},"400":{"description":"Bad request. `error.details` names the cause — including a duplicate `client_transfer_id` (`Duplicate client id. Existing payout token: payout_<uuid>`) and insufficient funds (`Non sufficient funds in source token`).","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"get":{"tags":["Payout"],"summary":"Get history of payouts by user token","description":"This **GET** endpoint is used to retrieve the payout history for a user with the specified token. <br> You can use this endpoint to view all payouts made to a user, including the `payout_token`, `destinantion_token` and `destination_amount`. <br> To use this endpoint, you need to provide the user token of the recipient in the URL Path. <br> The response will include a JSON object containing an array of payout transactions for the specified user, with each transaction including details such as the transaction ID, payout amount, currency, payout status, and date and time of the payout.","operationId":"getUserPayoutsByToken","parameters":[{"name":"user_token","in":"path","description":"Token representing the user whose payout history is fetched. Accepted either as a bare UUID or prefixed with `usr_`; both forms reference the same user. 36 characters long, or 40 with the `usr_` prefix.","required":true,"schema":{"type":"string","pattern":"^(usr_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":40,"example":"usr_5b54fd79-2aa8-4965-85ed-0b3ad3739752"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"boolean","example":true,"default":false},"in":"query","name":"include_payer_logos","description":"Whether to include the payers logo in base64 format. "}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PayoutTxnResp"}},"examples":{"List of Payouts Response":{"value":[{"payout_token":"payout_ba4275f2-bae1-488d-9d6f-20af1cd83574","client_transfer_id":"aEjn345","source_currency_code":"USD","destination_currency_code":"MXN","source_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","destination_amount":100.5,"source_amount":100.5,"attr_set_token":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0","exchange_rate":18.55,"fee":2.99,"expiration":"2019-06-26T22:32:05.000Z","pickup_code":"54238173","trace_code":"021214893903107","status":"PENDING","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","delivery_type":"CASH_PICKUP","country_code":"MEX","metadata":{"group_id":541},"estimated_availability":"2020-07-21T17:32:28Z","status_reason":"Success","attrs":{},"reversible_amount":100.5}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string","pattern":"^(usr_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":40,"example":"usr_5b54fd79-2aa8-4965-85ed-0b3ad3739752"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to pay out/fetch. Accepted either as a bare UUID or prefixed with `usr_`; both forms reference the same user. 36 characters long, or 40 with the `usr_` prefix."}]},"/payout/{user_token}/{payout_token}":{"put":{"tags":["Payout"],"summary":"Commit payout transaction","description":"This **PUT** endpoint is used to commit a previously created payout transaction. <br> Once a payout transaction is created, you can use this endpoint to commit the transaction and initiate the actual payout. <br> To use this endpoint, you need to provide the `user_token` and `payout_token` of the payout transaction you want to commit in the URL Path. <br> The response will include a JSON object containing details about the committed payout transaction, including the `payout_token`, `payout_status`, `pickup_code` and possible errors.","operationId":"commitPayoutTxn","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out","required":true,"schema":{"type":"string"}},{"name":"payout_token","in":"path","description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutTxnCommitResp"},"examples":{"Payout Resp":{"value":{"payout_token":"payout_123e4567-e89b-12d3-a456-426614174000","status":"success","pickup_code":"54238173","errors":"Duplicate transfer"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"delete":{"tags":["Payout"],"summary":"Request payout transaction cancellation","description":"This **DELETE** endpoint allows you to request the cancellation of a previously created payout transaction.<br>Once a payout has been committed, you can use this endpoint to submit a cancellation request.<br>**Note:** Submitting a cancellation request does not guarantee that the payout will be successfully cancelled.<br>To use this endpoint, provide the `user_token` and `payout_token` of the payout transaction you wish to cancel in the URL path.<br>The response returns a JSON object containing details about the cancellation request, including the `payout_token`, `cancelation_status`, `confirmation_code`, and any potential errors.","operationId":"requestPayoutTxnCancellation","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out","required":true,"schema":{"type":"string"}},{"name":"payout_token","in":"path","description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","example":"Sent by mistake"},"in":"query","name":"cancellation_reason","description":"Optional. Provide a reason for the cancellation"}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["payout_token","cancellation_status"],"properties":{"payout_token":{"type":"string","description":"Payout token that was attempted to be cancelled"},"cancellation_status":{"description":"The status of the cancellation attempt:<br>\n`CANCELLED` - The payout was successfully cancelled. Funds have not been released or were successfully reversed.<br>\n`CANCELLATION_REQUESTED` - The request to cancel has been accepted and is being processed, but the final outcome is not yet confirmed.<br>\n`CANCELLATION_FAILED` - The payout cannot be cancelled because it has already been processed, fully paid, or settled. (see [Payout Reversals](ref:initiatePayoutReversal))","enum":["CANCELLED","CANCELLATION_REQUESTED","CANCELLATION_FAILED"]},"cancellation_status_reason":{"type":"string","description":"When available, provide additional information about the status"},"confirmation_code":{"type":"string","description":"If a cancellation request was successfully submitted, the request confirmation code would be returned"}}},"examples":{"Payout cancellation request response":{"value":{"payout_token":"payout_7565142a-39b3-4b96-b2a8-db17171d4cd2","cancellation_status":"CANCELLED","cancellation_status_reason":"","confirmation_code":"d0bc0b3e-a4a2-4140-b009-686e29f2a991"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to pay out"},{"schema":{"type":"string","example":"payout_ed75acf2-1c35-4073-9adc-389084d1e96b"},"name":"payout_token","in":"path","required":true,"description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`"}],"get":{"summary":"Get status of a payout by payout token","description":"This **GET** endpoint is used to retrieve the status of a payout transaction for a user with the specified token and payout token. <br> You can use this endpoint to check the status of a specific payout transaction, including whether the payout has been successfully processed or if there was an error. <br> To use this endpoint, you need to provide the `user_token` and `payout_token` in the URL Path. <br> The response will include a JSON object containing details about the payout transaction.","operationId":"getPayoutStatus","responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutTxnResp"},"examples":{"Get Payout Response":{"value":{"payout_token":"payout_ba4275f2-bae1-488d-9d6f-20af1cd83574","client_transfer_id":"aEjn345","source_currency_code":"USD","destination_currency_code":"MXN","source_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","destination_amount":100.5,"source_amount":100.5,"attr_set_token":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0","exchange_rate":18.55,"fee":2.99,"expiration":"2019-06-26T22:32:05","pickup_code":"54238173","trace_code":"021214893903107","status":"PENDING","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","delivery_type":"CASH_PICKUP","country_code":"MEX","metadata":{"group_id":541},"estimated_availability":"2020-07-21T17:32:28Z","status_reason":"Success","reversible_amount":100.5,"sender_user_token":"usr_5b54fd79-2aa8-4965-85ed-0b3ad3739752","attrs":{}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"boolean","default":false,"example":true},"in":"query","name":"force_status_update","description":"Attempts to get an updated status from the payout destination before responding. When the destination answers, the `payout.status` webhook is sent whether or not the status changed; a changed status is also written. Leave it unset when you only need the stored state. Never set it from inside a webhook handler: the handler would send itself the next event."},{"schema":{"type":"boolean"},"in":"query","name":"include_payer_logo","description":"Whether to include the payer logo in base64 format. "}],"tags":["Payout"]},"patch":{"summary":"Get transaction confirmation details","description":"This **PATCH** endpoint is used to obtain a PDF document with all the details of a payout transaction for a user with the specified token and payout token. <br> You can use this endpoint to obtain confirmation details about a specific payout transaction. <br> To use this endpoint, you need to provide the `user_token` and `payout_token` in the URL Path. <br> The response will include a PDF document containing all the details of the payout transaction.","operationId":"getTransactionConfirmationDetails","responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string"}}},"examples":{"Transaction Confirmation Details Response":{"value":{"content":"Base64;"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"tags":["Payout"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}]}},"/payout/{user_token}/{payout_token}/reversal":{"post":{"summary":"Initiate a payout reversal","operationId":"initiatePayoutReversal","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out","required":true,"schema":{"type":"string"}},{"name":"payout_token","in":"path","description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutReversalResp"},"examples":{"Payout Reversal":{"value":{"payout_reversal_token":"payout_rev_00900dc5-de31-4d37-8ba2-6f7460b19fb0","source_amount":100.5,"source_currency_code":"USD","exchange_rate":1,"destination_amount":100.5,"destination_currency_code":"USD","status":"PROCESSING","payout_token":"payout_ea4b5932-91f0-4b91-9590-b27f6d666dcd","metadata":{"key":"value"},"fee":1.5,"client_transfer_id":"Reversal54543","original_destination_amount":100.5,"total_reversed_amount":10.2,"created":"2019-06-26T22:32:05"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"You do not have necessary permissions for the resource"},"404":{"description":"Not Found"},"405":{"description":"Invalid input","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exception"}}}},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"description":"This **POST** endpoint is used to initiate a reversal of a previously completed payout transaction.\n<br> You must specify the `user_token` and original payout (`payout_token`) in the URL path to identify which transaction should be reversed.\n<br> In the request body, you may optionally provide an `amount` to perform a partial reversal. If no amount is specified, the entire payout amount will be reversed.\n<br> Reversals can be performed multiple times until the full payout has been reversed.\n<br> Once the payout has been fully reversed, additional reversal attempts will be rejected. Attempting to reverse more than the remaining available amount will also result in an error.\n<br> The response will include the details of the reversal transaction, including the amount reversed, the remaining reversible balance (if any), and the status of the original payout.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutReversalReq"}}}},"tags":["Payout Reversal"]},"get":{"summary":"Get history of payout reversals","operationId":"getPayoutReversalList","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out","required":true,"schema":{"type":"string"}},{"name":"payout_token","in":"path","description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PayoutReversalResp"}},"examples":{"List of Reversals":{"value":[{"payout_reversal_token":"payout_rev_00900dc5-de31-4d37-8ba2-6f7460b19fb0","source_amount":100.5,"source_currency_code":"USD","exchange_rate":1,"destination_amount":100.5,"destination_currency_code":"USD","status":"COMPLETED","payout_token":"payout_ea4b5932-91f0-4b91-9590-b27f6d666dcd","metadata":{"key":"value"},"fee":1.1,"client_transfer_id":"Reversal423","original_destination_amount":100.5,"total_reversed_amount":10.2,"created":"2019-06-26T22:32:05","completed":"2019-06-29T22:32:05"}]}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"You do not have necessary permissions for the resource"},"404":{"description":"Not Found"},"405":{"description":"Invalid input","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exception"}}}},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"description":"This **GET** endpoint is used to retrieve the payout reversal history for a specific user and payout transaction.\n<br> You can use this endpoint to view all reversal transactions applied to a particular payout, including each `payout_reversal_token`, the reversed amount, and status.\n<br> To use this endpoint, you need to provide both the `user_token` and the original `payout_token` in the URL Path.\n<br> The response will include a JSON object containing an array of reversal transactions associated with the specified payout, with each entry including details such as the reversal token, amount, currency, status, and the date and time of the reversal.","tags":["Payout Reversal"]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to pay out"},{"schema":{"type":"string","example":"payout_ed75acf2-1c35-4073-9adc-389084d1e96b"},"name":"payout_token","in":"path","required":true,"description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`"}]},"/payout/{user_token}/{payout_token}/reversal/{payout_reversal_token}":{"get":{"summary":"Get status of a payout reversal","operationId":"getPayoutReversalStatus","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out","required":true,"schema":{"type":"string"}},{"name":"payout_token","in":"path","description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayoutReversalResp"},"examples":{"Payout reversal status":{"value":{"payout_reversal_token":"payout_rev_00900dc5-de31-4d37-8ba2-6f7460b19fb0","source_amount":100.5,"source_currency_code":"USD","exchange_rate":1,"destination_amount":100.5,"destination_currency_code":"USD","status":"COMPLETED","payout_token":"payout_ea4b5932-91f0-4b91-9590-b27f6d666dcd","metadata":{"key":"value"},"fee":1.5,"client_transfer_id":"Reversal54543","original_destination_amount":100.5,"total_reversed_amount":10.2,"created":"2019-06-26T22:32:05","completed":"2019-06-29T22:32:05"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"You do not have necessary permissions for the resource"},"404":{"description":"Not Found"},"405":{"description":"Invalid input","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exception"}}}},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"description":"This **GET** endpoint is used to retrieve the status of a payout reversal transaction for a user with the specified token and payout reversal token.\n<br> You can use this endpoint to check whether a reversal has been successfully processed, partially applied, or if it encountered an error.\n<br> To use this endpoint, you need to provide the `user_token`, original `payout_token` and `payout_reversal_token` in the URL Path.\n<br> The response will include a JSON object containing details about the reversal transaction, including its status and any remaining reversible amount.","tags":["Payout Reversal"]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to pay out"},{"schema":{"type":"string","example":"payout_ed75acf2-1c35-4073-9adc-389084d1e96b"},"name":"payout_token","in":"path","required":true,"description":"Token representing the trsanaction. Retrieved from `/payout/{user_token}`"},{"schema":{"type":"string","example":"payout_rev_ed75acf2-1c35-4073-9adc-389084d1e96b"},"name":"payout_reversal_token","in":"path","required":true,"description":"Token representing the payout reversal transaction. Returned in the response when a reversal is created via /payout/{user_token}/{payout_token}/reversal"}]},"/payout/country/list":{"get":{"tags":["Payout Catalog"],"summary":"Gets a list of countries where payouts services offered.","description":"This **GET** endpoint is used to retrieve a list of all currently available countries of service. <br> You can use this endpoint to obtain a list of countries where MassPay services are offered. <br> There are no required parameters for this endpoint. <br> The response will include a JSON array containing details for each country, including the country code, name, and `three_letter_code`.","operationId":"getCountryList","responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Country"}},"examples":{"List of Countries":{"value":[{"code":"MX","name":"Mexico","three_letter_code":"MEX","iso_numeric":484,"generic_options":["LOCAL_BANK_DEPOSIT"]}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payin/country/list":{"get":{"tags":["Payin Catalog"],"summary":"Gets a list of countries where payins services offered.","description":"This **GET** endpoint is used to retrieve a list of all currently available countries of payins service. <br> You can use this endpoint to obtain a list of countries where MassPay services are offered. <br> There are no required parameters for this endpoint. <br> The response will include a JSON array containing details for each country, including the country code, name, and `three_letter_code`.","operationId":"getPayinsCountryList","responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Country"}},"examples":{"List of Countries":{"value":[{"code":"MX","name":"Mexico","three_letter_code":"MEX","iso_numeric":484,"generic_options":["LOCAL_BANK_DEPOSIT"]}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[]},"/payout/country/{country_code}/best":{"get":{"tags":["Payout Catalog"],"summary":"Gets a list of Companies and their best service offerings for the given country code.","description":"This **GET** endpoint is used to retrieve a list of companies and their best service offerings for a specific country. <br> You can use this endpoint to obtain information about available services and pricing for each respected company in the provided country. If two providers offer similar services, only the cheapest option will be displayed. <br> To use this endpoint, you need to provide the `country_code` as a required parameter in the URL Path. <br> The response will include a JSON array containing details for each company, including the company name, cheapest service offerings, and pricing.","operationId":"getBestCountryServices","parameters":[{"name":"country_code","in":"path","description":"Country code searching services for. 3 letters [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code\"","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","description":"Returns the results fee based on the given amount, defaults to $200","required":false,"schema":{"type":"number","default":"200","format":"float"}},{"schema":{"type":"number","pattern":"^[\\d.]+$","format":"float"},"in":"query","name":"limit","description":"Limit amount for transaction amount + fee. If fee + amount are higher than the limit, the output will automatically adjust to maximize the possible amount sent"},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"wallet_token","description":"Token representing the wallet used. If provided, the results would be custom-tailored to this user."},{"schema":{"type":"boolean","example":true,"default":false},"in":"query","name":"include_payer_logos","description":"Whether to include the payers logo in base64 format. "},{"schema":{"type":"string"},"in":"query","name":"user_token","description":"Token representing the user for which we fetch the catalog. If provided, the results would be custom-tailored to this user. Not necessary if wallet_token is provided"},{"schema":{"type":"string"},"in":"query","name":"source_currency","description":"Required if amount is provided. The currency associated with the amount"},{"schema":{"type":"string"},"in":"query","name":"payer_name","description":"Filter services that match payer name. Multiple payer names can be passed using pipe (|) as a separator"},{"schema":{"type":"string"},"in":"query","name":"destination_currency","description":"Filter services that support the destination currency"},{"schema":{"type":"boolean","default":false},"in":"query","name":"only_generic_payers","description":"Filter out country-specific service variations and return only the generic option. For example, for bank deposits, exclude individual bank listings and include only the general bank deposit option"}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompaniesResp"},"examples":{"List of Services":{"value":{"companies":[{"company_logo":"U3dhZ2dlciByb2Nrcw==","services":[{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"is_variable_fee":true,"is_generic":true}]}],"rating":4.5,"description":"MassPay is a top leading provider with over 10 years of industry experience","company_name":"MassPay"}]}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"country_code","in":"path","description":"Country code searching services for. 3 letters [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code\"","required":true}]},"/payin/country/{country_code}/best":{"get":{"tags":["Payin Catalog"],"summary":"Gets a list of Companies and their best service offerings for the given country code.","description":"This **GET** endpoint is used to retrieve a list of companies and their best payin service offerings for a specific country. <br> You can use this endpoint to obtain information about available services and pricing for each respected company in the provided country. If two providers offer similar services, only the cheapest option will be displayed. <br> To use this endpoint, you need to provide the `country_code` as a required parameter in the URL Path. <br> The response will include a JSON array containing details for each company, including the company name, cheapest service offerings, and pricing.","operationId":"getBestPayinsCountryServices","parameters":[{"name":"country_code","in":"path","description":"Country code searching services for. 3 letters [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code\"","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","description":"Returns the results fee based on the given amount, defaults to $200","required":false,"schema":{"type":"number","default":"200","format":"float"}},{"schema":{"type":"number","pattern":"^[\\d.]+$","format":"float"},"in":"query","name":"limit","description":"Limit amount for transaction amount + fee. If fee + amount are higher than the limit, the output will automatically adjust to maximize the possible amount sent"},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"wallet_token","description":"Token representing the wallet used. If provided, the results would be custom-tailored to this user."},{"schema":{"type":"boolean","example":true,"default":false},"in":"query","name":"include_payer_logos","description":"Whether to include the payers logo in base64 format. "},{"schema":{"type":"string"},"in":"query","name":"user_token","description":"Token representing the user for which we fetch the catalog. If provided, the results would be custom-tailored to this user. Not necessary if wallet_token is provided"},{"schema":{"type":"string"},"in":"query","name":"source_currency","description":"Required if amount is provided. The currency associated with the amount"},{"schema":{"type":"string"},"in":"query","name":"payer_name","description":"Filter services that match payer name. Multiple payer names can be passed using pipe (|) as a separator"},{"schema":{"type":"string"},"in":"query","name":"destination_currency","description":"Filter services that support the destination currency"},{"schema":{"type":"boolean","default":false},"in":"query","name":"only_generic_payers","description":"Filter out country-specific service variations and return only the generic option. For example, for bank deposits, exclude individual bank listings and include only the general bank deposit option"}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayinsCompaniesResp"},"examples":{"List of Services":{"value":{"companies":[{"company_logo":"U3dhZ2dlciByb2Nrcw==","services":[{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"is_variable_fee":true,"is_generic":true}]}],"rating":4.5,"description":"MassPay is a top leading provider with over 10 years of industry experience","company_name":"MassPay"}]}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"country_code","in":"path","description":"Country code searching services for. 3 letters [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code\"","required":true}]},"/payout/country/{country_code}/detailed":{"get":{"tags":["Payout Catalog"],"summary":"Gets a list of Companies and their service offerings for the given country code.","description":"This **GET** endpoint is used to retrieve a list of all companies and their service offerings for a specific country. <br> You can use this endpoint to obtain information about available services and pricing for each respected company in the provided country. <br> To use this endpoint, you need to provide the `country_code` in the URL Path. <br> The response will include a JSON array containing details for each company, including the company name, service offerings, and pricing.","operationId":"getDetailedCountryServices","parameters":[{"name":"country_code","in":"path","description":"Country code searching services for. 3 letters [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code\"","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","description":"Returns the results fee based on the given amount, defaults to $200","required":false,"schema":{"type":"string","default":"200"}},{"schema":{"type":"number","pattern":"^[\\d.]+$","format":"float"},"in":"query","name":"limit","description":"Limit amount for transaction amount + fee. If fee + amount are higher than the limit, the output will automatically adjust to maximize the possible amount sent"},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"wallet_token","description":"Token representing the wallet used. If provided, the results would be custom-tailored to this user. Not necessary if user_token is provided"},{"schema":{"type":"boolean","example":true,"default":false},"in":"query","name":"include_payer_logos","description":"Whether to include the payers logo in base64 format. "},{"schema":{"type":"string"},"in":"query","name":"user_token","description":"Token representing the user for which we fetch the catalog. If provided, the results would be custom-tailored to this user. Not necessary if wallet_token is provided"},{"schema":{"type":"string"},"in":"query","name":"source_currency","description":"Required if amount is provided. The currency associated with the amount"},{"schema":{"type":"string"},"in":"query","name":"payer_name","description":"Filter services that match payer name. Multiple payer names can be passed using pipe (|) as a separator"},{"schema":{"type":"string"},"in":"query","name":"destination_currency","description":"Filter services that support the destination currency"},{"schema":{"type":"boolean","default":false},"in":"query","description":"Filter out country-specific service variations and return only the generic option. For example, for bank deposits, exclude individual bank listings and include only the general bank deposit option","name":"only_generic_payers"}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompaniesResp"},"examples":{"List of Services":{"value":{"companies":[{"company_logo":"U3dhZ2dlciByb2Nrcw==","services":[{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"is_variable_fee":true}]}],"rating":4.5,"description":"MassPay is a top leading provider with over 10 years of industry experience","company_name":"MassPay"}]}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"country_code","in":"path","description":"Country code searching services for. 3 letters [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code\"","required":true}]},"/payout/service/{destination_token}/alternatives":{"get":{"tags":["Payout Catalog"],"summary":"Returns list of alternative service to a provided service","description":"This **GET** endpoint is used to retrieve a list of alternative services to a provided service. <br> You can use this endpoint to obtain information about other available services and pricing offered by different companies for a particular destination. <br> To use this endpoint, you need to provide the `destination_token` as a required parameter in the URL Path. <br> The response will include a JSON array containing details for each company, including the company name, available alternative services, and pricing.","operationId":"getDestinationTokenAlternatives","parameters":[{"name":"destination_token","in":"path","description":"Destination token","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","minLength":3,"maxLength":5,"example":"USD"},"in":"query","name":"destination_currency","description":"When provided, only return destination tokens that support the `destination_currency`"},{"schema":{"type":"boolean","default":false},"in":"query","name":"show_dynamic_tokens_only","description":"Set this parameter to true to display only dynamic tokens, excluding none dynamic ones."}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"},"examples":{"Alternatives List":{"value":{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"is_variable_fee":true}]}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"destination_token","in":"path","required":true}]},"/payout/service/{destination_token}":{"get":{"tags":["Payout Catalog"],"summary":"Returns provided service","description":"This **GET** endpoint is used to retrieve the details of the provided service. <br> To use this endpoint, you need to provide the `destination_token` as a required parameter in the URL Path. <br> The response will include a JSON object containing details for the company, including the company name, and pricing.","operationId":"getDestinationToken","parameters":[{"name":"destination_token","in":"path","description":"Destination token","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"boolean"},"in":"query","name":"include_payer_logos","description":"Whether to include the payers logo in base64 format. "},{"schema":{"type":"number","default":200,"format":"float"},"in":"query","name":"amount","description":"Returns the results fee based on the given amount, defaults to $200"},{"schema":{"type":"string","example":"EUR"},"in":"query","description":"Filter services that support the destination currency","name":"destination_currency"},{"schema":{"type":"string","example":"USD"},"in":"query","name":"source_currency","description":"**Optional.** If provided, the source currency must match one of the currencies associated with the client’s issued `clnt_wlt` wallets. If not specified, the system will automatically select one of the eligible wallet source currencies."}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"},"examples":{"Service Details":{"value":{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"is_variable_fee":true}]}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"destination_token","in":"path","required":true}]},"/wallet":{"post":{"tags":["Wallet"],"summary":"Create a client wallet","description":"This **POST** endpoint creates a new wallet for your own client account, in the requested currency. <br> To use this endpoint, you need to provide the `currency_code` as a JSON parameter in the Request Body. It must be an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code, such as `USD`, `EUR` or `MXN`. <br> A client can hold at most one wallet per currency, so the operation is idempotent: if you already have a wallet in the requested currency, that existing wallet is returned unchanged with a `200` status code instead of `201`, and its `balance` reflects the current balance. <br> Newly created wallets start with a zero balance and can be funded through top-ups, pay-ins or wallet transfers. Client wallets are listed by the **GET** operation on `/payout/account/balance`. <br> A client wallet in a currency you have not funded payouts from before may need to be linked to a liquidity provider by MassPay before it can fund payouts; contact your account manager after creating one.","operationId":"createClientWallet","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientWalletCreateReq"},"examples":{"Client wallet":{"value":{"currency_code":"EUR"}}}}},"description":"Client wallet creation request parameters","required":true},"responses":{"200":{"description":"You already have a wallet in the requested currency; the existing wallet is returned and nothing is created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateResp"},"examples":{"Existing wallet returned":{"value":{"token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","type":"CLIENT_FUNDS","currency_code":"EUR","balance":1250.75,"active":true,"client_paying_fees":false}}}}}},"201":{"description":"Successfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateResp"},"examples":{"Client wallet created":{"value":{"token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","type":"CLIENT_FUNDS","currency_code":"EUR","balance":0,"active":true,"client_paying_fees":false}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/wallet/transfer":{"post":{"tags":["Wallet"],"summary":"Transfer funds between wallets","description":"This **POST** endpoint transfers funds immediately from a source wallet to a destination wallet. <br> The `source_token` must refer to a wallet owned by the authenticated client (either a client wallet token or a user wallet token belonging to the client). <br> The `destination_token` can refer to any user wallet in the system, or to another client wallet that is linked to this client (e.g. a subclient or sister-client relationship — transfers to unrelated client wallets are not permitted). <br> Transfers between wallets of different currencies are supported; an FX exchange rate will be applied automatically. <br> Transfers are executed immediately upon request and are not reversible.","operationId":"walletTransfer","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"boolean","default":false},"in":"query","name":"dry_run","description":"When `true`, validates the transfer and returns a quote (including FX rate and fee) without actually moving any funds."}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransferReq"}}},"description":"Wallet transfer request parameters","required":true},"responses":{"201":{"description":"Successfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTransferResp"},"examples":{"Wallet Transfer Response":{"value":{"transfer_token":"ld_ba4275f2-bae1-488d-9d6f-20af1cd83574","source_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","destination_token":"usr_wlt_123e4567-e89b-12d3-a456-426614174000","source_amount":100.5,"destination_amount":1865.28,"source_currency_code":"USD","destination_currency_code":"MXN","exchange_rate":18.56,"fee":0,"status":"COMPLETED","client_transfer_id":"aEjn345","notes":"Bonus payment for Q2","metadata":{"group_id":541},"created_at":"2024-07-21T17:32:28Z"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/wallet/{user_token}":{"put":{"summary":"Resend balance notification","description":"This **PUT** endpoint is used to resend a balance notification to a user with the specified `user_token`. The balance notification informs the user about the current balance in their account. <br> To use this endpoint, you need to provide the required parameter `user_token` in the URL Path. Additionally, you have the option to include an optional parameter `wallet_token` in the query parameters. The `wallet_token` can be used to specify a particular wallet associated with the user, if applicable. <br> Upon a successful request, the API will return a boolean response indicating the success of the balance notification resend operation.","operationId":"resendBalanceNotification","responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"True if sent successfully. False if there was an issue","properties":{"success":{"type":"boolean","description":"True if notifcation was sent succesfully. False otherwise"}},"required":["success"]}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"wallet_token","description":"Optional wallet token. If none is provided, select the first wallet available"}],"tags":["Load"]},"get":{"tags":["Wallet"],"summary":"Retrieve all available wallets for a user","description":"This **GET** endpoint is used to retrieve all available wallets for a provided user token. <br> You can use this endpoint to obtain information about the wallets associated with the provided user token. <br> To use this endpoint, you need to provide the `user_token` as a required parameter in the URL Path. <br> The response will include a JSON array containing details for each wallet including `user_token`, `balance`, `currency_code`.","operationId":"getWallet","parameters":[{"name":"user_token","in":"path","description":"Token representing the user who owns the wallet","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"boolean","default":false,"example":"tru"},"in":"query","name":"client_only","description":"When set to `true`, the response will include only the wallet balances funded by the client making the API call. Use this to restrict results to balances that were loaded or managed by your client credentials. Default is `false`, which returns all balances associated with the user, regardless of funding source."}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WalletTxnResp"}},"examples":{"Wallet Response":{"value":[{"user_token":"usr_ba4275f2-bae1-488d-9d6f-20af1cd83574","token":"usr_wlt_123e4567-e89b-12d3-a456-426614174000","balance":100.5,"currency_code":"USD","type":"USER_FUNDS","card_type":"VISA","last_4":"1234","active":true,"client_paying_fees":true}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"post":{"tags":["Wallet"],"summary":"Create a wallet for a user","description":"This **POST** endpoint creates a new wallet for the user with the specified `user_token`, in the requested currency. <br> To use this endpoint, you need to provide the `user_token` as a required parameter in the URL Path and the `currency_code` as a JSON parameter in the Request Body. The `currency_code` must be an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code, such as `USD`, `EUR` or `MXN`. The user must belong to the authenticated client. <br> Optionally, `fee_wallet_token` nominates one of your client wallets, in the same currency, as the wallet that pays the fees of payouts funded from the new wallet, so the payee receives the full amount. <br> A user can hold at most one wallet per currency, so the operation is idempotent: if the user already has a wallet in the requested currency, that existing wallet is returned unchanged with a `200` status code instead of `201`, and its `balance` reflects the current balance. If the existing wallet has a different fee-paying configuration than the requested `fee_wallet_token`, the request is rejected with a `409` status code and nothing is changed. <br> Newly created wallets start with a zero balance and can be funded through loads, pay-ins or wallet transfers. The response has the same shape as the wallets returned by the **GET** operation on this resource.","operationId":"createUserWallet","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserWalletCreateReq"},"examples":{"Payee pays the fees":{"value":{"currency_code":"MXN"}},"Client pays the fees":{"value":{"currency_code":"MXN","fee_wallet_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"}}}}},"description":"User wallet creation request parameters","required":true},"responses":{"200":{"description":"The user already has a wallet in the requested currency; the existing wallet is returned and nothing is created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateResp"},"examples":{"Existing wallet returned":{"value":{"token":"usr_wlt_9e5a349e-8d10-4a0b-9d8f-6b3f2a1c4d7e","type":"USER_FUNDS","user_token":"usr_59a9ccce-0280-4207-9200-891c9109915c","currency_code":"MXN","balance":250.5,"active":true,"client_paying_fees":true,"fee_wallet_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"}}}}}},"201":{"description":"Successfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletCreateResp"},"examples":{"Client pays the fees":{"value":{"token":"usr_wlt_9e5a349e-8d10-4a0b-9d8f-6b3f2a1c4d7e","type":"USER_FUNDS","user_token":"usr_59a9ccce-0280-4207-9200-891c9109915c","currency_code":"MXN","balance":0,"active":true,"client_paying_fees":true,"fee_wallet_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"}},"Payee pays the fees":{"value":{"token":"usr_wlt_9e5a349e-8d10-4a0b-9d8f-6b3f2a1c4d7e","type":"USER_FUNDS","user_token":"usr_59a9ccce-0280-4207-9200-891c9109915c","currency_code":"MXN","balance":0,"active":true,"client_paying_fees":false}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found. The `user_token` does not belong to a user of the authenticated client, or the `fee_wallet_token` is not a client wallet of the authenticated client.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"409":{"description":"Conflict. The user already has a wallet in this currency whose fee-paying wallet differs from `fee_wallet_token`; nothing was changed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user who owns the wallet"}]},"/payout/account/balance":{"get":{"tags":["Account"],"summary":"Get current available balance","description":"This **GET** endpoint is used to retrieve the current available balance for the MassPay account. <br> You can use this endpoint to obtain information about the current balance in your account. <br> There are no required parameters needed to access this endpoint. <br> The response will include a JSON objects containing details for the current available balance, including the token, balance and `currency_code`.","operationId":"getAccountBalance","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AvailableBalanceTxnResp"}},"examples":{"Available Balance":{"value":[{"token":"clnt_wlt_8bb3693f-2f98-43dd-a990-615b6a21596d","balance":100.5,"currency_code":"USD"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/account/validate/{user_token}":{"post":{"tags":["Account"],"summary":"Validate a bank account","description":"This **POST** endpoint is used to validate a bank account against MassPay's account verification providers, independently of a payout. <br>\nThe bank account is validated for the user identified by `user_token` in the path, and the account holder name on record for that user is used for name matching. <br>\nIf a finalized result is available within ~5 seconds (including cached results), it is returned synchronously with HTTP `200`. Otherwise HTTP `202` is returned with a status of `PROCESSING` and the finalized result is delivered asynchronously through the `avs.completed` webhook event. <br>\nValidations are charged per validation based on your client pricing configuration; validations that cannot be verified by any provider (`UNSUPPORTED`) are not charged.","operationId":"validateBankAccount","parameters":[{"name":"user_token","in":"path","description":"Token representing the user the bank account belongs to. The name on record for this user is used for account holder name matching.","required":true,"schema":{"type":"string","example":"usr_9a542efe-6060-11f1-b042-02a06bb795f5"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateBankAccountRequest"},"examples":{"US bank account":{"value":{"country_code":"US","attrs":[{"type":"BankAccountNumber","value":"31742287"},{"type":"BankRoutingNumber","value":"021000021"},{"type":"BankAccountType","value":"CHECKING"}]}}}}}},"responses":{"200":{"description":"Finalized validation result.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationResult"},"examples":{"Match":{"value":{"status":"MATCH","ownership_verified":true,"first_name_match":"MATCH","last_name_match":"MATCH","match_score":100}},"Unsupported":{"value":{"status":"UNSUPPORTED","ownership_verified":false,"first_name_match":null,"last_name_match":null,"match_score":null}}}}}},"202":{"description":"Validation is still processing. The finalized result will be delivered via the `avs.completed` webhook event.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationProcessing"},"examples":{"Processing":{"value":{"status":"PROCESSING","user_token":"usr_9a542efe-6060-11f1-b042-02a06bb795f5"}}}}}},"400":{"description":"Invalid request. Returned when `attrs` is missing, the `BankAccountNumber` attribute is not supplied, or `user_token` does not reference an existing user.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"},"examples":{"Missing bank account number":{"value":{"title":"Bad request.","message":"The request was invalid or malformed. Please ensure that the request body conforms to the required format and that all required parameters are included.","code":400,"error":{"reason":"Error validating bank account","details":["BankAccountNumber attribute is required"]}}},"Unknown user":{"value":{"title":"Bad request.","message":"The request was invalid or malformed. Please ensure that the request body conforms to the required format and that all required parameters are included.","code":400,"error":{"reason":"Error validating bank account","details":["user_token does not reference an existing user"]}}}}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"name":"user_token","in":"path","description":"Token representing the user the bank account belongs to. The name on record for this user is used for account holder name matching.","required":true,"schema":{"type":"string","example":"usr_9a542efe-6060-11f1-b042-02a06bb795f5"}}]},"/payout/account/configuration":{"get":{"tags":["Account"],"summary":"Get account configuration","description":"This **GET** endpoint is used to retrieve the current configuration for the MassPay account. <br> You can use this endpoint to obtain information about the configuration of your account. <br> There are no required parameters needed to access this endpoint. <br> The response will include a JSON objects containing details for the configuration.","operationId":"getAccountConfiguration","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","x-examples":{"Example 1":[{"setting_name":"","value":""}]},"items":{"type":"object","properties":{"setting_name":{"type":"string","description":"Name of the setting","enum":["STATUS","DYNAMIC_TOKENS_ENABLED","DATE_OF_BIRTH_REQUIRED","SOCIAL_SECURITY_REQUIRED","MINIMUM_ACCEPTABLE_PAYEE_AGE","ID_ENFORCED_FOR_ALL_PAYEES","PCI_NON_COMPLIANT","PAYEE_NOTIFICATIONS_ENABLED","BATCH_REQUIRES_SECOND_APPROVER","WALLET_TO_WALLET_ENABLED","DEMO_SIMULATOR","PAYEE_PHONE_VERIFICATION_REQUIRED","STRICT_ATTR_SET_TOKEN_ENFORCEMENT"]},"value":{"type":"string","description":"Value of the setting"}},"required":["setting_name","value"]}},"examples":{"Configs":{"value":[{"setting_name":"DYNAMIC_TOKENS_ENABLED","value":"true"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[]},"/payout/account/webhooks":{"get":{"tags":["Account"],"summary":"Get webhooks","description":"This **GET** endpoint is used to retrieve the current list of webhook configurations for your account. <br>\nYou can use this endpoint to view the registered webhook URLs along with the specific events they are configured to listen to. <br>\nThere are no required parameters to access this endpoint. <br>\nThe response will return a JSON object containing an array of webhook URLs and the corresponding event types they are subscribed to.","operationId":"getWebhooks","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","x-examples":{"Example 1":[{"webhook_url":"https://www.masspay.io/webhooks","token":"webhook_a0d7d26f-3d77-474e-9053-c4235032f37a","event_types":["payout.status","user.status"]}]},"items":{"type":"object","required":["webhook_url","event_types","token"],"properties":{"webhook_url":{"type":"string","description":"Webhook URL","default":"https://www.masspay.io/webhooks"},"event_types":{"type":"array","description":"The events the webhook URL is subscribed to","items":{"enum":["user.created","user.status","payout.created","payout.status","payin.created","payin.status","load.created","load.status","load.reversed","spendback.created","spendback.status","spendback.inactivity","kyc.id","kyc.tax","attributes.stored","deposit_account.created","business.created","business.status","balance.credit","payout_reversal.created","payout_reversal.status","avs.completed","payin_deposit.return_completed","payin_deposit.returned","file_upload_req.created","file_upload_req.status","file_upload_req.verified"]}},"token":{"type":"string","description":"The token associated with this webhook configuration. It is the value returned as `webhook_token` when the webhook was created, and the value to pass when deleting it.","default":"webhook_a0d7d26f-3d77-474e-9053-c4235032f37a"}}}},"examples":{}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"post":{"summary":"Create a webhook configuration","tags":["Account"],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"webhook_token":"","webhook_secret":""}},"required":["webhook_token","webhook_secret"],"properties":{"webhook_token":{"type":"string","description":"The token associated with this webhook configuration","example":"webhook_a0d7d26f-3d77-474e-9053-c4235032f37a"},"webhook_secret":{"type":"string","description":"The secret this webhook's payloads are signed with: HMAC-SHA512 over `<t>|<body>`, sent in the `X-MassPay-Signature` header (see the Webhooks guide). The payload itself is not encrypted. The secret is returned only at creation: store it now.","example":"29f67213-29a9-44d3-abf6-c4441ad07bc9"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"post-payout-account-webhooks","security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"description":"This **POST** endpoint is used to create a new webhook configuration for your account. <br>\nTo set up a webhook, provide a target url and an array of `event_types` that the webhook should listen to. <br>\nUpon successful creation, the response will include a unique `webhook_token` associated with the newly registered webhook as well as `webhook_secret` which will be used to encrypt the incoming payloads. <br>\nThis token can be used for future management of the webhook.","requestBody":{"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"webhook_url":"","event_types":[]}},"required":["webhook_url","event_types"],"properties":{"webhook_url":{"type":"string","description":"The URL that will receive the webhook payloads","example":"https://www.masspay.io/webhooks"},"event_types":{"type":"array","description":"The type of events the webhook will receive notifications for","items":{"enum":["user.created","user.status","payout.created","payout.status","payin.created","payin.status","load.created","load.status","load.reversed","spendback.created","spendback.status","spendback.inactivity","kyc.id","kyc.tax","attributes.stored","deposit_account.created","business.created","business.status","balance.credit","payout_reversal.created","payout_reversal.status","avs.completed","payin_deposit.return_completed","payin_deposit.returned","file_upload_req.created","file_upload_req.status","file_upload_req.verified"]}}}}}}}},"parameters":[]},"/payout/account/webhooks/{webhook_token}":{"delete":{"summary":"Delete a webhook configuration","tags":["Account"],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"delete-payout-account-webhooks","security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"description":"This **DELETE** endpoint is used to remove an existing webhook configuration from your account. <br>\nProvide the `webhook_token` as a path parameter to identify which webhook to delete. <br>\nOnce successfully deleted, the webhook will no longer receive any event notifications."},"parameters":[{"schema":{"type":"string","format":"uuid","example":"webhook_a0d7d26f-3d77-474e-9053-c4235032f37a"},"name":"webhook_token","in":"path","required":true,"description":"The token associated with this webhook configuration"}]},"/payout/account/topup":{"post":{"tags":["Account"],"summary":"Top up account balance","description":"This **POST** endpoint is used to initiate a topup from the funding instrument to your MassPay account balance. <br> You can use this endpoint to start the topup process. <br> The body of the request requires the token of the funding instrument, the type of rail you would like to use, the amount to topup and the currency. <br> The response will include a JSON objects containing a success boolean.","operationId":"postTopupBalance","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["topup_token"],"properties":{"topup_token":{"type":"string","format":"uuid","description":"Topup token representing the topup transaction"}}},"examples":{"Topup Creation":{"value":{"topup_token":"topup_fbb55528-f861-4ed2-a8fe-3e822e31af80"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"funding_instrument_token":"","type":"ACH","currency_code":"USD","amount":444.55}},"required":["funding_instrument_token","type","currency_code","amount"],"properties":{"funding_instrument_token":{"type":"string","description":"Token of funding instrument","example":"fund_be2f0ab9-a503-473e-aa33-0af196e54647"},"type":{"type":"string","description":"Type of transaction","enum":["ACH","AFT"],"default":"ACH","example":"ACH"},"currency_code":{"type":"string","description":"3 letter currency code to top up","default":"USD","minLength":3,"maxLength":3,"example":"USD"},"amount":{"type":"number","description":"Amount to top up","example":10000}}},"examples":{}}}}},"parameters":[]},"/payout/account/topup/{topup_token}":{"get":{"tags":["Account"],"summary":"Get top up transaction details","description":"This **GET** endpoint is used to obtain a topup transaction details. <br> You can use this endpoint to verify the status of the topup transaction. <br> The response will include a JSON objects containing the top up details, such as Status.","operationId":"getTopupTransaction","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["topup_token","time_of_topup","status","amount","currency_code"],"properties":{"topup_token":{"type":"string","description":"Token of top up transaction"},"time_of_topup":{"type":"string","description":"Time top up was initiated on"},"status":{"description":"Status of top up transaction","enum":["CREATED","PENDING","EXPIRED","HOLD","BATCHED","PROCESSING","COMPLETED","REJECTED","CANCELLED","BLOCKED"]},"amount":{"type":"number","description":"Amount of top up"},"currency_code":{"type":"string","description":"3 letter currency code to top up"},"status_reason":{"type":"string","description":"When top-up is returned, this will include the reason code. I.e R07 for ACH"}}},"examples":{"Topup Transaction Details":{"value":{"topup_token":"topup_af193a8f-5147-49b9-8081-6ff9fce2fcca","time_of_topup":"2025-03-26 11:44:13","status":"REJECTED","status_reason":"R07","amount":1000.5,"currency_code":"USD"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string","format":"uuid"},"name":"topup_token","in":"path","required":true,"description":"Topup token representing the topup transaction"}]},"/payout/account/topup/instruments":{"post":{"tags":["Account"],"summary":"Add new funding instrument","description":"This **POST** endpoint is used to add a funding account instrument. <br> You can use this endpoint to provide the funding instrument details and add them to your account. <br> The request body requires the `funding_details` of the instrument, such as account and routing number or debit card details and the `country_code` of the country code where this funding instrument resides. <br> The response will include a JSON objects containing funding instrument `token`.","operationId":"postAddInstrument","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"token":""}},"properties":{"token":{"type":"string","description":"Token of newly created funding instrument","example":"fund_be2f0ab9-a503-473e-aa33-0af196e54647"}},"required":["token"]},"examples":{"Created funding instrument":{"value":{"token":"fund_be2f0ab9-a503-473e-aa33-0af196e54647"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"currency_code":"USD","type":"ACH","funding_details":{"account_number":"","routing_number":"","debit_card_number":"","debit_card_expiration":"05/25","debit_card_billing_zip":""},"country_code":"USA"}},"properties":{"funding_details":{"type":"object","description":"Instrument details","properties":{"account_number":{"type":"string","description":"Bank account number. Required for ACH","example":"123456789"},"routing_number":{"type":"string","description":"Bank routing number. Required for ACH","example":"021202337"},"bank_account_type":{"type":"string","description":"Bank account type for ACH","enum":["Checking","Savings"],"default":"Checking","example":"Checking"},"debit_card_number":{"type":"string","description":"Debit card number. Required for AFT","example":"4457684565124683"},"debit_card_expiration":{"type":"string","description":"Debit card expiration date. Format: `MM/YY`. Required for AFT","example":"05/35"},"debit_card_billing_zip":{"type":"string","description":"Debit card billing zip code","example":"91304"}}},"country_code":{"type":"string","description":"3 letter country code of institution where instrument exists","example":"USA"}},"required":["funding_details","country_code"]},"examples":{}}},"description":""}},"parameters":[],"get":{"tags":["Account"],"summary":"List account topup funding instruments","description":"This **GET** endpoint is used to retrieve the funding instruments that can be used to topup the account balance. <br> You can use this endpoint to obtain the funding financial instruments. <br> There are no required parameters needed to access this endpoint. <br> The response will include a JSON array which constains a JSON object containing funding instrument details, including the token and account details.","operationId":"getFundingInstruments","responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","x-examples":{"Example 1":[{"token":"","currency_code":"USD","type":"ACH","funding_details":{"account_number":"","routing_number":"","debit_card_number":"","debit_card_expiration":"05/25","debit_card_billing_zip":""},"country_code":"USA"}]},"items":{"type":"object","properties":{"token":{"type":"string","description":"Funding instrument token","example":"fund_be2f0ab9-a503-473e-aa33-0af196e54647"},"funding_details":{"type":"object","description":"Instrument details","properties":{"routing_number":{"type":"string","description":"Bank routing number. Required for ACH","example":"021202337"},"account_number":{"type":"string","description":"Bank account number. Required for ACH","example":"123456789"},"bank_account_type":{"type":"string","description":"Bank account type for ACH","enum":["Savings","Checking"],"default":"Checking","example":"Checking"},"debit_card_number":{"type":"string","description":"Debit card number. Required for AFT"},"debit_card_expiration":{"type":"string","description":"Debit card expiration date. Format: `MM/YY`. Required for AFT"},"debit_card_billing_zip":{"type":"string","description":"Debit card billing zip code"}}},"country_code":{"type":"string","description":"3 letter country code of institution where instrument exists","example":"USA"}},"required":["token","funding_details","country_code"]}},"examples":{"List of accounts":{"value":[{"token":"fund_be2f0ab9-a503-473e-aa33-0af196e54647","funding_details":{"routing_number":"021202337","account_number":"123456789","bank_account_type":"Checking","debit_card_number":"4457684565124683","debit_card_expiration":"05/35","debit_card_billing_zip":"89149"},"country_code":"USA"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/user":{"post":{"tags":["User"],"summary":"Create a user","description":"This **POST** endpoint is used to create a new user in MassPay. <br> You can use this endpoint to create a new user with the specified user details in JSON format in the request Body. <br> To use this endpoint, you need to provide the `internal_user_id`, `country`, `first_name`, `last_name`, and `email` as required parameters in the Request Body. <br> The response will include details about the newly created user.","operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"Created user object","required":true},"responses":{"201":{"description":"Successfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoredUser"},"examples":{"User created successfully":{"value":{"user_token":"usr_123e4567-e89b-12d3-a456-426614174000","status":"ACTIVE","created_on":"2019-07-07T23:03:05","internal_user_id":"4324-rOzk","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":"90405","country":"USA","first_name":"John","middle_name":"string","last_name":"Doe","email":"jdoe@masspay.io","language":"en","mobile_number":"16502000226","business_name":"ABC Company","timezone":"America/Los_Angeles","date_of_birth":"1975-03-24","metadata":{"group_id":541},"activation_url":"https://members.masspay.io/activation?activation=AO=="}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/load/{user_token}":{"post":{"tags":["Load"],"summary":"Initiate a load transaction","description":"This **POST** endpoint is used to initiate a load transaction, allowing you to add funds to a user token's wallet. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path. You also need to provide the `client_load_id`, `source_token`, and amount as JSON parameters in the Request Body. The `client_load_id` is a unique identifier for the transaction that you can use to track it, while the `source_token` is the token or account from which the funds will be loaded. The amount parameter specifies the amount of funds to be loaded into the user's wallet. <br> The response will contain a JSON object indicating the status of the load transaction and any relevant details.","operationId":"loadUser","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to load","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTxn"}}},"description":"Load information","required":true},"responses":{"201":{"description":"Successfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoadTxnResp"},"examples":{"Load Response":{"value":{"load_token":"ld_ba4275f2-bae1-488d-9d6f-20af1cd83574","status":"COMPLETED","wallet_token":"usr_wlt_3ec2d3e7-0aae-47bb-bdb9-d3413c5434d1","metadata":{"group_id":541}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"get":{"tags":["Load"],"summary":"Get history of loads by user token","description":"This **GET** endpoint is used to retrieve a transaction history of all loads that were made to the provided user token, including scheduled loads. <br> You can use this endpoint to obtain a comprehensive history of loads for the user token, allowing you to track and analyze their incoming payments over time. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path. <br> The endpoint will then return a JSON array of load transactions, each including transactions details.","operationId":"getUserLoadsByToken","parameters":[{"name":"user_token","in":"path","description":"The user token that needs to be fetched.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Loads"}},"examples":{"List of Loads Response":{"value":[{"load_token":"ld_ba4275f2-bae1-488d-9d6f-20af1cd83574","time_of_load":"2019-07-07T23:03:05","client_load_id":"aEjn345","source_token":"clnt_wlt_123e4567-e89b-12d3-a456-426614174000","wallet_token":"usr_wlt_123e4567-e89b-12d3-a456-426614174000","amount":100.5,"source_currency_code":"USD","notes":"Commission payment for July","status":"COMPLETED","metadata":{"group_id":541}}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to load/fetch loads for"}],"put":{"summary":"Resend load notification","description":"This **PUT** endpoint is used to resend a load notification to the user associated with the provided `user_token` for a specific load transaction. <br> You can use this endpoint to help ensure that users are notified promptly and accurately of any incoming funds or other important payment events. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path, and the `load_token` as a parameter in the Query string. The endpoint will then resend a notification to the user for the specified load transaction. <br> The response will contain a JSON object indicating the status of the request.","responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"True if sent successfully. False if there was an issue","properties":{"success":{"type":"boolean","description":"True if notifcation was sent succesfully. False otherwise"}},"required":["success"]}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"load_token","description":"Load token","required":true}],"tags":["Load"],"operationId":"resendLoadNotification"},"delete":{"summary":"Reverse a user load","description":"This **DELETE** endpoint is used to reverse a load transaction that was already processed, allowing you to remove funds from a user's wallet. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path, and the load_token as a parameter in the Query string. <br> The endpoint will then attempt to reverse the specified load transaction. If the load is still in scheduled status, it will be marked as cancelled.","operationId":"cancelUserLoad","parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"load_token","description":"Load token","required":true}],"tags":["Load"],"responses":{"200":{"description":"Succesfully deleted."},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/user/{user_token}":{"get":{"tags":["User"],"summary":"Get user by user token","description":"This **GET** endpoint is used to retrieve a user's profile by their user token in MassPay. <br> You can use this endpoint to obtain a user profile for a specified user token. <br> To use this endpoint, you need to provide the `user_token` as a required parameter in the URL Path. <br> The response will include all available details for the user.","operationId":"getUserByToken","parameters":[{"name":"user_token","in":"path","description":"The user token that needs to be fetched.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoredUser"},"examples":{"Get user":{"value":{"user_token":"usr_123e4567-e89b-12d3-a456-426614174000","status":"ACTIVE","created_on":"2019-07-07T23:03:05","internal_user_id":"4324-rOzk","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":"90405","country":"USA","first_name":"John","middle_name":"string","last_name":"Doe","email":"jdoe@masspay.io","language":"en","mobile_number":"16502000226","business_name":"ABC Company","timezone":"America/Los_Angeles","date_of_birth":"1975-03-24","metadata":{"group_id":541},"activation_url":"https://members.masspay.io/activation?activation=AO=="}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"put":{"tags":["User"],"summary":"Updated user","description":"This **PUT** endpoint is used to update the profile information of a user with the provided user token. <br> You need to provide the `user_token` in the URL path to identify the user whose information you want to update. The updated information should be provided in the request Body as a JSON object. This endpoint can be used to update various profile information, such as the user's name, email address, phone number, and more. <br> The response will contain the updated user information in a JSON format.","operationId":"updateUser","parameters":[{"name":"user_token","in":"path","description":"user token that need to be updated","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"Updated user object","required":true},"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoredUser"},"examples":{"Update user successfully":{"value":{"user_token":"usr_123e4567-e89b-12d3-a456-426614174000","status":"ACTIVE","created_on":"2019-07-07T23:03:05","internal_user_id":"4324-rOzk","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":"90405","country":"USA","first_name":"John","middle_name":"string","last_name":"Doe","email":"jdoe@masspay.io","language":"en","mobile_number":"16502000226","business_name":"ABC Company","timezone":"America/Los_Angeles","date_of_birth":"1975-03-24","metadata":{"group_id":541},"activation_url":"https://members.masspay.io/activation?activation=AO=="}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"The user token that needs to be fetched/updated."}]},"/payout/attribute/{user_token}":{"get":{"tags":["Attribute"],"summary":"Get all stored user attributes","description":"This **GET** endpoint is used to retrieve all stored user attributes for all destination token. <br> You can use this endpoint to retrieve user attributes and provide personalized service to your users based on their preferences, demographic data, or other relevant information. <br> To use this endpoint, you need to provide the `user_token` as parameters in the URL Path. <br> The endpoint will then return all the stored attributes for the provided user in the context of the destination token. If multiple `attribute set tokens` are available, all the sets and their values will be returned.","operationId":"getAllAttrs_deprecated","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"schema":{"type":"boolean","default":false,"example":false},"in":"query","name":"show_translated_labels","description":"When set to true, the language that is set on the user profile will be used to display the labels and expected values. When false, English labels will be used."},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-z]{2}$","default":"en","example":"en"},"in":"header","name":"Language","description":"When provided, it is used in conjunction with `show_translated_labels` and overrides the language setting of the user profile"}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AllAttributesResp"}},"examples":{"All stored user attributes":{"value":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"max_limit":10000,"min_limit":0,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"attributes":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text","last_attr_value_used":true}]}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"deprecated":true},"parameters":[{"schema":{"type":"string","example":"usr_585ebb5b-e928-477d-9244-fb6af8f8dadb"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to store attributes for"}]},"/attribute/label/{user_token}/{endpoint_token}/{attr_set_token}":{"put":{"tags":["Attribute"],"summary":"Set or Update Label for Attribute Set","description":"This **PUT** endpoint sets or updates a human-readable label for a given `attr_set_token`.<br>\nLabels help identify the context of the attribute set — for example, assigning a label like \"JPMorgan Chase\" to represent attributes linked to that specific destination or financial institution.<br>\nProvide the `attr_set_token` and `endpoint_toke` as a path parameter and the desired `label` in the request body.<br>\nIf a label already exists for the attribute set, it will be overwritten.","operationId":"storeAttrSetLabel","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["label"],"properties":{"label":{"type":"string","description":"User-defined label for identifying or naming this set of attributes. Useful for UI display or future reference.\n","maxLength":255}}}}}}},"parameters":[{"schema":{"type":"string","example":"usr_585ebb5b-e928-477d-9244-fb6af8f8dadb"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to store attributes for"},{"schema":{"type":"string","example":"dest_801539d1-5927-4b18-b475-278bddbb216a"},"name":"endpoint_token","in":"path","required":true,"description":"Token representing the transaction endpoint — either the `destination_token` for payouts (e.g., MassPay → Brazil → Bank Deposit → Itau), or the `origin_token` for pay-ins. For payouts, this value is retrieved from the [country services](/reference/getbestcountryservices) endpoint."},{"schema":{"type":"string","example":"attr_set_a7d6f5fe-f269-4ac5-861d-f20e79b24314"},"name":"attr_set_token","in":"path","required":true,"description":"The token that represents the stored attributes for this payer. You would use this token in `attr_set_token` of `initiatePayout` if you have to specify an account number when paying a transaction out."}]},"/payout/attribute/{user_token}/{destination_token}/{currency}":{"post":{"tags":["Attribute"],"summary":"Store user attributes","description":"This **POST** endpoint is used to store user attributes, allowing you to associate additional data with a user token. <br> To use this endpoint, you need to provide the `user_token`, `destination_token`, and `currency` as parameters in the URL Path. You also need to provide the attribute values as JSON parameters in the Request body. <br> If existing attributes are already stored for the user, this call will override their values.","operationId":"storeAttrs_deprecated","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to store attributes for","required":true,"schema":{"type":"string"}},{"name":"destination_token","in":"path","description":"Token that represents the payout destination i.e. MassPay->Brazil->Bank Deposit->Itau. To be retrieved from the #pricing callback. ","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttrTxn"}}},"description":"Attr parameters to store","required":true},"responses":{"201":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"attr_set_token":{"type":"string","description":"`attr_set_token` associated with the stored attributes"}},"required":["attr_set_token"]},"examples":{"Successful storing of attributes":{"value":{"attr_set_token":"attr_set_87e7599d-af96-4aec-9097-c2a105bc2d64"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"deprecated":true},"get":{"tags":["Attribute"],"summary":"Get user attributes for destination_token","description":"This **GET** endpoint is used to retrieve user attributes for a specific destination token. <br> You can use this endpoint to retrieve user attributes and provide personalized service to your users based on their preferences, demographic data, or other relevant information. <br> To use this endpoint, you need to provide the `user_token`, `destination_token`, and `currency` as parameters in the URL Path. <br> The endpoint will then return all the required attributes for the provided user for the specified destination token. If any of the attributes already have a stored value, it will be returned as well.","operationId":"getAttrs_deprecated","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"name":"destination_token","in":"path","description":"Token that represents the payout destination i.e. MassPay->Brazil->Bank Deposit->Itau. To be retrieved from the #pricing callback.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-z]{2}$","default":"en","example":"en"},"in":"header","name":"Language","description":"When provided, it is used in conjunction with `show_translated_labels` and overrides the language setting of the user profile"},{"schema":{"type":"boolean","default":true},"in":"query","name":"show_latest_attr_set_token","description":"When set to true, will only return the values associated with the latest attr_set_token used. If none were used, it will return all"},{"schema":{"type":"boolean","default":false,"example":false},"in":"query","name":"show_translated_labels","description":"When set to true, the language that is set on the user profile will be used to display the labels and expected values. When false, English labels will be used."},{"schema":{"type":"boolean","default":false},"in":"query","name":"include_completed_global_attributes","description":"If true, returns completed global attributes (e.g., SSN, ID number). By default, completed global attributes are excluded."}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AttrsRequirement"}},"examples":{"List of attributes":{"value":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text","last_attr_value_used":true},{"input_type":"text","token":"attr_8bff08d2-16e8-11f0-9853-02a851951a6d","label":"Debit Card Information","validation":"https://dev.members.masspay.io/pci/eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhY3RpdmF0aW9uIiwiYXVkIjoiaHR0cHM6Ly9kZXYubWVtYmVycy5tYXNzcGF5LmlvIiwiZGVzdGluYXRpb25fdG9rZW4iOiI2NTU1ZTU1MS04M2Y2LTExZWYtYjk1NC0wMjM1YzlkMTA5ZDMiLCJpc3MiOiJodHRwczovL21hc3NwYXkuaW8iLCJjdXJyZW5jeSI6IlVTRCIsInVzZXJfdG9rZW4iOiJiOTJiYzAwNS1lOTJkLTExZWYtYjczZi0wMjFlMDc0YmY2NjciLCJleHAiOjE3NDQzODY2NDgsImNsaWVudF9pZCI6IjI5OSJ9.ig1hc7Gu4dKvK1JJsRtihI9kBZKx85plRsIbsQUDStQ","is_optional":false,"type":"IFramePaymentCollection","expected_value":"Display validation url in an iFrame","last_attr_value_used":false}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"deprecated":true},"parameters":[{"schema":{"type":"string","example":"usr_585ebb5b-e928-477d-9244-fb6af8f8dadb"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to store attributes for"},{"schema":{"type":"string","example":"payout_bd599b40-db74-4664-ba4b-23f14c786a59"},"name":"destination_token","in":"path","required":true,"description":"Token that represents the payout destination i.e. MassPay->Brazil->Bank Deposit->Itau. To be retrieved from the #pricing callback."},{"schema":{"type":"string","example":"BRL","minLength":3,"pattern":"^[A-Z0-9]{3,5}$","maxLength":5},"name":"currency","in":"path","description":"The destination currency sending funds to. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format.","required":true}]},"/attribute/{user_token}/global":{"post":{"tags":["Attribute"],"summary":"Store global user attributes","description":"This **GET** endpoint is used to retrieve all global user attributes associated with a specific user token. <br>\nYou can use this endpoint to obtain the additional data that has been previously stored for a user. <br>\nTo use this endpoint, you need to provide the `user_token` as a parameter in the URL Path. <br>\nThe response will include all global attributes currently associated with the provided user token.","operationId":"storeGlobalAttrs","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to store attributes for","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["values"],"properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/GlobalAttrValue"}}}},"examples":{"Store attributes":{"value":{"values":[{"token":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","value":"432532532","type":"SocialSecurity"}]}}}}},"description":"Attr parameters to store","required":true},"responses":{"201":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"get":{"tags":["Attribute"],"summary":"Get global user attributes","description":"This **GET** endpoint is used to retrieve all stored user global attributes. <br> You can use this endpoint to retrieve user attributes and provide personalized service to your users based on their preferences, demographic data, or other relevant information. <br> To use this endpoint, you need to provide the `user_token` as parameters in the URL Path. <br> The endpoint will then return all the stored global attributes for the provided user.","operationId":"getGlobalAttrs","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"schema":{"type":"string","example":"USA","minLength":3,"maxLength":3},"in":"query","name":"country","description":"Country code [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3). When provided, it will obtain the global attributes for the country. If not provided, it will default to the country in the user profile"},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"boolean","default":true},"in":"query","name":"show_only_latest_attributes","description":"When set to true, it will only return the latest value stored for each attributes type, otherwise it will return all values"}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AttrsRequirement"}},"examples":{"Global Attrs":{"value":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text","last_attr_value_used":true}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string","example":"usr_585ebb5b-e928-477d-9244-fb6af8f8dadb"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to store attributes for"}]},"/attribute/{user_token}":{"get":{"tags":["Attribute"],"summary":"Get all stored user attributes","description":"This **GET** endpoint is used to retrieve all stored user attributes for all destination token. <br> You can use this endpoint to retrieve user attributes and provide personalized service to your users based on their preferences, demographic data, or other relevant information. <br> To use this endpoint, you need to provide the `user_token` as parameters in the URL Path. <br> The endpoint will then return all the stored attributes for the provided user in the context of the destination token. If multiple `attribute set tokens` are available, all the sets and their values will be returned.","operationId":"getAllAttrs","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"schema":{"type":"boolean","default":false,"example":false},"in":"query","name":"show_translated_labels","description":"When set to true, the language that is set on the user profile will be used to display the labels and expected values. When false, English labels will be used."},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-z]{2}$","default":"en","example":"en"},"in":"header","name":"Language","description":"When provided, it is used in conjunction with `show_translated_labels` and overrides the language setting of the user profile"}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AllAttributesSetResp"}},"examples":{"All stored user attributes":{"value":[{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"max_limit":10000,"min_limit":0,"number_of_locations":13007,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"attributes":[{"attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","last_attr_value_used":true,"label":"JPMorgan Chase","attributes":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text"}]}]}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string","example":"usr_585ebb5b-e928-477d-9244-fb6af8f8dadb"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to store attributes for"}]},"/attribute/{user_token}/{endpoint_token}/{currency}":{"post":{"tags":["Attribute"],"summary":"Store user attributes","description":"This **POST** endpoint is used to store user attributes, allowing you to associate additional data with a user token. <br> To use this endpoint, you need to provide the `user_token`, `endpoint_token`, and `currency` as parameters in the URL Path. You also need to provide the attribute values as JSON parameters in the Request body. <br> If existing attributes are already stored for the user, this call will override their values.","operationId":"storeAttrs","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to store attributes for","required":true,"schema":{"type":"string"}},{"name":"endpoint_token","in":"path","description":"Token representing the transaction endpoint — either the `destination_token` for payouts (e.g., MassPay → Brazil → Bank Deposit → Itau), or the `origin_token` for pay-ins. For payouts, this value is retrieved from the [country services](/reference/getbestcountryservices) endpoint.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttrTxn"},"examples":{"Store attributes":{"value":{"values":[{"token":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","value":"432532532"}],"attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"JPMorgan Chase"}}}}},"description":"Attr parameters to store","required":true},"responses":{"201":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"attr_set_token":{"type":"string","description":"`attr_set_token` associated with the stored attributes"}},"required":["attr_set_token"]},"examples":{"Successful storing of attributes":{"value":{"attr_set_token":"attr_set_87e7599d-af96-4aec-9097-c2a105bc2d64"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"get":{"tags":["Attribute"],"summary":"Get user attributes for destination_token","description":"This **GET** endpoint is used to retrieve user attributes for a specific destination token. <br> You can use this endpoint to retrieve user attributes and provide personalized service to your users based on their preferences, demographic data, or other relevant information. <br> To use this endpoint, you need to provide the `user_token`, `endpoint_token`, and `currency` as parameters in the URL Path. <br> The endpoint will then return all the required attributes for the provided user for the specified destination token. If any of the attributes already have a stored value, it will be returned as well.","operationId":"getAttrs","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"name":"endpoint_token","in":"path","description":"Token representing the transaction endpoint — either the `destination_token` for payouts (e.g., MassPay → Brazil → Bank Deposit → Itau), or the `origin_token` for pay-ins. For payouts, this value is retrieved from the [country services](/reference/getbestcountryservices) endpoint.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[a-z]{2}$","default":"en","example":"en"},"in":"header","name":"Language","description":"When provided, it is used in conjunction with `show_translated_labels` and overrides the language setting of the user profile"},{"schema":{"type":"boolean","default":true},"in":"query","name":"show_latest_attr_set_token","description":"When set to true, will only return the values associated with the latest attr_set_token used. If none were used, it will return all"},{"schema":{"type":"boolean","default":false,"example":false},"in":"query","name":"show_translated_labels","description":"When set to true, the language that is set on the user profile will be used to display the labels and expected values. When false, English labels will be used."},{"schema":{"type":"boolean","default":false},"in":"query","name":"include_completed_global_attributes","description":"If true, returns completed global attributes (e.g., SSN, ID number). By default, completed global attributes are excluded."}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AttrSetRequirement"}},"examples":{"List of attributes":{"value":[{"attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","last_attr_value_used":true,"label":"JPMorgan Chase","attributes":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text","last_attr_value_used":true},{"input_type":"text","token":"attr_8bff08d2-16e8-11f0-9853-02a851951a6d","label":"Debit Card Information","validation":"https://dev.members.masspay.io/pci/eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhY3RpdmF0aW9uIiwiYXVkIjoiaHR0cHM6Ly9kZXYubWVtYmVycy5tYXNzcGF5LmlvIiwiZGVzdGluYXRpb25fdG9rZW4iOiI2NTU1ZTU1MS04M2Y2LTExZWYtYjk1NC0wMjM1YzlkMTA5ZDMiLCJpc3MiOiJodHRwczovL21hc3NwYXkuaW8iLCJjdXJyZW5jeSI6IlVTRCIsInVzZXJfdG9rZW4iOiJiOTJiYzAwNS1lOTJkLTExZWYtYjczZi0wMjFlMDc0YmY2NjciLCJleHAiOjE3NDQzODY2NDgsImNsaWVudF9pZCI6IjI5OSJ9.ig1hc7Gu4dKvK1JJsRtihI9kBZKx85plRsIbsQUDStQ","is_optional":false,"type":"IFramePaymentCollection","expected_value":"Display validation url in an iFrame","last_attr_value_used":false}]}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string","example":"usr_585ebb5b-e928-477d-9244-fb6af8f8dadb"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to store attributes for"},{"schema":{"type":"string","example":"BRL","minLength":3,"pattern":"^[A-Z0-9]{3,5}$","maxLength":5},"name":"currency","in":"path","description":"The destination currency sending funds to. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. ","required":true},{"schema":{"type":"string"},"name":"endpoint_token","in":"path","required":true,"description":"Token representing the transaction endpoint — either the `destination_token` for payouts (e.g., MassPay → Brazil → Bank Deposit → Itau), or the `origin_token` for pay-ins. For payouts, this value is retrieved from the [country services](/reference/getbestcountryservices) endpoint."}]},"/payout/user/lookup":{"get":{"operationId":"userLookup","summary":"Lookup an existing user","description":"This **GET** endpoint is used to lookup whether a user with the provided email and first name exists in the MassPay system. <br> To use this endpoint, you need to provide the `email`, `first_name`, and `internal_user_id` as Query parameters in the URL. <br> The endpoint will then search for the user based on the provided information and return a JSON response indicating whether the user exists or not. If the user exists, the response will also contain the user's details, `user_token`, `first_name`, `last_name` and `internal_user_id`.","tags":["User"],"responses":{"200":{"description":"Found a matching user","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FoundUser"},"examples":{"Lookup match":{"value":{"user_token":"usr_f4741aa2-9f39-4358-8247-2409e3fc2715","first_name":"Mickey","last_name":"Mouse","internal_user_id":"4324-rOzk","status":"ACTIVE"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"string"},"in":"query","name":"email","description":"User's email address. Required if First Name is provided","required":true},{"schema":{"type":"string"},"in":"query","name":"first_name","description":"User's first name. Required if email is provided","required":true},{"schema":{"type":"string"},"in":"query","description":"A client-defined identifier for the user. This is the unique ID assigned to the user on your system. Max 75 characters. Allows letters, numbers, and + , - . / _ ~ |. Required if email and first name are not provided","required":true,"name":"internal_user_id"}]}},"/payout/user/{user_token}/transactions":{"parameters":[{"schema":{"type":"string","example":"usr_f4741aa2-9f39-4358-8247-2409e3fc2715"},"name":"user_token","in":"path","description":"Token representing the user to get transactions history for. If none is provided, retrieve transactions for all users.","required":true}],"get":{"summary":"Transactions history","operationId":"getUserTransactionsHistory","description":"This **GET** endpoint is used to retrieve a list of all transactions, including payouts, loads, and spendbacks, for a provided user with the provided user token. <br> You can use this endpoint to obtain a comprehensive history of transactions for the provider user, allowing you to track and analyze their payment activities over time. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path. <br> The response will contain a JSON array of transaction objects, each including transactions details.","tags":["User"],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"number","default":10,"maximum":100,"minimum":0},"in":"query","name":"number_of_records","description":"Number of records to return. Defaults to 10 if no value is provided"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2020-03-31","format":"date"},"in":"query","name":"start_date","description":"Starting date"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2020-03-31","format":"date"},"in":"query","name":"end_date","description":"Ending date"},{"schema":{"type":"integer","default":1,"minimum":1},"in":"query","name":"page","description":"Page number"},{"schema":{"type":"string","example":"payout","enum":["payout","load","spendback","payin"]},"in":"query","name":"type","description":"Filter particular types of transactions. Comma separated to include multiple types","style":"form"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"wallet_token","description":"Filter transactions to include only provided wallet token."},{"schema":{"type":"boolean","default":false},"in":"query","name":"show_all_clients","description":"Whether to show transactions from all clients"}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TxnHistoryResp"},"examples":{"Transaction History Response":{"value":{"transactions":[{"token":"payout_123e4567-e89b-12d3-a456-426614174000","type":"payout","time_of_txn":"2019-08-24T14:15:22Z","source_amount":50.1,"source_currency_code":"USD","destination_amount":44.99,"destination_currency_code":"MXN","fee":2.98,"status":"READY_FOR_PICKUP","notes":"Purchase of Candles. Order #14930","payer_name":"Elektra","pickup_code":"343432","source_token":"clnt_wlt_123e4567-e89b-12d3-a456-426614174000","destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","delivery_type":"CASH_PICKUP","client_transfer_id":"Rew-343-A0","status_reason":"Success","client_id":1,"user_token":"usr_87e7599d-af96-4aec-9097-c2a105bc2d64","destination_country":"MEX"}],"metadata":{"current_page":0,"total_results":0,"results_per_page":0,"total_pages":0}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/user/history":{"parameters":[],"get":{"summary":"All Users' Transactions history","operationId":"getAllUsersHistory","description":"This **GET** endpoint is used to retrieve a list of all transactions, including payouts, loads, and spendbacks, for all users. <br> You can use this endpoint to obtain a comprehensive history of transactions for all users, allowing you to track and analyze their payment activities over time. <br> The response will contain a JSON array of transaction objects, each including transactions details.","tags":["User"],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"number","default":10,"maximum":100,"minimum":0},"in":"query","name":"number_of_records","description":"Number of records to return. Defaults to 10 if no value is provided"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2020-03-31","format":"date"},"in":"query","name":"start_date","description":"Starting date"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2020-03-31","format":"date"},"in":"query","name":"end_date","description":"Ending date"},{"schema":{"type":"integer","default":1,"minimum":1},"in":"query","name":"page","description":"Page number"},{"schema":{"type":"string","example":"payout","enum":["payout","load","spendback","payin"]},"in":"query","name":"type","description":"Filter particular types of transactions. Comma separated to include multiple types","style":"form"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"wallet_token","description":"Filter transactions to include only provided wallet token."},{"schema":{"type":"boolean","default":false},"in":"query","name":"show_all_clients","description":"Whether to show transactions from all clients"}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TxnHistoryRecordResp"}},"examples":{"All Transactions Response":{"value":[{"token":"payout_123e4567-e89b-12d3-a456-426614174000","type":"payout","time_of_txn":"2019-08-24T14:15:22Z","source_amount":50.1,"source_currency_code":"USD","destination_amount":44.99,"destination_currency_code":"MXN","fee":2.98,"status":"READY_FOR_PICKUP","notes":"Purchase of Candles. Order #14930","payer_name":"Elektra","pickup_code":"343432","source_token":"clnt_wlt_123e4567-e89b-12d3-a456-426614174000","destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","delivery_type":"CASH_PICKUP","client_transfer_id":"4erew-rre2","status_reason":"Success","client_id":0,"user_token":"usr_87e7599d-af96-4aec-9097-c2a105bc2d64","destination_country":"MEX"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/spendback/{user_token}":{"parameters":[{"schema":{"type":"string","example":"usr_3f5d3fe8-a9c0-48c7-90ad-a72948730f56"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to fetch/initiate spend back"}],"get":{"summary":"Get history of spend backs by user token","description":"This **GET** endpoint is used to retrieve the history of spendbacks for a specific user token. <br> You can use this endpoint to help manage your payment operations and track the usage of funds by your users. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path. <br> The endpoint will then return a list of all the historical spendbacks for the provided user token. The response will contain a JSON array with details for each spendback transaction.","responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SpendBacks"}},"examples":{"Spendback List Response":{"value":[{"spendback_token":"spnd_bk_4275f2-bae1-488d-9d6f-20af1cd83574","time_of_spendback":"2019-07-07T23:03:05","client_spendback_id":"aEjn345","source_token":"usr_wlt_123e4567-e89b-12d3-a456-426614174000","wallet_token":"clnt_wlt_123e4567-e89b-12d3-a456-426614174000","amount":100.5,"source_currency_code":"USD","notes":"Commission payment for July","metadata":{"group_id":541}}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"getUserSpendbacksByToken","tags":["Spend Back"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}]},"post":{"summary":"Initiate a spend back transaction","description":"This **POST** endpoint is used to initiate a spendback transaction to a provided user token. <br> You can use this endpoint to enable spendback transactions for your users and help them manage their funds more effectively. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path, along with the required parameters in the request Body, including `client_spendback_id`, `source_token`, `source_currency_code` and `amount`. <br> The endpoint will then initiate the spendback transaction, transferring funds from the user token to the source token. The response will contain a JSON object indicating the status of the request and any relevant transaction details.","operationId":"initiateSpendback","tags":["Spend Back"],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpendBackTxn"}}},"description":"Spend back information"},"responses":{"201":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpendBackTxnResp"},"examples":{"Initiate Spendback Response":{"value":{"spendback_token":"spnd_bk_123e4567-e89b-12d3-a456-426614174000","client_spendback_id":"aEjn345","status":"success","metadata":{"group_id":541}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/wallet/{user_token}/{wallet_token}/card":{"parameters":[{"schema":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"name":"wallet_token","in":"path","required":true,"description":"Token representing the wallet"},{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}],"get":{"summary":"Get MassPay card information","operationId":"getWalletCardInfo","description":"This **GET** endpoint is used to retrieve MassPay card information associated with the provided wallet token. <br> You can use this endpoint to obtain information about the MassPay card associated with the wallet. <br> To use this endpoint, you need to provide the `user_token` and `wallet_token` as required parameters in the URL Path. <br> The response will include a JSON object containing details for the MassPay card, including the card number, balance, status. If your company is not PCI compliant, each field would contain a url that displays the corresponding card detail once accessed through an iFrame.","tags":["Card"],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardResp"},"examples":{"Card Information Response":{"value":{"card_number":"4016483301928344","cvv":"123","expiration_date":"2023-08-21","pin_number":"1234","balance":103,"type":"VISA","status":"ACTIVE"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"put":{"summary":"Update MassPay card information","description":"This **PUT** endpoint is used to update the MassPay card information for a provided user token and wallet token. <br> You can use this endpoint to help your users manage their MassPay card information, including updating their card PIN number or status. <br> To use this endpoint, you need to provide the `user_token` and `wallet_token` as parameters in the URL Path, along with the parameters in the request Query, including the card pin number or(and) status. <br> The endpoint will then update the card information for the provided user and wallet token.","operationId":"updateWalletCardInfo","parameters":[{"schema":{"type":"string","example":"0123","pattern":"^[0-9]{4}$"},"in":"query","name":"pin","description":"New 4 digit pin number for the card (To be used in ATM machines)"},{"schema":{"type":"string","enum":["SUSPEND","UNSUSPEND","CLOSE"],"example":"CLOSE"},"in":"query","name":"status","description":"New status for the card"}],"tags":["Card"],"responses":{"200":{"description":"Succesful operation."},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/user-agreements":{"get":{"summary":"Get user agreement","tags":["Payout Catalog"],"operationId":"getUserAgreement","description":"This **GET** endpoint is used to retrieve the user agreement for payout services. <br> You can use this endpoint to obtain information about the available user agreements for payout services offered by MassPay. <br> To use this endpoint, you need to provide the `ID` representing the user agreement as a required parameter in the URL Path. <br> The response will include the user agreement details.","parameters":[{"schema":{"type":"integer","example":2},"in":"query","name":"id","required":true,"description":"Id representing user agreement (retrieved from OPTIONS call)"}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","description":"User Agreement","properties":{"name":{"type":"string","description":"Name of user agreement","example":"MassPay Card Program - USD"},"content":{"type":"string","format":"byte","description":"Base64 encoded byte representing the content of the file","readOnly":true},"last_modified":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Time when the agreement was last updated"},"id":{"type":"integer","description":"Id representing the user agreement","example":2},"mime_type":{"type":"string","description":"Mime type of the user agreement (i.e application/pdf)","example":"application/pdf"}},"required":["name","content","last_modified","id"]},"examples":{"Agreement":{"value":{"name":"MassPay Card Program - USD","content":"Base64;","last_modified":"2020-07-21T17:32:28Z","id":2,"mime_type":"application/pdf"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"options":{"summary":"Get available user agreements","description":"This OPTIONS endpoint is used to retrieve a list of available user agreements for payout services offered by MassPay without the content. <br> You can use this endpoint to obtain the names of available user agreements. <br> There are no required parameters needed to use this endpoint. <br> The response will include a list of user agreement names","operationId":"getUserAgreementsNames","parameters":[],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","description":"List of user agreements","items":{"type":"object","description":"User Agreement","properties":{"name":{"type":"string","description":"Name of user agreement","example":"MassPay Card Program - USD"},"last_modified":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Time when the agreement was last updated"},"id":{"type":"integer","example":2,"description":"Id representing the user agreement (to be used to retrieve it)"},"mime_type":{"type":"string","description":"Mime type of the user agreement (i.e application/pdf)","example":"application/pdf"}},"required":["name","last_modified","id","mime_type"]}},"examples":{"List of Agreements":{"value":[{"name":"MassPay Card Program - USD","last_modified":"2020-07-21T17:32:28Z","id":2,"mime_type":"application/pdf"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"tags":["Catalog"]},"parameters":[]},"/payout/account/statement":{"get":{"summary":"Get certified account statement","description":"This **GET** endpoint is used to retrieve a certified PDF ledger statement for a provided timeframe. <br> You can use this endpoint to obtain a ledger statement for your MassPay account for a specific time period. <br> To use this endpoint, you need to provide the `start_date` and `ending_date` as required parameters in the Query string of the URL. <br> The response will include a certified PDF ledger statement containing transaction details for the specified timeframe.","tags":["Account"],"operationId":"get-account-statement","parameters":[{"schema":{"type":"string","format":"date","example":"2021-01-01"},"in":"query","name":"start_date","description":"Starting date of the statement","required":true},{"schema":{"type":"string","format":"date","example":"2021-02-01"},"in":"query","name":"ending_date","description":"Ending date of the statement (not more than 31 days than `start_date`)","required":true},{"schema":{"type":"string","example":"PDF","default":"PDF","enum":["PDF","CSV"]},"in":"query","name":"format","description":"Report format. Defaults to PDF"}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"description":"Base64 encoded byte representing the content of the file","type":"object","properties":{"content":{"type":"string","description":"Base64 encoded byte representing the content of the file","readOnly":true}},"required":["content"],"readOnly":true}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/wallet/{user_token}/{wallet_token}/autopayout":{"parameters":[{"schema":{"type":"string"},"name":"wallet_token","in":"path","required":true,"description":"Token representing the wallet"},{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user who owns the wallet"}],"get":{"summary":"Get all AutoPayout rules","description":"This **GET** endpoint is used to retrieve all autopayout rules currently applied to the provided wallet token. <br> You can use this endpoint to obtain information about the autopayout rules associated with the wallet. <br> To use this endpoint, you need to provide the `user_token` and `wallet_token` as required parameters in the URL Path. <br> The response will include a JSON array containing details for each autopayout rule, including the token, `destination_token` and percentage.","operationId":"getAutopayoutRules","responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AutopayoutResp"}},"examples":{"AutoPayout Rules Response":{"value":[{"token":"autopayout_3684cc43-fe3b-4994-8ca1-7dc0db94430f","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","percentage":50,"attr_set_token":"attr_set_d43bef25-78b9-4ed8-a351-dac8fb19e462"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"tags":["Wallet"]},"post":{"summary":"Add AutoPayout rule","description":"This **POST** endpoint is used to add an autopayout rule that will initiate a payout whenever the provided wallet token is loaded. <br> You can use this endpoint to create an autopayout rule that automatically sends a percentage of incoming load to a specific destination. <br> To use this endpoint, you need to provide the `user_token` and `wallet_token` as required parameters in the URL Path, and the `destination_token` and percentage of incoming load that should be autopaid to the `destination_token` in the request Body. <br> The response will include a JSON object containing the details of the created autopayout rule, including the token, `destination_token` and percentage.","operationId":"createAutopayoutRule","tags":["Wallet"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutopayRule"}}},"description":"Autopayout rule configuration."},"responses":{"201":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutopayoutResp"},"examples":{"Add AutoPayout Response":{"value":{"token":"autopayout_3684cc43-fe3b-4994-8ca1-7dc0db94430f","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","percentage":50,"attr_set_token":"attr_set_d43bef25-78b9-4ed8-a351-dac8fb19e462"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"delete":{"summary":"Delete AutoPayout rule","description":"This **DELETE** endpoint is used to delete an existing autopayout rule. <br> You can use this endpoint to remove an autopayout rule that is no longer needed. <br> To use this endpoint, you need to provide the `user_token` and `wallet_token` as required parameters in the URL Path, and the token of the autopayout rule you wish to delete in the request Body. <br> The response will include a message indicating the success of the deletion.","operationId":"deleteAutopayoutRule","parameters":[{"schema":{"type":"string","example":"autopayout_3684cc43-fe3b-4994-8ca1-7dc0db94430f"},"in":"query","name":"token","description":"Autopayout token to delete","required":true}],"tags":["Wallet"],"responses":{"204":{"description":"Succesfully deleted."},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/attribute/{user_token}/velocity":{"parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"post":{"summary":"Attributes velocity check","operationId":"findAttributesVelocity_deprecated","description":"This **POST** endpoint is used to perform an attributes velocity check to identify users with matching attribute values. <br> You can use this endpoint to help prevent fraudulent activities by monitoring for unusual attribute value changes over time. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL path and the required parameters in the request Body. <br> The endpoint will then compare the provided attribute value with the historical attribute values for the same user and determine if it meets the velocity check criteria.","tags":["KYC"],"responses":{"200":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","description":"Array of matching user_tokens","items":{"type":"string","default":"usr_37ec3232-bda3-4aed-9e79-c03b2373fa3b"}},"examples":{"Matching velocity users":{"value":["usr_37ec3232-bda3-4aed-9e79-c03b2373fa3b"]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttrVelocityRequest"}}}},"deprecated":true}},"/attribute/{user_token}/velocity":{"parameters":[{"name":"user_token","in":"path","description":"Token representing the user to retrieve attributes for","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"post":{"summary":"Attributes velocity check","operationId":"findAttributesVelocity","description":"This **POST** endpoint is used to perform an attributes velocity check to identify users with matching attribute values. <br> You can use this endpoint to help prevent fraudulent activities by monitoring for unusual attribute value changes over time. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL path and the required parameters in the request Body. <br> The endpoint will then compare the provided attribute value with the historical attribute values for the same user and determine if it meets the velocity check criteria.","tags":["KYC"],"responses":{"200":{"description":"Succesfully created.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","description":"Array of matching user_tokens","items":{"type":"string","default":"usr_37ec3232-bda3-4aed-9e79-c03b2373fa3b"}},"examples":{"Matching velocity users":{"value":["usr_37ec3232-bda3-4aed-9e79-c03b2373fa3b"]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttrVelocityRequest"}}}}}},"/payout/user/{user_token}/kyc/id":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user to retrieve attributes for","in":"path","required":true}],"post":{"summary":"Upload ID photos","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":[{"type":"face","content":"data:image/png;base64,R0lGODlhAQABAAAAACw="}]},"nullable":true}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"operationId":"upload-id-photos","requestBody":{"content":{"application/json":{"schema":{"type":"array","x-examples":{"Example 1":[{"type":"","content":""}]},"items":{"$ref":"#/components/schemas/IDUpload"}}}}},"description":"Upload IDs for the provided user. This is an optional endpoint if the images are captured through means other than the link that is generated in the attributes."},"get":{"summary":"Get all KYC sessions","operationId":"get-user-user_token-kyc-attempts","description":"This **GET** endpoint is used to obtain all previous KYC sessions for the user with the provided user token. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KYCSession"}},"examples":{"KYC Responses":{"value":[{"provider":"Veriff","session_id":"20ea33e3-fb0c-4387-944d-511bd605b0d5","session_time":"2019-08-24T14:15:22Z","status":"Started","resp":{},"fee":0}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}}}},"/payout/user/{user_token}/kyc/veriff/{session_id}":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user to retrieve attributes for","in":"path","required":true},{"schema":{"type":"string"},"name":"session_id","in":"path","required":true,"description":"Veriff session id"}],"get":{"summary":"Get available media for a Veriff session id","operationId":"getAvailableVeriffSessionMedia","description":"This **GET** endpoint is used to obtain all available media for a Veriff session. <br> To use this endpoint, you need to provide the `user_token` and Veriff `session_id` as parameters in the URL Path.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","x-examples":{"Example 1":[{"media_id":"cdedd5b0-5541-44bb-8d8c-90bd24b469a2","name":"face","mime":"image/jpeg"},{"media_id":"083d2e0c-7a81-4b1d-90ae-ce092f75bcb2","name":"face-pre","mime":"image/jpeg"}]},"items":{"type":"object","required":["media_id","name","mime"],"properties":{"media_id":{"type":"string","description":"ID of the media file. To be used to download the file","example":"2208facf-5cbe-4cd1-81d0-063dea884117"},"name":{"type":"string","description":"The name of the file","example":"document-back"},"mime":{"type":"string","description":"The file mime type. i.e image/jpeg","example":"image/jpeg"}}}},"examples":{"Sample media":{"value":[{"media_id":"2208facf-5cbe-4cd1-81d0-063dea884117","name":"document-back","mime":"image/jpeg"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}}}},"/payout/user/{user_token}/kyc/veriff/{session_id}/{media_id}":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user to retrieve attributes for","in":"path","required":true},{"schema":{"type":"string"},"name":"session_id","in":"path","required":true,"description":"Veriff session id"},{"schema":{"type":"string"},"name":"media_id","in":"path","required":true,"description":"Media file ID"}],"get":{"summary":"Get media content for a Veriff session id","operationId":"getVeriffSessionMedia","description":"This **GET** endpoint returns the content of a media file for a Veriff session. <br><br>To use this endpoint, provide the `user_token`, Veriff `session_id` and `media_id` as path parameters.<br><br>The response **always** includes a short-lived presigned `url` (valid for 2 minutes) that the client can use to download the file directly from storage. When the file is small enough to fit within the API response size limit, the base64-encoded file bytes are **also** returned inline in the `content` field as an optimization to save a round trip. For larger files, `content` is omitted and the client must download via the `url`. Clients should therefore use `content` when present and otherwise fall back to `url`.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Short-lived (2 minute) presigned URL to download the media file directly from storage. Always present.","example":"https://payee-docs.s3.eu-west-1.amazonaws.com/cdedd5b0-5541-44bb-8d8c-90bd24b469a2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=120&..."},"content":{"type":"string","description":"Base64-encoded file content. Only present when the file is small enough to be inlined within the API response size limit; omitted for larger files, which must be retrieved via `url`.","example":"U3dhZ2dlciByb2Nrcw=="}}},"examples":{"Small file (inlined)":{"value":{"url":"https://payee-docs.s3.eu-west-1.amazonaws.com/cdedd5b0-5541-44bb-8d8c-90bd24b469a2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=120&...","content":"U3dhZ2dlciByb2Nrcw=="}},"Large file (url only)":{"value":{"url":"https://payee-docs.s3.eu-west-1.amazonaws.com/cdedd5b0-5541-44bb-8d8c-90bd24b469a2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=120&..."}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}}}},"/payout/user/{user_token}/kyc/veriff":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"get":{"summary":"Get a Veriff session link","operationId":"get-user-user_token-kyc-veriff","description":"This **GET** endpoint is used to obtain a link to a Veriff session for the user with the provided user token. <br> The endpoint will then generate a session link that you can use to initiate an identity verification process for the user through the Veriff platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path. <br> The response will contain the session link as a URL in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"session_url":{"type":"string","description":"URL for Veriff session that can be used by the SDKs (https://developers.veriff.com/#integrations) or by redirecting the payee to the URL."},"session_id":{"type":"string","description":"Veriff Session ID"}},"required":["session_url","session_id"]},"examples":{"Veriff Session Link Responses":{"value":{"session_url":"https://session.veriff.com/","session_id":"82440389-dae2-49c1-aaa0-088d632590b0"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uri","example":"https://members.masspay.io/?complete_veriff=true"},"in":"query","name":"callback_override","description":"Optional HTTPS URL to redirect the user to after completing their Veriff ID submission, overriding the default callback."}]},"put":{"summary":"Link a Veriff session id","operationId":"put-user-user_token-kyc-veriff","description":"This **PUT** endpoint is used to link a Veriff session for the user with the provided user token. <br> The endpoint will then download all session data and images from the Veriff platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `session_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Veriff Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"session_id","description":"Veriff `session_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/ondato":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a Ondato session id","operationId":"put-user-user_token-kyc-ondato","description":"This **PUT** endpoint is used to link a Ondato session for the user with the provided user token. <br> The endpoint will then download all session data and images from the Ondato platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `identification_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Ondato Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"identification_id","description":"Ondato `identification_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/persona":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a Persona Inquiry id","operationId":"put-user-user_token-kyc-persona","description":"This **PUT** endpoint is used to link a Persona inquiry for the user with the provided user token. <br> The endpoint will then download all inquiry data and images from the Persona platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `reference_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Ondato Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"reference_id","description":"Persona `reference_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/sumsub":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a SumSub session id","operationId":"put-user-user_token-kyc-sumsub","description":"This **PUT** endpoint is used to link a SumSub applicant for the user with the provided user token. <br> The endpoint will then download all applicant data and images from the SumSub platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `applicant_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Ondato Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"applicant_id","description":"SumSub `applicant_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/aiprise":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a AiPrise session id","operationId":"put-user-user_token-kyc-aiprise","description":"This **PUT** endpoint is used to link a AiPrise applicant for the user with the provided user token. <br> The endpoint will then download all applicant data and images from the AiPrise platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `verification_session_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Ondato Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"verification_session_id","description":"AIPrise `verification_session_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/didit":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a Didit session id","operationId":"put-user-user_token-kyc-didit","description":"This **PUT** endpoint is used to link a Didit applicant for the user with the provided user token. <br> The endpoint will then download all applicant data and images from the Didit platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `verification_session_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Didit Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"verification_session_id","description":"Didit `verification_session_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/agechecker":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link an AgeChecker verification uuid","operationId":"put-user-user_token-kyc-agechecker","description":"This **PUT** endpoint is used to link an AgeChecker.Net age verification to the user with the provided user token. <br> The endpoint will fetch the verification status and the verified buyer data (name, date of birth and address) from AgeChecker.Net using your account secret; only an `accepted` verification is imported. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as the AgeChecker verification `uuid` as a Query Parameter. <br> The response will contain success boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link AgeChecker Verification Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string"},"in":"query","name":"uuid","description":"AgeChecker.Net verification `uuid` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/yoti":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a Yoti session id","operationId":"put-user_token-kyc-yoti","description":"This **PUT** endpoint is used to link a Yoti session for the user with the provided user token. <br> The endpoint will then download all session data and images from the Yoti platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `session_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Ondato Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"session_id","description":"Yoti `session_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/plaid":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a Plaid session id","operationId":"put-user-user_token-kyc-plaid","description":"This **PUT** endpoint is used to link a Plaid session for the user with the provided user token. <br> The endpoint will then download all session data and images from the Plaid platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `identity_verification_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Ondato Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"identity_verification_id","description":"Plaid `identity_verification_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/stripe":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a Stripe Identity Verification Report","operationId":"put-user-user_token-kyc-stripe","description":"This **PUT** endpoint is used to link a Stripe Identity Verification Report for the user with the provided user token. <br> The endpoint will then download all report data and images from the Stri platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `verification report id` starting with `vr_` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Stripe Identity Report Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","example":"vr_1MwBlH2eZvKYlo2C91hOpFMf","pattern":"^vr_[a-zA-Z0-9]+$"},"in":"query","name":"verification_report_id","description":"Stripe `verification_report_id` to link to this user","required":true}]}},"/payout/user/{user_token}/kyc/shuftipro":{"parameters":[{"schema":{"type":"string"},"name":"user_token","description":"Token representing the user","in":"path","required":true}],"put":{"summary":"Link a ShuftiPro session id","operationId":"put-user-user_token-kyc-shuftipro","description":"This **PUT** endpoint is used to link a ShuftiPro session for the user with the provided user token. <br> The endpoint will then download all session data and images from the ShuftiPro platform. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path as well as a `reference_id` as a Query Parameter. <br> The response will contain succeess boolean with an error description in a JSON format.","tags":["KYC"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicator whether the link process was successful or not"},"error":{"type":"string","description":"In case of an error, includes a short description"}},"required":["success"]},"examples":{"Link Veriff Session Response":{"value":{"success":true,"error":"Failed to link"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"parameters":[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"reference_id","description":"ShuftiPro `reference` to link to this user","required":true}]}},"/payout/tax":{"get":{"summary":"Get list of users' annual balance","description":"This **GET**  endpoint is used to get tax information for a specific user identified by their `user_token`. It provides access to historical tax attribute values as well as the ability to perform attribute velocity checks. <br>  To use this endpoint, replace `user_token` in the URL path with the actual user token of the user whose tax information you want to retrieve. This endpoint's purpose is to aid in the identification of users with matching attribute values and to prevent fraudulent activities by monitoring unusual attribute value changes over time. It compares the provided attribute value to the historical attribute values for the same user to see if it meets the velocity check criteria.","tags":["Tax"],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaxYearUserResp"}},"examples":{"List of Tax Response":{"value":[{"user_token":"usr_123e4567-e89b-12d3-a456-426614174000","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":90405,"country":"USA","first_name":"John","middle_name":"","last_name":"Doe","email":"jdoe@masspay.io","mobile_number":"16502000226","business_name":"ABC Company","date_of_birth":"1975-03-24","balance":1500,"tax_id":"123-45-678"}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"get-tax-users","parameters":[{"schema":{"type":"number"},"in":"query","name":"amount_threshold","description":"If specified, only show users whose total balance exceeds the provided amount","required":true},{"schema":{"type":"integer"},"in":"query","name":"tax_year","description":"The year for which we would like to obtain tax information for. If none provided, defaults to previous year.","required":true},{"schema":{"type":"string","format":"uuid","example":"usr_aac401aa-6e5e-4af4-bcc1-2e06c18a4735,usr_2baa773a-9ce6-401a-944b-dd95098e6730"},"in":"query","name":"user_token","description":"Optional user token. When provider, it will return the tax amount for the provided users. For more than one user, provided the tokens comma separated."}],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/{user_token}/tax":{"get":{"summary":"Get link for tax interview","description":"This **GET** endpoint is used to get a W8/W9 tax interview link for a specific user identified by their `user_token`. The user should be directed to link that is obtained by this endpoint.<br>To use this endpoint, replace `user_token` in the URL path with the actual user token of the user whose tax information you want to collect.<br>The user's stored address is pre-filled on the hosted form. Store the user's country of residence (not citizenship): a non-US country pre-fills a foreign address, which the hosted W-9 accepts (U.S. citizens living abroad file a W-9 with their foreign address). A US address is only pre-filled when its state and ZIP code are valid US values; otherwise the user enters the address on the form. The hosted form also lets the user upload an already completed W-9.","tags":["Tax"],"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"interview_url":{"type":"string","description":"URL for W8/W9 tax inteview"}},"required":["interview_url"]}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"get-tax-interview-link","parameters":[{"schema":{"type":"string","format":"uri","example":"https://www.masspay.io"},"in":"query","name":"return_url","description":"If specified, the user will be redirected to this URL upon submission of the interview process"},{"schema":{"type":"string","format":"uri","example":"https://www.masspay.io"},"in":"query","name":"cancel_url","description":"If specified, the user will be redirected to this URL when they cancel the interview. If not provided, the cancel button will not be displayed."}],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/interviews":{"get":{"summary":"Get all tax interview sessions","description":"This **GET** endpoint is used to obtain all previous Tax interview sessions for the user with the provided user token. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path.","tags":["Tax"],"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KYCSession"}},"examples":{"TaxBandits":{"value":[{"provider":"TaxBandits","session_id":"0849d05d-afee-431d-8e44-4d690fdb6f08","session_time":"2019-08-24T14:15:22Z","status":"Started","fee":1.2,"resp":{"EventType":"WHCERTIFICATE_STATUS_CHANGE","OTADetails":null,"pdf_base64":"R0lGODlhAQABAAAAACw=","FormType":"FormW9","WebhookRef":"1689a471-4d44-42f9-8b09-5be66f928dd0","FormW9":{"SubmissionId":"9e205919-a68e-4c01-9331-48b2c0e2a2d9","Requester":{"BusinessId":"c40f85ce-32c7-496c-8428-b691006aafa2","PayerRef":"C449","BusinessNm":"Apple Inc","FirstNm":null,"MiddleNm":null,"LastNm":null,"Suffix":null,"TINType":"EIN","TIN":"00-0000000","DBAId":null,"DBARef":null},"PayeeRef":"0a9dcd16-1bc9-11f1-8874-0231b701c2c7","RecipientId":"b9427ca8-acb3-4131-a26f-61d88f5d0d55","W9Status":"COMPLETED","ExpireDate":null,"StatusTs":"2026-03-13 11:54:44 -04:00","CountryPhoneCode":null,"Phone":null,"TINMatching":{"Status":"SUCCESS","StatusTs":"2026-03-10 16:29:43 -04:00","StatusMsg":null,"Errors":null},"FormW9RequestType":"COMMON_URL_API","Email":"mickey@mouse.com","FormData":{"Line1Nm":"Mickey Mouse","Line2Nm":null,"FirstNm":null,"MiddleNm":null,"LastNm":null,"Suffix":null,"TINType":"SSN","TIN":"000-00-0000","Address":{"Address1":"2000 Main St","Address2":null,"City":"Santa Monica","State":"CA","ZipCd":"90401","Country":"US"},"AccountNum":null,"FederalTaxClassification":"Individual or Sole proprietor or Single-member LLC","IsLine3b":false,"ExemptPayeeCd":null,"ExemptFromFATCA":null,"IsBackUpWH":false},"Errors":null},"FormW8Ben":null,"FormW8BenE":null,"FormW8ECI":null,"FormW8IMY":null,"FormW8EXP":null}}]},"TaxIdentity":{"value":[{"provider":"TaxIdentity","session_id":"0849d05d-afee-431d-8e44-4d690fdb6f08","session_time":"2019-08-24T14:15:22Z","status":"Started","fee":1.2,"resp":{"IdentityKey":"be830483-a132-4455-8a6f-814e9973b54f","AccountId":"usr_730d1f42-55c5-4cec-ba92-3b4ab41a3ceb","LegalName":"Mickey Mouse","TaxStatus":"ValidatedTaxInfo","FormType":"W8BEN-I","IsUSPerson":false,"FirstName":"Mickey","LastName":"Mouse","KYCStatus":"KYCNotTested","TaxTreatyCountry":"Mexico","TaxTreatyCountryCode":"MX","TaxIncomeType":"Service","ConsentElectronicSignature":true,"ConsentElectronicReporting":true,"CreatedOn":"2020-06-14T06:20:16.377Z","ModifiedOn":"2020-06-14T06:24:00.34Z","EmailAddress":"mickey@disney.com","SignatureDate":"2029-06-14T06:24:00.31Z","DoingBusinessAsName":"Mickey","IsIndividual":true,"PaymentThroughQI":false,"TWR_RoyaltyCopyright":30,"TWR_RoyaltyFilm":30,"ExtraFormData":{"CountryIncorporation":"Mexico","PrimaryPhone":"7147814636"},"IsECIBusiness":false,"RecordSource":"Interview","PortalSource":"Disney","EntityType":"Individual","Timestamp":"2029-06-14T06:24:12.6160059Z","HasTreatyClaim":false,"DateOfBirth":"1928-11-18T00:00:00Z","TWR_Royalty_OtherIndustrial":30,"PermAddress":{"AddressLine1":"1313 Disneyland","AddressLine2":"","AddressCity":"Morelia","AddressState":"Michoacan","AddressPostcode":"58154","AddressCountry":"Mexico","AddressCountryCode":"MX"},"MailAddress":{"AddressLine1":"1313 Disneyland","AddressLine2":"","AddressCity":"Morelia","AddressState":"Michoa","AddressPostcode":"58254","AddressCountry":"Mexico","AddressCountryCode":"MX"},"IsSubjectToBWHT":false,"ForeignTINNotReqd":false,"CountryIncorporationCode":"MX","CountryIncorporation":"Mexico","PrimaryPhone":"7147814636","TWR_Entertainment":30,"event_type":"tax_identity"}}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"get-tax-interview-sessions","parameters":[],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/wallets/{wallet_token}":{"parameters":[{"schema":{"type":"string"},"name":"wallet_token","in":"path","required":true,"description":"Token representing the wallet to retrieve (usr_wlt_, clnt_wlt_ or mp_card_ prefixed)."}],"get":{"summary":"Wallet details","operationId":"getWalletDetails","description":"This **GET** endpoint is used to retrieve a single wallet by its `wallet_token`: your own client wallet (`clnt_wlt_` token, type `CLIENT_FUNDS`) or a wallet of one of your users (`usr_wlt_` / `mp_card_` token, type `USER_FUNDS` / `MASSPAY_CARD`). <br> The response is the same wallet object `GET /wallet/{user_token}` lists: `type` tells whether it is a client or a user wallet, `user_token` is present for user wallets only, `balance` and `currency_code` give the current balance, `client_paying_fees` / `fee_wallet_token` describe who pays the wallet's fees, `card_type` / `last_4` are returned for card wallets and `wiring_instructions` when deposit instructions are available for the wallet. <br> A wallet that does not exist or does not belong to your account answers 404.","tags":["Wallet"],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}],"responses":{"200":{"description":"Successful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTxnResp"},"examples":{"User wallet":{"value":{"user_token":"usr_ba4275f2-bae1-488d-9d6f-20af1cd83574","token":"usr_wlt_8bb3693f-2f98-43dd-a990-615b6a21596d","balance":100.5,"currency_code":"USD","type":"USER_FUNDS","active":true,"client_paying_fees":true,"fee_wallet_token":"clnt_wlt_0f4b7d3e-1234-4c8a-9c1e-0a1b2c3d4e5f"}},"Client wallet with deposit instructions":{"value":{"token":"clnt_wlt_0f4b7d3e-1234-4c8a-9c1e-0a1b2c3d4e5f","balance":25000,"currency_code":"USD","type":"CLIENT_FUNDS","active":true,"client_paying_fees":false,"wiring_instructions":{"accountNumber":"2010001234","routingNumber":"021214891","accountType":"Deposit","title":"Acme Corp","currency":"usd","status":"Active"}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/wallets/{wallet_token}/ledger":{"parameters":[{"schema":{"type":"string"},"name":"wallet_token","in":"path","required":true,"description":"Token representing the wallet to get ledger entries for."}],"get":{"summary":"Ledger history","operationId":"getWalletLedgerHistory","description":"This **GET** endpoint is used to retrieve a list of all ledger entries, including payouts, payins, loads, spendbacks, fees, credits, and reversals, for a wallet with the provided wallet token. <br> You can use this endpoint to obtain a comprehensive history of balance movements for the provided wallet, allowing you to track and reconcile its activity over time. <br> To use this endpoint, you need to provide the `wallet_token` as a parameter in the URL Path. <br> The response will contain a JSON array of ledger entry objects, each including entry details, along with pagination metadata. Results can be paginated either with `page` or with `last_token`, passing the token of the last ledger entry from a previous response; the two parameters cannot be combined in the same request.","tags":["Ledger"],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"number","default":10,"maximum":100,"minimum":0},"in":"query","name":"number_of_records","description":"Number of records to return. Defaults to 10 if no value is provided"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2020-03-31","format":"date"},"in":"query","name":"start_date","description":"Starting date - in UTC"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2020-03-31","format":"date"},"in":"query","name":"end_date","description":"Ending date - in UTC"},{"schema":{"type":"integer","default":1,"minimum":1},"in":"query","name":"page","description":"Page number. Cannot be combined with `last_token`"},{"schema":{"type":"string","example":"ltx_3f2c9b1a-77aa-4c3e-b2c4-1d2e3f4a5b6c"},"in":"query","name":"last_token","description":"Token of the last ledger entry received in a previous response; results continue from the entry immediately following it. Cannot be combined with `page`"},{"schema":{"type":"string","example":"payout","enum":["payout","payout_cancel","payout_reversal","payin","payin_reversal","payin_deposit_return","topup","topup_reversal","service_fee","wallet_credit","wallet_debit","spendback","load","load_reversal","spendback_reversal"]},"in":"query","name":"type","description":"Filter particular types of ledger entries. Comma separated to include multiple types","style":"form"}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerHistoryResp"},"examples":{"Ledger History Response":{"value":{"ledger_entries":[{"token":"ltx_3f2c9b1a-77aa-4c3e-b2c4-1d2e3f4a5b6c","user_token":"usr_59a9ccce-0280-4207-9200-891c9109915c","wallet_token":"usr_wlt_9e5a349e-8d10-4a0b-9d8f-6b3f2a1c4d7e","amount":-50.1,"currency_code":"USD","timestamp":"2019-08-24T14:15:22.123Z","notes":"Purchase of Candles. Order #14930","type":"payout","ref_token":"payout_123e4567-e89b-12d3-a456-426614174000"}],"metadata":{"current_page":0,"total_results":0,"results_per_page":0,"total_pages":0}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/wallets/{wallet_token}/ledger/{ledger_transaction_token}":{"parameters":[{"schema":{"type":"string"},"name":"wallet_token","in":"path","required":true,"description":"Token representing the wallet the ledger entry belongs to."},{"schema":{"type":"string","example":"ltx_3f2c9b1a-77aa-4c3e-b2c4-1d2e3f4a5b6c"},"name":"ledger_transaction_token","in":"path","required":true,"description":"Token representing the ledger entry to retrieve."}],"get":{"summary":"Ledger entry","operationId":"getWalletLedgerEntry","description":"This **GET** endpoint is used to retrieve a single ledger entry for a wallet with the provided wallet token. <br> You can use this endpoint to obtain the details of a specific balance movement, such as a payout, payin, load, spendback, fee, credit, or reversal, identified by its ledger entry token. <br> To use this endpoint, you need to provide the `wallet_token` and the `ledger_transaction_token` as parameters in the URL Path. <br> The response will contain a single JSON ledger entry object including entry details.","tags":["Ledger"],"parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}],"responses":{"200":{"description":"Succesful operation.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LedgerEntry"},"examples":{"Ledger Entry Response":{"value":{"token":"ltx_3f2c9b1a-77aa-4c3e-b2c4-1d2e3f4a5b6c","user_token":"usr_59a9ccce-0280-4207-9200-891c9109915c","wallet_token":"usr_wlt_9e5a349e-8d10-4a0b-9d8f-6b3f2a1c4d7e","amount":-50.1,"currency_code":"USD","timestamp":"2019-08-24T14:15:22.123Z","notes":"Purchase of Candles. Order #14930","type":"payout","ref_token":"payout_123e4567-e89b-12d3-a456-426614174000"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payout/{user_token}/tax/forms":{"get":{"summary":"Get all tax form submissions","description":"This **GET** endpoint is used to obtain all previous tax form submissions for the user with the provided user token. <br> To use this endpoint, you need to provide the `user_token` as a parameter in the URL Path.","tags":["Tax"],"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaxFormSubmission"}},"examples":{"Example":{"value":[{"provider":"TaxBandits","submission_id":"945dfedc-ad7f-4af7-b20c-06082ffa3cb3","tax_year":"2024","tax_form":"1099NEC","status":"ACCEPTED","fee":2.5,"currency":"USD","gross_amount":5000,"supplemental_gross_amount":0,"is_postal":false,"time_created":"2024-01-15T14:15:22Z","files_content":{"file_name":"1099NEC_2024.pdf","content":"base64encodedcontent..."}}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"operationId":"get-tax-form-submissions","parameters":[],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/form1099nec":{"post":{"summary":"Submit Form 1099-NEC","description":"This **POST** endpoint is used to submit a Form 1099-NEC (Nonemployee Compensation) for a specific user identified by their `user_token`. The 1099-NEC form is used to report nonemployee compensation of $600 or more. Basic information (name, address, email, phone, TIN) is retrieved from the user's existing profile.","tags":["Tax"],"operationId":"post-tax-form1099nec","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099NECRequest"},"examples":{"BasicNEC":{"value":{"tax_year":"2024","nonemployee_compensation":5000,"is_direct_sales":false,"federal_tax_withheld":0,"account_number":"CONTRACTOR-001"}},"NECWithStateFiling":{"value":{"tax_year":"2024","nonemployee_compensation":15000,"is_direct_sales":false,"federal_tax_withheld":600,"account_number":"CONTRACTOR-002","is_second_tin_notice":false,"state_filing":[{"state_code":"CA","state_id_number":"123456789","state_tax_withheld":150,"state_income":15000}]}},"NECWithDirectSales":{"value":{"tax_year":"2024","nonemployee_compensation":0,"is_direct_sales":true,"federal_tax_withheld":0,"account_number":"SALES-REP-001"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099NECSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"put":{"summary":"Update or Correct Form 1099-NEC","description":"This **PUT** endpoint is used to update or correct a previously submitted Form 1099-NEC. The system automatically determines whether to perform an **Update** (if the form has not yet been accepted by the IRS) or a **Correction** (if the form has already been accepted by the IRS). For corrections, specify `correction_type` as VOID, RECIPIENT, AMOUNT, or RECIPIENT_AMOUNT.","tags":["Tax"],"operationId":"put-tax-form1099nec","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099NECUpdateRequest"},"examples":{"UpdateBeforeAcceptance":{"summary":"Update before IRS acceptance","value":{"submission_id":"abc123-def456-ghi789","tax_year":"2024","nonemployee_compensation":6000,"is_direct_sales":false,"federal_tax_withheld":120,"account_number":"CONTRACTOR-001"}},"CorrectionAmountOnly":{"summary":"Correct amounts after IRS acceptance","value":{"submission_id":"abc123-def456-ghi789","correction_type":"AMOUNT","tax_year":"2024","nonemployee_compensation":7500,"is_direct_sales":false,"federal_tax_withheld":150,"account_number":"CONTRACTOR-001"}},"CorrectionRecipient":{"summary":"Correct recipient info after IRS acceptance","value":{"submission_id":"abc123-def456-ghi789","correction_type":"RECIPIENT","tax_year":"2024","nonemployee_compensation":5000,"is_direct_sales":false,"federal_tax_withheld":0}},"CorrectionVoid":{"summary":"Void the original filing","value":{"submission_id":"abc123-def456-ghi789","correction_type":"VOID"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099UpdateCorrectionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/form1099nec/transmit":{"post":{"summary":"Transmit Form 1099-NEC to the IRS","description":"This **POST** endpoint is used to transmit a Form 1099-NEC to the IRS for a specific user identified by their `user_token`. Once transmitted, the form cannot be edited or deleted. If no `submission_id` is provided, the latest untransmitted 1099-NEC form for the user will be transmitted.","tags":["Tax"],"operationId":"post-tax-form1099nec-transmit","parameters":[],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099NECTransmitRequest"},"examples":{"WithSubmissionId":{"value":{"submission_id":"e88e7f1d-7ae5-43b6-99f6-38d85664035a"}},"LatestUntransmitted":{"value":{}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099NECTransmitResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found - No untransmitted 1099-NEC form found for this user.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/form1099k/transmit":{"post":{"summary":"Transmit Form 1099-K to the IRS","description":"This **POST** endpoint is used to transmit a Form 1099-K to the IRS for a specific user identified by their `user_token`. Once transmitted, the form cannot be edited or deleted. If no `submission_id` is provided, the latest untransmitted 1099-K form for the user will be transmitted.","tags":["Tax"],"operationId":"post-tax-form1099k-transmit","parameters":[],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099KTransmitRequest"},"examples":{"WithSubmissionId":{"value":{"submission_id":"e88e7f1d-7ae5-43b6-99f6-38d85664035a"}},"LatestUntransmitted":{"value":{}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099KTransmitResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found - No untransmitted 1099-K form found for this user.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/form1099k":{"post":{"summary":"Submit Form 1099-K","description":"This **POST** endpoint is used to submit a Form 1099-K (Payment Card and Third Party Network Transactions) for a specific user identified by their `user_token`. The 1099-K form reports payment card and third-party network transactions. Basic information (name, address, email, phone, TIN) is retrieved from the user's existing profile.","tags":["Tax"],"operationId":"post-tax-form1099k","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099KRequest"},"examples":{"PaymentCard":{"value":{"tax_year":"2024","supplemental_gross_amount":12500,"merchant_category_code":"5734","number_of_payment_transactions":150,"federal_tax_withheld":500,"monthly_amounts":{"january":1000,"february":1000,"march":1000,"april":1000,"may":1000,"june":1000,"july":1000,"august":1000,"september":1000,"october":1000,"november":1250,"december":1250},"account_number":"ACCT-12345","filer_indicator":"PSE","transactions_reported_type":"Payment_Card","pse_details":{"pse_name":"Payment Services Inc","pse_phone":"5551234567"},"state_filing":[{"state_code":"CA","state_id_number":"123456789","state_tax_withheld":100}]}},"ThirdPartyNetwork":{"value":{"tax_year":"2024","supplemental_gross_amount":8500,"merchant_category_code":"5999","number_of_payment_transactions":85,"federal_tax_withheld":0,"monthly_amounts":{"january":500,"february":600,"march":700,"april":700,"may":750,"june":800,"july":800,"august":850,"september":700,"october":700,"november":700,"december":700},"account_number":"USER-67890","filer_indicator":"EPF","transactions_reported_type":"Third_Party_Network"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099KSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"put":{"summary":"Update or Correct Form 1099-K","description":"This **PUT** endpoint is used to update or correct a previously submitted Form 1099-K. The system automatically determines whether to perform an **Update** (if the form has not yet been accepted by the IRS) or a **Correction** (if the form has already been accepted by the IRS). For corrections, specify `correction_type` as VOID, RECIPIENT, AMOUNT, or RECIPIENT_AMOUNT.","tags":["Tax"],"operationId":"put-tax-form1099k","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099KUpdateRequest"},"examples":{"UpdateBeforeAcceptance":{"summary":"Update before IRS acceptance","value":{"submission_id":"abc123-def456-ghi789","tax_year":"2024","gross_amount":13000,"merchant_category_code":"5734","number_of_payment_transactions":160,"federal_tax_withheld":520,"monthly_amounts":{"january":1000,"february":1000,"march":1000,"april":1000,"may":1000,"june":1000,"july":1000,"august":1000,"september":1000,"october":1000,"november":1500,"december":1500},"account_number":"ACCT-12345","filer_indicator":"PSE","transactions_reported_type":"Payment_Card"}},"CorrectionAmountOnly":{"summary":"Correct amounts after IRS acceptance","value":{"submission_id":"abc123-def456-ghi789","correction_type":"AMOUNT","tax_year":"2024","gross_amount":14000,"merchant_category_code":"5734","number_of_payment_transactions":175,"federal_tax_withheld":560,"monthly_amounts":{"january":1100,"february":1100,"march":1100,"april":1100,"may":1100,"june":1100,"july":1100,"august":1100,"september":1100,"october":1100,"november":1600,"december":1600}}},"CorrectionVoid":{"summary":"Void the original filing","value":{"submission_id":"abc123-def456-ghi789","correction_type":"VOID"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form1099UpdateCorrectionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/interview/w9":{"post":{"summary":"Submit W-9 tax form","description":"This **POST** endpoint is used to submit a W-9 tax form for a specific user identified by their `user_token`. Basic information (name, address, phone) is retrieved from the user's existing profile.<br>The tax provider's W-9 API only accepts a US address: the user's stored state must be a US state and the postal code a 5 or 9 digit ZIP, otherwise the request is rejected with 400. For a U.S. person whose only address is outside the US (for example a U.S. citizen living abroad), collect the W-9 through the hosted tax interview link (`GET /payout/{user_token}/tax`), which accepts a foreign address and uploaded W-9 PDFs.","tags":["Tax"],"operationId":"post-tax-interview-w9","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/W9FormRequest"},"examples":{"Individual":{"value":{"tin_type":"SSN","tin":"123-45-6789","federal_tax_classification":"Individual","is_backup_withholding":false}},"LLC":{"value":{"tin_type":"EIN","tin":"12-3456789","federal_tax_classification":"LLC C Corporation","business_name":"Acme LLC","is_backup_withholding":false,"exempt_payee_code":"1","exempt_fatca_code":"A"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxFormSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/interview/w8ben":{"post":{"summary":"Submit W-8BEN tax form","description":"This **POST** endpoint is used to submit a W-8BEN tax form (for foreign individuals) for a specific user identified by their `user_token`. Basic information (name, address, phone) is retrieved from the user's existing profile.","tags":["Tax"],"operationId":"post-tax-interview-w8ben","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/W8BENFormRequest"},"examples":{"WithTreatyBenefits":{"value":{"citizen_of_country":"UK","foreign_tin":"AB123456C","is_ftin_not_legally_required":false,"date_of_birth":"1985-05-15","reference_number":"REF-12345","tax_treaty_benefits":{"beneficiary_country":"UK","claiming_article_paragraph":"Article 12(2)(a)","rate_of_withholding":"0","type_of_income":"Copyrights","additional_conditions":"Beneficial owner of royalties"},"signature_name":"James Williams"}},"WithoutTreatyBenefits":{"value":{"citizen_of_country":"MX","foreign_tin":"ABCD123456XYZ","is_ftin_not_legally_required":false,"date_of_birth":"1990-11-18","signature_name":"Carlos Garcia"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxFormSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/interview/w8bene":{"post":{"summary":"Submit W-8BEN-E tax form","description":"This **POST** endpoint is used to submit a W-8BEN-E tax form (for foreign entities) for a specific user identified by their `user_token`. Basic information (name, address, phone) is retrieved from the user's existing profile.","tags":["Tax"],"operationId":"post-tax-interview-w8bene","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/W8BENEFormRequest"},"examples":{"ActiveNFFE":{"value":{"organization_name":"Acme International Ltd","country_of_organization":"UK","chapter_3_status":"CORPORATION","chapter_4_status":"ACTIVE NFFE","foreign_tin":"GB123456789","is_ftin_not_legally_required":false,"tax_treaty_benefits":{"is_claiming_treaty_benefits":true,"beneficiary_country":"UK","claiming_article_paragraph":"Article 12","rate_of_withholding":"0","type_of_income":"Copyrights"},"limitation_on_benefits":"COMPANY THAT MEETS THE OWNERSHIP AND BASE EROSION TEST","certification":{"has_capacity_to_sign":true,"signer_name":"John Director"}}},"PubliclyTradedNFFE":{"value":{"organization_name":"Listed Holdings Plc","country_of_organization":"UK","chapter_3_status":"CORPORATION","chapter_4_status":"PUBLICLY TRADED NFFE","chapter_4_certification":{"securities_market_name":"London Stock Exchange"},"foreign_tin":"GB123456789","certification":{"has_capacity_to_sign":true,"signer_name":"Jane Director"}}},"ParticipatingFFI":{"value":{"organization_name":"Global Financial Services Ltd","country_of_organization":"UK","chapter_3_status":"CORPORATION","chapter_4_status":"PARTICIPATING FFI","giin":"A1B2C3.00000.SP.826","foreign_tin":"GB987654321","is_ftin_not_legally_required":false,"certification":{"has_capacity_to_sign":true,"signer_name":"Jane CFO"}}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxFormSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/interview/w8eci":{"post":{"summary":"Submit W-8ECI tax form","description":"This **POST** endpoint is used to submit a W-8ECI tax form (for foreign persons claiming income effectively connected with US trade or business) for a specific user identified by their `user_token`. Basic information (name, address, phone) is retrieved from the user's existing profile.","tags":["Tax"],"operationId":"post-tax-interview-w8eci","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/W8ECIFormRequest"},"examples":{"Corporation":{"value":{"business_name":"Dubois Consulting Inc","trade_name":"Dubois Consulting","organization_country":"CA","entity_type":"CORPORATION","tin_type":"EIN","tin":"12-3456789","foreign_tin":"123456789RC0001","is_ftin_not_legally_required":false,"us_business_address":{"address1":"789 Main Street","address2":"Suite 500","city":"New York","state":"NY","zip_code":"10001"},"item_of_income":"Consulting services, software development","is_dealer_securities_or_ptp":false,"signature_name":"Marie Dubois"}},"Individual":{"value":{"organization_country":"MX","entity_type":"INDIVIDUAL","tin_type":"ITIN","tin":"912-34-5678","foreign_tin":"ABCD123456XYZ","is_ftin_not_legally_required":false,"us_business_address":{"address1":"456 Commerce Ave","city":"Los Angeles","state":"CA","zip_code":"90001"},"date_of_birth":"1985-03-22","item_of_income":"Freelance design services","is_dealer_securities_or_ptp":false,"signature_name":"Juan Rodriguez"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxFormSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/payout/{user_token}/tax/interview/w8imy":{"post":{"summary":"Submit W-8IMY tax form","description":"This **POST** endpoint is used to submit a W-8IMY tax form (for foreign intermediaries, foreign flow-through entities, or certain U.S. branches) for a specific user identified by their `user_token`. Basic information (name, address, phone) is retrieved from the user's existing profile.","tags":["Tax"],"operationId":"post-tax-interview-w8imy","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/W8IMYFormRequest"},"examples":{"QualifiedIntermediary":{"value":{"organization_name":"Global Intermediary Services Ltd","country_of_organization":"UK","chapter_3_status":"QI_INCLUDING_A_QDD","chapter_4_status":"PARTICIPATING_FFI","us_tin_type":"QI-EIN","us_tin":"98-7654321","giin":"A1B2C3.00000.SP.826","qualified_intermediary":{"is_qi":true,"assumes_primary_withholding_responsibility":true,"assumes_primary_1099_reporting":false},"certification":{"has_capacity_to_sign":true,"signer_name":"Sarah Compliance"}}},"NonQualifiedIntermediary":{"value":{"organization_name":"Foreign Partnership ABC","country_of_organization":"DE","chapter_3_status":"NONWITHHOLDING_FOREIGN_PARTNERSHIP","chapter_4_status":"REPORTING_MODEL1_FFI","giin":"X1Y2Z3.00000.SP.276","foreign_tin":"DE123456789","is_ftin_not_legally_required":false,"certification":{"has_capacity_to_sign":true,"signer_name":"Hans Manager"}}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxFormSubmissionResponse"}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not Found"},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true}]},"/business":{"post":{"summary":"Create business","tags":["Business"],"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"responses":{"200":{"description":"Business enrollment request received successfully","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"business_token":""}},"required":["business_token","api_key"],"properties":{"business_token":{"type":"string","description":"Token representing the business"},"api_key":{"type":"string","description":"Bearer token for the new business's API access. **It becomes valid a few seconds after this response, not instantly**, in rare cases a few minutes. Until then, requests made with the key fail with `403 Forbidden` and the body `{\"message\":\"Forbidden\"}`. Retry with a short backoff for up to a minute before treating a 403 as a permissions problem. Store the key now: it is not returned again."},"webhooks":{"type":"array","description":"If any webhooks were provided in the business creation, their webhook tokens and secrets would be returned","items":{"type":"object","properties":{"webhook_token":{"type":"string","description":"The token associated with this webhook configuration"},"webhook_url":{"type":"string","description":"The URL that will receive the webhook payloads"},"event_types":{"type":"array","description":"The type of events the webhook will receive notifications for","items":{"enum":["user.created","user.status","payout.created","payout.status","payin.created","payin.status","load.created","load.status","load.reversed","spendback.created","spendback.status","spendback.inactivity","kyc.id","kyc.tax","attributes.stored","deposit_account.created","business.created","business.status","balance.credit","payout_reversal.created","payout_reversal.status","avs.completed","payin_deposit.return_completed","payin_deposit.returned","file_upload_req.created","file_upload_req.status","file_upload_req.verified"]}},"webhook_secret":{"type":"string","description":"The secret this webhook's payloads are signed with: HMAC-SHA512 over `<t>|<body>`, sent in the `X-MassPay-Signature` header (see the Webhooks guide). The payload itself is not encrypted. The secret is returned only at creation: store it now."}}}}}}}}},"201":{"description":"Created"},"202":{"description":"Accepted"},"204":{"description":"No Content"},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"operationId":"post-create-business","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBusinessTxn"}}}},"description":"This **POST** endpoint is used to initiate create a business. <br> You can use this endpoint to establish a business which you can use to transact through the MassPay platform. <br> To use this endpoint, you need to provide the required parameters in the request Body, including `business_legal_name`, `dba_business_name`, `business_incorporation_date`,  and other business entity related details. <br> The endpoint will then return a successful business token for the newly created entity. The response will contain a JSON object indicating the status of the request and any relevant business details."},"parameters":[]},"/payout/file_uploads/{user_token}/{file_upload_token}":{"post":{"summary":"Upload files by user token and file upload token","description":"This **POST** endpoint is used to upload one or more files in response to a file upload request.  \n<br> You must specify both the `user_token` and the `file_upload_token` in the URL path to identify which user and file upload request the files should be associated with.  \n<br> In the request body, you must include the `files_type` to indicate the type of documents being uploaded (e.g., *Bank Statement*, *Paper Check*, etc.) along with an array of `files`. Each file object requires the original `file_name` (with extension) and its Base64-encoded `file_content`.  \n<br> The service supports multiple file uploads in a single request. Each uploaded file is validated against the expected file types defined in the original file upload request.  \n<br> The response will confirm whether the upload was successful and return the status of the operation. Upload attempts with invalid file types, corrupted Base64 content, or files exceeding allowed limits will result in an error.  ","operationId":"post-upload-file-upload","responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","format":"uri","description":"True if upload was succesful. False otherwise"}}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"You do not have necessary permissions for the resource"},"404":{"description":"Not Found"},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exception"}}},"description":"Invalid input","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["files_type","files"],"properties":{"files_type":{"type":"string","description":"The type of files that are being uploaded. The value is obtained from the list of accepted file types in the list of file uploads request. For example: Bank Statement, Paper Check, etc","example":"Bank Statement"},"files":{"type":"array","items":{"type":"object","required":["file_name","file_content"],"properties":{"file_name":{"type":"string","description":"Original file name including file extension. Supported types: jpeg, jpg, png, gif, bmp, tiff, tif, svg, webp, raw, pdf.","example":"Chase4323.pdf"},"file_content":{"type":"string","description":"Base64-encoded file content. When uploading multiple files, the total size of the API request (including all files) is limited to 10 MB."}}}}}},"examples":{"File Upload Example":{"value":{"files_type":"Bank Statement","files":[{"file_name":"Chase4323.pdf","file_content":"string"}]}}}}}},"tags":["KYC"]},"get":{"summary":"Get file upload request details","description":"This **GET** endpoint is used to get file upload request details.  \n<br> You must specify both the `user_token` and the `file_upload_token` in the URL path to identify which user and file upload request to get details for.  \n<br> Each file upload request includes the `file_upload_token`, the types of files accepted (`files_types_accepted`), the time when the request was created, and whether the request is required to proceed with payouts.  \n<br> The response also includes any referenced attributes (`ref_attributes`) that link the file request to specific data, such as bank account details or other identifiers.  \n<br> The response will be a json object with the details of file upload request, which can then be used to determine what documents need to be uploaded by the user.  \n<br> Rejected requests are returned with `status` `rejected`, `time_rejected`, `rejection_reason` (when given) and `replacement_file_upload_token`; they no longer count toward any requirement.  ","operationId":"get-file-upload-request","responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUploadResp"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"You do not have necessary permissions for the resource"},"404":{"description":"Not Found"},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exception"}}},"description":"Invalid input","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[],"tags":["KYC"]},"parameters":[{"schema":{"type":"string","example":"usr_6da3c706-c280-43fa-a130-fafda891f1d6"},"name":"user_token","in":"path","required":true,"description":"User token to generate a link for"},{"schema":{"type":"string","example":"file_req_f8d2f013-58cd-4ccc-b12d-c373f4d89eab"},"name":"file_upload_token","in":"path","required":true,"description":"Token for file upload request"}]},"/payout/file_uploads/{user_token}":{"get":{"summary":"Get file upload requests by user token","description":"This **GET** endpoint retrieves the list of file upload requests associated with a specific user.  \n<br> You must provide the `user_token` in the URL path to identify the user.  \n<br> Each file upload request includes the `file_upload_token`, the types of files accepted (`files_types_accepted`), the time when the request was created, and whether the request is required to proceed with payouts.  \n<br> The response also includes any referenced attributes (`ref_attributes`) that link the file request to specific data, such as bank account details or other identifiers.  \n<br> You can use the optional query parameter `only_required` to filter results and return only those file upload requests that are mandatory.  \n<br> The response will be an array of file upload requests, which can then be used to determine what documents need to be uploaded by the user.  \n<br> Rejected requests are returned with `status` `rejected`, `time_rejected`, `rejection_reason` (when given) and `replacement_file_upload_token`; they no longer count toward any requirement.  ","operationId":"get-list-file-upload","responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileUploadResp"}},"examples":{"List of file upload requests":{"value":[{"file_upload_token":"file_req_06944559-812c-4c41-a344-767591c57c5d","files_types_accepted":["Bank Statement","Paper Check"],"time_of_request":"2025-05-26 07:22:56","is_required":true,"ref_attributes":{"Account Number":"************4242"},"is_completed":true,"time_completed":"2025-08-24T14:15:22Z","is_verified":true,"is_rejected":false,"status":"verified"}]}}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"You do not have necessary permissions for the resource"},"404":{"description":"Not Found"},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exception"}}},"description":"Invalid input","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"504":{"description":"Gateway Timeout"}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}],"parameters":[{"schema":{"type":"boolean","default":false,"example":false},"in":"query","name":"only_required","description":"When set to true, will only return required file upload requests. Otherwise, return also optional"},{"schema":{"type":"boolean","default":"true"},"in":"query","name":"only_incomplete","description":"When set to true, will only return incomplete file upload requests, otherwise return all"}],"tags":["KYC"]},"parameters":[{"schema":{"type":"string","example":"usr_6da3c706-c280-43fa-a130-fafda891f1d6"},"name":"user_token","in":"path","required":true,"description":"User token to generate a link for"}]},"/payin/{user_token}/{payin_token}":{"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user the pay-in belongs to"},{"schema":{"type":"string","example":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"name":"payin_token","in":"path","required":true,"description":"Token representing the pay-in transaction. Returned in the response when a pay-in is created via `/payin/{user_token}`"}],"get":{"tags":["Payin"],"summary":"Get status of a payin by payin token","description":"This **GET** endpoint is used to retrieve the status of a pay-in transaction for a user with the specified token and payin token. <br> You can use this endpoint to check the status of a specific pay-in transaction, including whether the pay-in has been successfully processed, is still awaiting user action, or resulted in an error. <br> To use this endpoint, you need to provide the `user_token` and `payin_token` in the URL Path. <br> The response will include a JSON object containing details about the pay-in transaction, including its `status`, amounts, fees, any `required_action`, and the partner `network_response`.","operationId":"getPayinStatus","parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"},{"schema":{"type":"boolean","default":false,"example":true},"in":"query","name":"force_status_update","description":"Attempts to get an updated status from the pay-in partner/network before responding. When the partner answers, the `payin.status` webhook is sent whether or not the status changed; a changed status is also written. Leave it unset when you only need the stored state. Never set it from inside a webhook handler: the handler would send itself the next event."}],"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiatePayinResp"},"examples":{"Get Payin Response":{"value":{"payin_token":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574","source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","payment_reference":"REF-2025-04823","required_action":"NONE","instructions":"","status":"COMPLETED","requires_commit":false,"source_amount":100.5,"destination_amount":100.5,"exchange_rate":1,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{"action_code":"00","approval_code":"123456","network_id":"18","response_reason_code":"00"}}},"Payin awaiting cash deposit":{"value":{"payin_token":"payin_3a2e1f04-22b3-44a2-8bff-4ff1a76f83cd","source_token":"orgn_b7f3e9d2-1c4a-48ee-9b21-3f87e9b0c4d1","funding_code":"CASH-9F2J7L","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","payment_reference":"REF-2025-04823","required_action":"CASH_DEPOSIT_AT_STORE","instructions":"Visit any partner store and provide funding code CASH-9F2J7L to complete deposit.","status":"INITIATED","requires_commit":false,"source_amount":200,"destination_amount":200,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{}}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payin/{user_token}/{payin_token}/reverse":{"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user the pay-in belongs to"},{"schema":{"type":"string","example":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"name":"payin_token","in":"path","required":true,"description":"Token representing the pay-in transaction. Returned in the response when a pay-in is created via `/payin/{user_token}`"}],"post":{"tags":["Payin"],"summary":"Reverse (close) a payin by payin token","description":"This **POST** endpoint reverses, or closes, a pay-in transaction for the user and payin token provided. <br> Both the effect and the conditions depend on how the pay-in was funded: <ul><li><b>Temporary bank account (ACH/wire) or issued crypto deposit wallet:</b> reversing <i>closes the deposit account</i> so that it accepts no further deposits. This is permitted even after deposits have already settled — deposits already received are unaffected and remain recorded.</li><li><b>Card authorization:</b> reversing <i>releases the card authorization</i>. This is only permitted while the authorization has <i>not</i> been captured. A captured authorization represents settled funds and cannot be reversed; use the refund flow instead.</li></ul> A pay-in that has already been reversed, or that is in a non-reversible state for its funding type, returns a `400`. <br> On success the pay-in transitions to `CANCELLED` and the updated pay-in object is returned.","operationId":"reversePayin","parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReversePayinReq"},"example":{"reason":"Customer requested cancellation before depositing funds"}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiatePayinResp"},"examples":{"Closed bank account after settled wire":{"value":{"payin_token":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574","source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","funding_code":"ACCT-7781-2245","required_action":"NONE","instructions":"","status":"CANCELLED","requires_commit":false,"source_amount":100.5,"destination_amount":100.5,"exchange_rate":1,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{}}},"Released card authorization (pre-capture)":{"value":{"payin_token":"payin_3a2e1f04-22b3-44a2-8bff-4ff1a76f83cd","source_token":"orgn_b7f3e9d2-1c4a-48ee-9b21-3f87e9b0c4d1","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","required_action":"NONE","instructions":"","status":"CANCELLED","requires_commit":false,"source_amount":200,"destination_amount":200,"exchange_rate":1,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{"action_code":"00","approval_code":"REVERSED","network_id":"18","response_reason_code":"00"}}}}}}},"400":{"description":"Bad request. The pay-in cannot be reversed in its current state — for example a card authorization that has already been captured, or a pay-in that has already been reversed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payin/{user_token}/{payin_token}/deposit/{deposit_token}/return":{"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user the pay-in belongs to"},{"schema":{"type":"string","example":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"name":"payin_token","in":"path","required":true,"description":"Token representing the pay-in transaction. Returned in the response when a pay-in is created via `/payin/{user_token}`"},{"schema":{"type":"string","example":"payin_dep_1f7c9a2e-3b41-4c8d-9e5f-8a6b2c4d7e90"},"name":"deposit_token","in":"path","required":true,"description":"Token representing the individual deposit to return. Deposit tokens are listed in the `deposits` array of the pay-in object returned by `/payin/{user_token}/{payin_token}`"}],"post":{"tags":["Payin"],"summary":"Return (reverse) a single deposit made toward a payin","description":"This **POST** endpoint returns (reverses) a <i>single deposit</i> received toward a pay-in. A pay-in funded through a temporary bank account may receive multiple ACH or wire deposits over its lifetime; each deposit is identified by its own `deposit_token` and can be returned independently. This differs from `/payin/{user_token}/{payin_token}/reverse`, which closes the deposit account itself and stops <i>future</i> deposits. <br> Incoming ACH and wire deposits auto-fund and settle immediately upon receipt (status `COMPLETED`), so a return always operates on a settled deposit: the funds are sent back to the sender through the originating network and the deposit transitions to `RETURNED`. The return fee is determined by the client's pricing configuration and reported on the deposit as `return_fee`; who absorbs it is controlled by `fee_payer` — `CLIENT` (default) returns the full deposit to the sender and debits the wallet `fiat_amount` plus the fee, while `DEPOSITOR` (wire deposits only) withholds the fee from the returned funds, so a $100 deposit with a $1 fee returns $99 to the sender and the wallet is debited `fiat_amount` only. <br> The request must include a normalized `reason_code` describing why the deposit is being returned — see the `DepositReturnReason` schema for the full list. MassPay translates the normalized reason into the network-specific return code for the rail the deposit was received on (a NACHA `Rxx` code for ACH, or an ISO 20022 reason code for wires); the transmitted code is surfaced on the deposit as `network_return_code`. A free-text `reason` may also be supplied for audit purposes, and is required when `reason_code` is `OTHER`. <br> A deposit that is not in `COMPLETED` status — including one already `RETURNED` — or that does not belong to the given pay-in, returns a `400`. <br> On success the updated deposit object is returned.","operationId":"returnPayinDeposit","parameters":[{"schema":{"type":"string"},"in":"header","name":"Idempotency-Key","description":"Unique key to prevent duplicate processing"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnPayinDepositReq"},"examples":{"Return ACH deposit refused by beneficiary":{"value":{"reason_code":"REFUSED_BY_BENEFICIARY","reason":"Sender not recognized; customer refused the credit","fee_payer":"CLIENT"}},"Return wire deposit for compliance":{"value":{"reason_code":"REGULATORY_COMPLIANCE","reason":"Deposit failed sanctions screening; returned per compliance policy","fee_payer":"DEPOSITOR"}}}}}},"responses":{"200":{"description":"OK","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayinDeposit"},"examples":{"Returned ACH deposit":{"value":{"token":"payin_dep_1f7c9a2e-3b41-4c8d-9e5f-8a6b2c4d7e90","external_id":"ach-9284756102","status":"RETURNED","deposit_amount":250,"deposit_currency":"USD","fiat_amount":250,"fiat_currency":"USD","fee":"0.00","transaction_reference":"021000021234567","return_reason_code":"REFUSED_BY_BENEFICIARY","network_return_code":"R23","return_reason":"Sender not recognized; customer refused the credit","return_fee":15,"fee_payer":"CLIENT","returned_at":"2025-04-12T16:41:02Z","created_at":"2025-04-10T09:15:33Z","completed_at":"2025-04-10T09:15:33Z","updated_at":"2025-04-12T16:41:02Z"}},"Returned wire deposit":{"value":{"token":"payin_dep_7d3b0c15-9a2f-4e6b-8c41-2f5d9e8a7b64","external_id":"fedwire-20250412I1B78Q1R000123","status":"RETURNED","deposit_amount":10000,"deposit_currency":"USD","fiat_amount":10000,"fiat_currency":"USD","fee":"0.00","transaction_reference":"20250412I1B78Q1R000123","return_reason_code":"REGULATORY_COMPLIANCE","network_return_code":"RR04","return_reason":"Deposit failed sanctions screening; returned per compliance policy","return_fee":25,"fee_payer":"DEPOSITOR","returned_at":"2025-04-12T18:03:19Z","created_at":"2025-04-12T15:58:10Z","completed_at":"2025-04-12T15:58:10Z","updated_at":"2025-04-12T18:03:19Z"}}}}}},"400":{"description":"Bad request. The deposit cannot be returned in its current state — for example it is not `COMPLETED` (already `RETURNED`, or `FAILED`/`EXPIRED`), it does not belong to the given pay-in, `reason_code` is `OTHER` without an accompanying `reason`, the destination wallet balance cannot cover the return, the return fee equals or exceeds the deposit amount, or `fee_payer` is `DEPOSITOR` for an ACH/RTP deposit (modifying the returned amount is wire-only).","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}},"/payin/{user_token}":{"parameters":[{"schema":{"type":"string"},"name":"user_token","in":"path","required":true,"description":"Token representing the user to pay-in from"}],"get":{"tags":["Payin"],"summary":"Get history of payins by user token","description":"This **GET** endpoint is used to retrieve the pay-in history for a user with the specified token. <br> You can use this endpoint to view all pay-ins initiated for a user, including the `payin_token`, `source_token`, `destination_token`, amounts, and current `status`. <br> To use this endpoint, you need to provide the user token in the URL Path. <br> The response will include a JSON array of pay-in transactions for the specified user, with each transaction including details such as the pay-in token, amounts, currencies, fees, status, any `required_action`, and the partner `network_response`.","operationId":"getUserPayinsByToken","parameters":[{"name":"user_token","in":"path","description":"The user token that needs to be fetched.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}},{"schema":{"type":"number","default":10,"maximum":100,"minimum":0},"in":"query","name":"number_of_records","description":"Number of records to return. Defaults to 10 if no value is provided"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2025-03-31","format":"date"},"in":"query","name":"start_date","description":"Starting date"},{"schema":{"type":"string","pattern":"^[\\d]{4}-[\\d]{2}-[\\d]{2}$","example":"2025-03-31","format":"date"},"in":"query","name":"end_date","description":"Ending date"},{"schema":{"type":"integer","default":1,"minimum":1},"in":"query","name":"page","description":"Page number"},{"schema":{"type":"string","enum":["INITIATED","COMPLETED","CANCELLED","PENDING_ACTION","HOLD","PROCESSING","ERROR","EXPIRED","AUTHORIZED","REFUNDED","PARTIALLY_REFUNDED"],"example":"COMPLETED"},"in":"query","name":"status","description":"Filter pay-ins by status. Comma separated to include multiple statuses"}],"responses":{"200":{"description":"successful operation","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InitiatePayinResp"}},"examples":{"List of Payins Response":{"value":[{"payin_token":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574","source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","payment_reference":"REF-2025-04823","required_action":"NONE","instructions":"","status":"COMPLETED","requires_commit":false,"source_amount":100.5,"destination_amount":100.5,"exchange_rate":1,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{"action_code":"00","approval_code":"123456","network_id":"18","response_reason_code":"00"}},{"payin_token":"payin_3a2e1f04-22b3-44a2-8bff-4ff1a76f83cd","source_token":"orgn_b7f3e9d2-1c4a-48ee-9b21-3f87e9b0c4d1","funding_code":"CASH-9F2J7L","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","payment_reference":"REF-2025-04824","required_action":"CASH_DEPOSIT_AT_STORE","instructions":"Visit any partner store and provide funding code CASH-9F2J7L to complete deposit.","status":"INITIATED","requires_commit":false,"source_amount":200,"destination_amount":200,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{}}]}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]},"post":{"tags":["Payin"],"summary":"Initiate a payin transaction","description":"This **POST** endpoint initiates a pay-in transaction from a user to your account.\n<br> Use this endpoint to collect funds from users - for example, deposits, payments, or wallet top-ups.\n<br> Provide the payer's user_token in the URL path, and include in the request body the source of funds (`source_token`), deposit destination (`destination_token`), and the currency of the pay-in (`source_currency_code`).\n<br> The response returns complete details of the pay-in transaction, including status, amounts, partner network response, and any required follow-up action.\n<br><br> **Important:** A `201` response indicates the request was accepted and processed. Inspect the response body's `status` and `error` fields to determine the actual outcome. A pay-in may be `INITIATED` (awaiting user action), `PROCESSING` (in flight), `COMPLETED` (funds delivered), or `ERROR` (declined by partner or validation failure).","operationId":"initiatePayin","parameters":[{"name":"user_token","in":"path","description":"Token representing the user to pay out","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Unique key to prevent duplicate processing","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayinTxn"},"examples":{}}},"description":"Pay-in parameters","required":true},"responses":{"201":{"description":"Pay-in request accepted. Inspect the body's `status` and `error` fields to determine the actual outcome (approved, processing, awaiting user action, or declined).","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiatePayinResp"},"examples":{"Pay-in approved (card AFT)":{"summary":"AFT card top-up approved by network; client must commit to finalize.","value":{"payin_token":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574","source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","required_action":"NONE","instructions":"","status":"PROCESSING","requires_commit":true,"destination_amount":100.5,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{"action_code":"00","approval_code":"123456","address_verification":"Y","cvv2_result_code":"M","network_id":"18","response_reason_code":"00"}}},"Pay-in completed (instant)":{"summary":"Funds delivered immediately, no commit required.","value":{"payin_token":"payin_5b8e2a01-44d9-4c1c-bd31-7e2c9a31aa4f","source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","required_action":"NONE","instructions":"","status":"COMPLETED","requires_commit":false,"source_amount":50,"destination_amount":50,"exchange_rate":1,"fee":0.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{"action_code":"00","approval_code":"778890"}}},"Pay-in pending - bank transfer (ACH/Wire)":{"summary":"User must send an ACH or wire transfer to the bank account created for this transaction.","value":{"payin_token":"payin_7c9d4e60-1a2b-4f3c-8e5d-6b7a8c9d0e1f","source_token":"orgn_c8a4f1e3-2d5b-49ff-ac32-4f98fac1d5e2","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","payment_reference":"REF-2025-04901","required_action":"TRANSFER","instructions":"ACH/Wire USD to the provided account number","status":"INITIATED","requires_commit":false,"source_amount":1000,"destination_amount":1000,"fee":0,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{"account_number":"1234567890","routing_number":"021000021","swift_bic":"CSRVUS33XXX","bank_name":"Cross River Bank","bank_address":"885 Teaneck Road, Teaneck, NJ 07666","name_on_account":"Jane Doe"}}},"Pay-in pending - cash deposit at store":{"summary":"User must deposit cash at a partner store using the funding_code.","value":{"payin_token":"payin_3a2e1f04-22b3-44a2-8bff-4ff1a76f83cd","source_token":"orgn_b7f3e9d2-1c4a-48ee-9b21-3f87e9b0c4d1","funding_code":"CASH-9F2J7L","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","payment_reference":"REF-2025-04823","required_action":"CASH_DEPOSIT_AT_STORE","instructions":"Visit any partner store and provide funding code CASH-9F2J7L to complete deposit.","status":"INITIATED","requires_commit":false,"source_amount":200,"destination_amount":200,"fee":2.99,"source_currency_code":"USD","destination_currency_code":"USD","network_response":{}}},"Pay-in declined - insufficient funds":{"summary":"Network declined with action code 51.","value":{"source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","required_action":"NONE","instructions":"","status":"ERROR","requires_commit":false,"network_response":{"action_code":"51"},"error":"Insufficient funds or limit exceeded [51] Not sufficient funds","error_type":"PARTNER"}},"Pay-in declined - suspected fraud":{"summary":"Network declined with action code 59 (fraud-related).","value":{"source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","required_action":"NONE","instructions":"","status":"ERROR","requires_commit":false,"network_response":{"action_code":"59"},"error":"Card declined for fraud / security reasons [59] Suspected fraud","error_type":"PARTNER"}},"Pay-in validation error":{"summary":"Request rejected before partner call (e.g. invalid card data).","value":{"source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","required_action":"NONE","instructions":"","status":"ERROR","requires_commit":false,"network_response":{},"error":"Invalid card","error_type":"VALIDATION"}}}}}},"400":{"description":"Bad request.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400"}}}},"401":{"description":"Unauthorized.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401"}}}},"403":{"description":"Forbidden.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403"}}}},"404":{"description":"Not found.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404"}}}},"405":{"description":"Method Not Allowed.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405"}}}},"500":{"description":"Internal server error.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error500"}}}},"504":{"description":"Gateway Time-out.","headers":{"Access-Control-Allow-Origin":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error504"}}}}},"security":[{"AUTHORIZER_NAME":[]},{"api_key":[]}]}}},"servers":[{"url":"https://{environment}.masspay.io/{VERSION}","description":"MassPay's API server","variables":{"VERSION":{"default":"v1.0.0","enum":["v1.0.0"]},"environment":{"default":"api","enum":["api","staging-api"]}}}],"components":{"schemas":{"User":{"type":"object","xml":{"name":"User"},"x-examples":{"User":{"internal_user_id":"4324-rOzk","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":"90405","country":"USA","first_name":"John","middle_name":"","last_name":"Doe","email":"jdoe@gmail.com","language":"en"}},"x-tags":["User"],"required":["internal_user_id","country","first_name","last_name","email"],"properties":{"internal_user_id":{"type":"string","example":"4324-rOzk","description":"A client-defined identifier for the user. This is the unique ID assigned to the user on your system. Max 75 characters. Allows letters, numbers, and + , - . / _ ~ |"},"address1":{"type":"string","example":"2000 main st","description":"The user's street address. Required in order to process a payout."},"address2":{"type":"string","example":"apt D","description":"The user's street address, line 2."},"city":{"type":"string","example":"Santa Monica","description":"The user's city. Required in order to process a payout."},"state_province":{"type":"string","example":"CA","description":"The user's state/province."},"postal_code":{"type":"string","example":"90405","description":"The user's postal code."},"country":{"type":"string","example":"USA","description":"The user's country code. [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code. Required in order to process a payout."},"first_name":{"type":"string","example":"John","description":"The user's first name. (If Business account, the first name of the representative)"},"middle_name":{"type":"string","description":"The user's middle name. (If Business account, the middle name of the representative)"},"last_name":{"type":"string","example":"Doe","description":"The user's last name. (If Business account, the last name of the representative)"},"email":{"type":"string","example":"jdoe@gmail.com","description":"The user's e-mail address. Must be unique. Cannot have two users with the same e-mail address."},"language":{"type":"string","example":"en","description":"The user's preferred language of communication. If not provided, defaults to English (en)","pattern":"^[a-z]{2}$","minLength":2,"maxLength":2},"mobile_number":{"type":"string","pattern":"^[0-9]+$","example":"16502000226","description":"(Optional) Mobile number of user. Allows for SMS notifications upon availability of funds"},"business_name":{"type":"string","example":"ABC Company","description":"Company legal name (Only if Business account)"},"date_of_birth":{"type":"string","description":"Date of birth. Optional when creating a user, but required before processing a payout unless explicitly exempted by compliance. Users must be at least 18 years old, unless a lower age is approved by compliance.","format":"date","example":"1975-03-24"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this user. Do not include PII as this object is not encrypted.","properties":{"group_id":{"type":"number","example":541}}},"notify_user":{"type":"boolean","default":false,"description":"Should we notify the user via email that their user has been created in the system? They will receive instructions to establish such account."}}},"Loads":{"type":"object","xml":{"name":"Loads"},"x-examples":{"Loads":{"load_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","time_of_load":"2019-10-24T22:54:54.793Z","client_load_id":"aEjn345","source_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","wallet_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","amount":100.5,"source_currency_code":"USD","notes":"Commission payment for July","status":"COMPLETED"}},"x-tags":["Load"],"properties":{"load_token":{"type":"string","description":"Token representing the load token","example":"ld_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"time_of_load":{"type":"string","example":"2019-07-07T23:03:05","description":"The timestamp the load was processed. If not processed yet, a future date will be returned. Using UTC timestamp.[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)","format":"YYYY-MM-DDThh:mm:ss"},"client_load_id":{"type":"string","example":"aEjn345","description":"A client defined load identifier. This is the unique ID assigned to the load on your system. Max 50 characters."},"source_token":{"type":"string","description":"Token that represents the funding source i.e. bank account, wallet. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"wallet_token":{"type":"string","description":"Token that represents the wallet that received the funds. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"amount":{"type":"number","format":"","example":100.5,"description":"The amount to credit the user's wallet in source currency"},"source_currency_code":{"type":"string","example":"USD","description":"The currency originating balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD, and therefore the defaut value if none is provided"},"notes":{"type":"string","example":"Commission payment for July","description":"A description for the load. Will be visible to the user receiving the load"},"status":{"type":"string","description":"Status of the load","enum":["COMPLETED","CANCELLED","SCHEDULED"],"example":"COMPLETED"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this load. Do not include PII as this object is not encrypted.","example":{"group_id":541}}},"required":["load_token","time_of_load","client_load_id","source_token","wallet_token","amount","source_currency_code","notes","status"]},"StoredUser":{"type":"object","xml":{"name":"StoredUser"},"x-examples":{"StoredUser":{"user_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","status":"ACTIVE","created_on":"2019-10-24T22:54:54.794Z","internal_user_id":"4324-rOzk","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":"90405","country":"USA","first_name":"John","middle_name":"","last_name":"Doe","email":"jdoe@gmail.com","language":"en"}},"x-tags":["User"],"properties":{"user_token":{"type":"string","description":"Token representing the user that was just created","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"status":{"description":"The status of the user","type":"string","enum":["ACTIVE","LOCKED","DEACTIVE","CLOSED"]},"created_on":{"type":"string","example":"2019-07-07T23:03:05","description":"The timestamp the user was created in the system. Using UTC timestamp.[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)","format":"YYYY-MM-DDThh:mm:ss"},"internal_user_id":{"type":"string","example":"4324-rOzk","description":"A client-defined identifier for the user. This is the unique ID assigned to the user on your system. Max 75 characters. Allows letters, numbers, and + , - . / _ ~ |"},"address1":{"type":"string","example":"2000 main st","description":"The user's street address."},"address2":{"type":"string","example":"apt D","description":"The user's street address, line 2."},"city":{"type":"string","example":"Santa Monica","description":"The user's city."},"state_province":{"type":"string","example":"CA","description":"The user's state/province."},"postal_code":{"type":"string","example":"90405","description":"The user's postal code."},"country":{"type":"string","example":"USA","description":"The user's country code. ISO_3166-1_alpha-3 code"},"first_name":{"type":"string","example":"John","description":"The user's first name. (If Business account, the first name of the representative)"},"middle_name":{"type":"string","description":"The user's middle name. (If Business account, the middle name of the representative)"},"last_name":{"type":"string","example":"Doe","description":"The user's last name. (If Business account, the last name of the representative)"},"email":{"type":"string","example":"jdoe@gmail.com","description":"The user's e-mail address. Must be unique. Cannot have two users with the same e-mail address."},"language":{"type":"string","example":"en","description":"The user's preferred language of communication. If not provided, defaults to English (en)"},"mobile_number":{"type":"string","pattern":"^[0-9]+$","example":"16502000226","description":"(Optional) Mobile number of user. Allows for SMS notifications upon availability of funds"},"business_name":{"type":"string","example":"ABC Company","description":"Company legal name (Only if Business account)"},"timezone":{"type":"string","example":"America/Los_Angeles","description":"User's computed timezone"},"date_of_birth":{"type":"string","description":"Date of birth. (optional). Minimum 18 years old","example":"1975-03-24","format":"date"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this user. Do not include PII as this object is not encrypted.","example":{"group_id":541}},"activation_url":{"type":"string","description":"If the user does not have an activated account yet, an activation URL will be provided.","default":"https://members.masspay.io/activation?activation=AO=="}},"required":["user_token","status","created_on","internal_user_id","first_name","last_name","email","timezone"],"description":""},"UpdateUser":{"type":"object","xml":{"name":"UpdateUser"},"x-examples":{"UpdateUser":{"status":"ACTIVE","created_on":"2019-10-24T22:54:54.794Z","internal_user_id":"4324-rOzk","address1":"2000 main st","address2":"apt D","city":"Santa Monica","state_province":"CA","postal_code":"90405","country":"USA","first_name":"John","middle_name":"","last_name":"Doe","email":"jdoe@gmail.com","language":"en"}},"x-tags":["User"],"required":["status","internal_user_id","address1","city","state_province","postal_code","country","first_name","last_name","email"],"properties":{"status":{"description":"The status of the user","type":"string","enum":["ACTIVE","DEACTIVE","CLOSED"]},"created_on":{"type":"string","example":"2019-07-07T23:03:05","description":"The timestamp the user was created in the system. Using UTC timestamp.[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)","format":"YYYY-MM-DDThh:mm:ss"},"internal_user_id":{"type":"string","example":"4324-rOzk","description":"A client-defined identifier for the user. This is the unique ID assigned to the user on your system. Max 75 characters. Allows letters, numbers, and + , - . / _ ~ |"},"address1":{"type":"string","example":"2000 main st","description":"The user's street address."},"address2":{"type":"string","example":"apt D","description":"The user's street address, line 2."},"city":{"type":"string","example":"Santa Monica","description":"The user's city."},"state_province":{"type":"string","example":"CA","description":"The user's state/province."},"postal_code":{"type":"string","example":"90405","description":"The user's postal code."},"country":{"type":"string","example":"USA","description":"The user's country code. ISO_3166-1_alpha-3 code"},"first_name":{"type":"string","example":"John","description":"The user's first name."},"middle_name":{"type":"string","description":"The user's middle name."},"last_name":{"type":"string","example":"Doe","description":"The user's last name."},"email":{"type":"string","example":"jdoe@gmail.com","description":"The user's e-mail address. Must be unique. Cannot have two users with the same e-mail address."},"language":{"type":"string","example":"en","description":"The user's preferred language of communication. If not provided, defaults to English (en)","pattern":"^[a-z]{2}$","minLength":2,"maxLength":2},"mobile_number":{"type":"string","pattern":"^[0-9]+$","example":"16502000226","description":"(Optional) Mobile number of user. Allows for SMS notifications upon availability of funds"},"business_name":{"type":"string","description":"Company legal name (Only if Business account)","example":"ABC Company"},"date_of_birth":{"type":"string","description":"Date of birth. (optional). Minimum 18 years old","format":"date","example":"1975-03-24"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this user. Do not include PII as this object is not encrypted.","example":{"group_id":541}}}},"WalletTxnResp":{"type":"object","xml":{"name":"WalletTxnResp"},"x-examples":{"WalletTxnResp":{"user_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","token":"8bb3693f-2f98-43dd-a990-615b6a21596d","balance":100.5,"currency_code":"USD"}},"x-tags":["Wallet"],"properties":{"user_token":{"type":"string","description":"Token representing the user","example":"usr_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"token":{"type":"string","description":"Token representing the wallet","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"balance":{"type":"number","format":"","example":100.5,"description":"The wallet's current balance in USD"},"currency_code":{"type":"string","example":"USD","description":"The currency wallet balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD"},"type":{"type":"string","description":"Type of wallet. USER_FUNDS and MASSPAY_CARD are user wallets (user_token present); CLIENT_FUNDS and SUBLEDGER_FUNDS are the client's own wallets","enum":["MASSPAY_CARD","USER_FUNDS","CLIENT_FUNDS","SUBLEDGER_FUNDS"],"example":"USER_FUNDS"},"card_type":{"type":"string","enum":["MASTERCARD","VISA","AMEX","DISCOVER","UNIONPAY"],"example":"VISA","description":"In case type of wallet is MASSPAY_CARD, card_type would be provided with the type of card it is"},"last_4":{"type":"string","example":"1234","description":"In case type of wallet is MASSPAY_CARD, last_4 would be provided with the last four digits of the card"},"active":{"type":"boolean","description":"An indicator whether the wallet is active. If inactive, can still retrieve historical transactions history"},"client_paying_fees":{"type":"boolean","description":"An indicator whether the fees for payouts using this wallet are paid by the client. If false, the user pays the fees"},"fee_wallet_token":{"type":"string","description":"GET /wallets/{wallet_token} only: your own CLIENT_FUNDS wallet that pays this wallet's fees, when there is one","example":"clnt_wlt_0f4b7d3e-1234-4c8a-9c1e-0a1b2c3d4e5f"},"wiring_instructions":{"type":"object","additionalProperties":true,"description":"Deposit (wire / ACH) instructions of the bank account that funds this wallet, present only when they are available: when the wallet's provider - or, for a USER_FUNDS wallet without a provider of its own, your CLIENT_FUNDS wallet in the same currency - is a deposit bank with a known account. **The object is the bank's own record, passed through as the bank returns it, so its keys and vocabulary depend on the bank** and its casing may differ from the rest of this response. <br><br> **Cross River Bank** (routing `021214891`): `accountNumber`, `routingNumber`, `accountType`, `title` (the account title, normally your business name), `currency` (lowercase ISO 4217, for example `usd`) and `status`. Cross River's `status` values are `Active`, `Inactive`, `Dormant`, `Escheat` and `Closed`; an account in normal use is `Active`, contact support if you see anything else. Its `accountType` values are `Deposit`, `GeneralLedger`, `CreditCard`, `StoredValue`, `Wallet` and `Unknown`; a MassPay funding account is `Deposit`. <br><br> **Other banks** return wire details only: Fortress `accountNumber`, `routingNumber`, `receiverName`, `receiverAddress`, `receiverBankName`, `receiverBankAddress`, `swiftCode`; Braid `AccountNumber`, `RoutingNumber`; Zenus `AccountNumber`; Stride Bank and Metropolitan Commercial Bank `account_number`, `routing_number`, `bank_name`, `address`, `city`, `state`, `zip`; My EU Pay `viban`, `swift`, `bank_name`, `address`, `city`, `country`, `zip`. <br><br> Treat every value as display text for your payer. Do not branch on `status` or `accountType` beyond checking Cross River's `Active`.","example":{"accountNumber":"2010001234","routingNumber":"021214891","accountType":"Deposit","title":"Acme Corp","currency":"usd","status":"Active"}}},"required":["user_token","token","balance","currency_code","type","active"],"title":""},"WalletTransferReq":{"type":"object","title":"WalletTransferReq","x-tags":["Wallet"],"description":"Request body for transferring funds between wallets.","required":["source_token","destination_token","amount"],"properties":{"source_token":{"type":"string","description":"Token representing the source wallet. Must be a wallet owned by the authenticated client (client wallet token or user wallet token belonging to this client).","example":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"destination_token":{"type":"string","description":"Token representing the destination wallet. Can be any user wallet in the system or a linked client wallet (subclient or sister-client). Transfers to unrelated client wallets are not permitted.","example":"usr_wlt_123e4567-e89b-12d3-a456-426614174000"},"amount":{"type":"number","description":"Amount to transfer, denominated in the source wallet's currency. Up to 5 decimal places; a value with more is rejected.","example":100.5},"client_transfer_id":{"type":"string","description":"Optional client-provided identifier for this transfer. Useful for idempotency and reconciliation.","example":"aEjn345"},"notes":{"type":"string","description":"Optional human-readable note or description for this transfer.","example":"Bonus payment for Q2"},"metadata":{"type":"object","description":"Optional arbitrary key-value metadata to attach to the transfer.","example":{"group_id":541}}}},"WalletTransferResp":{"type":"object","title":"WalletTransferResp","x-tags":["Wallet"],"description":"Response returned after a successful wallet-to-wallet transfer.","required":["transfer_token","source_token","destination_token","source_amount","destination_amount","source_currency_code","destination_currency_code","status","created_at"],"properties":{"transfer_token":{"type":"string","description":"Unique token identifying this transfer (load prefix, since a transfer is recorded as a ledger load).","example":"ld_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"source_token":{"type":"string","description":"Token of the source wallet.","example":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"destination_token":{"type":"string","description":"Token of the destination wallet.","example":"usr_wlt_123e4567-e89b-12d3-a456-426614174000"},"source_amount":{"type":"number","description":"Amount debited from the source wallet, in the source currency.","example":100.5},"destination_amount":{"type":"number","description":"Amount credited to the destination wallet, in the destination currency. May differ from `source_amount` when an FX conversion is applied.","example":1865.28},"source_currency_code":{"type":"string","description":"Currency of the source wallet. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format.","example":"USD"},"destination_currency_code":{"type":"string","description":"Currency of the destination wallet. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format.","example":"MXN"},"exchange_rate":{"type":"number","description":"FX exchange rate applied to convert between currencies. Present only when source and destination currencies differ.","example":18.56},"fee":{"type":"number","description":"Fee charged for the transfer, in the source currency.","example":0},"status":{"type":"string","description":"Status of the transfer. Transfers are immediate, so this will always be `COMPLETED` unless `dry_run` was requested.","enum":["COMPLETED","QUOTE"],"example":"COMPLETED"},"client_transfer_id":{"type":"string","description":"Client-provided identifier echoed back from the request.","example":"aEjn345"},"notes":{"type":"string","description":"Note or description echoed back from the request.","example":"Bonus payment for Q2"},"metadata":{"type":"object","description":"Metadata echoed back from the request.","example":{"group_id":541}},"created_at":{"type":"string","format":"date-time","description":"Timestamp of when the transfer was created.","example":"2024-07-21T17:32:28Z"}}},"UserWalletCreateReq":{"type":"object","title":"UserWalletCreateReq","x-tags":["Wallet"],"description":"Request body for creating a wallet for a user. The wallet may nominate one of your client wallets to pay the fees of payouts funded from it.","required":["currency_code"],"properties":{"currency_code":{"type":"string","description":"Currency the wallet is denominated in, using the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. Case-insensitive.","minLength":3,"maxLength":3,"example":"MXN"},"fee_wallet_token":{"type":"string","description":"Optional. Token of one of your client wallets (`clnt_wlt_` prefix) that will pay the fees of payouts funded from the new user wallet, so the payee receives the full amount. The client wallet must be owned by the authenticated client and denominated in the same `currency_code` as the new wallet. When omitted, the payee pays the fees from the wallet balance.","example":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"}}},"ClientWalletCreateReq":{"type":"object","title":"ClientWalletCreateReq","x-tags":["Wallet"],"description":"Request body for creating a wallet for your own client account.","required":["currency_code"],"properties":{"currency_code":{"type":"string","description":"Currency the wallet is denominated in, using the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. Case-insensitive.","minLength":3,"maxLength":3,"example":"EUR"}}},"WalletCreateResp":{"type":"object","title":"WalletCreateResp","x-tags":["Wallet"],"description":"The wallet created by a wallet creation request, or the owner's existing wallet in that currency when one already existed. User wallets carry the same fields as the wallets returned by the user wallet listing.","required":["token","type","currency_code","balance","active","client_paying_fees"],"properties":{"token":{"$ref":"#/components/schemas/WalletToken"},"type":{"type":"string","description":"Type of wallet: `USER_FUNDS` when created for a user, `CLIENT_FUNDS` when created for the client account.","enum":["USER_FUNDS","CLIENT_FUNDS"],"example":"USER_FUNDS"},"user_token":{"type":"string","description":"Token representing the user who owns the wallet. Present only for `USER_FUNDS` wallets.","example":"usr_59a9ccce-0280-4207-9200-891c9109915c"},"currency_code":{"type":"string","description":"Currency the wallet balance is stored in, using the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format.","example":"MXN"},"balance":{"type":"number","description":"The wallet's current balance in `currency_code`. Zero for a newly created wallet.","example":0},"active":{"type":"boolean","description":"An indicator whether the wallet is active.","example":true},"client_paying_fees":{"type":"boolean","description":"An indicator whether the fees for payouts using this wallet are paid by a client wallet. If false, the user pays the fees. Always false for `CLIENT_FUNDS` wallets.","example":true},"fee_wallet_token":{"type":"string","description":"Token of your client wallet that pays the fees for payouts using this wallet. Present only when `client_paying_fees` is true and the fee-paying wallet belongs to the authenticated client.","example":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"}}},"AvailableBalanceTxnResp":{"type":"object","required":["balance","token","currency_code"],"properties":{"token":{"description":"Token representing your funding account. You should use this as source_token when paying out transactions.","example":"8bb3693f-2f98-43dd-a990-615b6a21596d","type":"string"},"balance":{"type":"number","format":"","example":100.5,"description":"Your account's current available balance in USD"},"currency_code":{"type":"string","example":"USD","description":"The currency the balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD"}},"xml":{"name":"AvailableBalanceTxnResp"},"x-examples":{"AvailableBalanceTxnResp":{"token":"clnt_wlt_8bb3693f-2f98-43dd-a990-615b6a21596d","balance":100.5,"currency_code":"USD"}},"x-tags":["Account"]},"AllAttributesResp":{"type":"object","x-examples":{"Example 1":{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":0,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"attributes":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text","last_attr_value_used":true}]}},"properties":{"destination_token":{"type":"string","description":"Token that represents the payout destination. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"payer_logo":{"type":"string","format":"byte","description":"base64 representation of the payer logo","example":"U3dhZ2dlciByb2Nrcw=="},"payer_name":{"type":"string","example":"Elektra","description":"Name of payer"},"exchange_rate":{"type":"array","description":"Lists all available currencies and their estimated rates","items":{"type":"object","properties":{"currency_symbol":{"type":"string","example":"MXN","description":"Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format."},"exchange_rate":{"type":"number","description":"Estimated rate","format":"double","example":18.37}},"required":["currency_symbol","exchange_rate"]}},"max_limit":{"type":"number","description":"The maximum amount (inclusive) the user can send with this service. 0 if no upper limit","format":"double","example":10000},"min_limit":{"type":"number","description":"The minimum amount (inclusive) the user can send with this service. 0 if no lower limit","format":"double","example":0},"number_of_locations":{"type":"integer","default":0,"description":"Total number of locations. Mostly relevant for cash pickup services. 0 if unknown or irrelevant","format":"int32","example":13007,"minimum":0},"estimated_availability":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Estimated availability of funds. When funds would be available to pickup/deposited"},"additional_description":{"type":"string","example":"Requires drivers license to pickup funds","description":"When available, additional description that explains the service offered or requirements for funds delivery."},"is_dynamic_token":{"type":"boolean","description":"When set to true, it indicates that this destination_token will auto retry the transaction for a set time until it is successful or timesout. False value means the transaction will be processed by the payer in real-time with instant feedback on success/failure."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/AttrsRequirement"}}}},"AllAttributesSetResp":{"type":"object","x-examples":{"Example 1":{"destination_token":"dest_123e4567-e89b-12d3-a456-426614174000","payer_logo":"U3dhZ2dlciByb2Nrcw==","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0,"source_amount":104.3,"number_of_locations":0,"estimated_availability":"2020-07-21T17:32:28Z","additional_description":"Requires drivers license to pickup funds","is_dynamic_token":true,"attributes":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber","input_type":"text","last_attr_value_used":true}]}},"properties":{"destination_token":{"type":"string","description":"Token that represents the payout destination. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"payer_logo":{"type":"string","format":"byte","description":"base64 representation of the payer logo","example":"U3dhZ2dlciByb2Nrcw=="},"payer_name":{"type":"string","example":"Elektra","description":"Name of payer"},"exchange_rate":{"type":"array","description":"Lists all available currencies and their estimated rates","items":{"type":"object","required":["currency_symbol","exchange_rate"],"properties":{"currency_symbol":{"type":"string","example":"MXN","description":"Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format."},"exchange_rate":{"type":"number","description":"Estimated rate","format":"double","example":18.37}}}},"max_limit":{"type":"number","description":"The maximum amount (inclusive) the user can send with this service. 0 if no upper limit","format":"double","example":10000},"min_limit":{"type":"number","description":"The minimum amount (inclusive) the user can send with this service. 0 if no lower limit","format":"double","example":0},"number_of_locations":{"type":"integer","default":0,"description":"Total number of locations. Mostly relevant for cash pickup services. 0 if unknown or irrelevant","format":"int32","example":13007,"minimum":0},"estimated_availability":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Estimated availability of funds. When funds would be available to pickup/deposited"},"additional_description":{"type":"string","example":"Requires drivers license to pickup funds","description":"When available, additional description that explains the service offered or requirements for funds delivery."},"is_dynamic_token":{"type":"boolean","description":"When set to true, it indicates that this destination_token will auto retry the transaction for a set time until it is successful or timesout. False value means the transaction will be processed by the payer in real-time with instant feedback on success/failure."},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/AttrSetRequirement"}}}},"AttrTxn":{"type":"object","xml":{"name":"AttrTxn"},"x-examples":{"AttrTxn":{"values":[{"token":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","value":"432532532"}],"attr_set_token":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"JPM Chase"}},"x-tags":["Attribute"],"required":["values"],"properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/AttrValue"}},"attr_set_token":{"type":"string","example":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"The token that represents a set of attributes for a specific payer. Optional, specify the value if you're trying to add a value for a specific attributes set. If the existing values associated with the attr_set_token are different, this value will be ignored and a new attr_set_token would be issued."},"label":{"type":"string","description":"Optional user-defined label for identifying or naming this set of attributes. Useful for UI display or future reference.","maxLength":100,"example":"JPMorgan Chase"}}},"AttrValue":{"type":"object","required":["token","value"],"properties":{"token":{"type":"string","example":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"The token that represents the attribute that needs to be updated."},"value":{"type":"string","example":"432532532","description":"The value that needs to be stored for the associated token"}},"xml":{"name":"AttrValue"},"x-examples":{"AttrValue":{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","value":"432532532"}},"x-tags":["Attribute"]},"GlobalAttrValue":{"type":"object","xml":{"name":"AttrValue"},"x-examples":{"AttrValue":{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","value":"432532532"}},"x-tags":["Attribute"],"required":["value"],"properties":{"token":{"type":"string","example":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"Either `token` or `type` are required. The token that represents the attribute that needs to be updated."},"value":{"type":"string","example":"432532532","description":"The value that needs to be stored for the associated token"},"type":{"description":"Either `token` or `type` are required. The type of attribute we are storing. i.e. SocialSecurity","enum":["PhoneNumber","Gender","IdentificationNumber","MaidenName","SocialSecurity","EmploymentName","EmploymentAddress","EmploymentPhone","EmploymentOccupation","EmploymentSupervisor","SecondLastName","BirthCountry","SourceOfFunds","DateOfBirth","IdentificationType","IDSelfieCollection","City","Country","IdentificationExpiration","Address1","PostalCode","GuardianFullName","GuardianGovIDType","GuardianGovIDNumber","GuardianConsent","EIN","WalletAddress","OAuthGrant"]}}},"AttrsRequirement":{"type":"object","xml":{"name":"AttrsRequirement"},"x-examples":{"AttrsRequirement":{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","attr_set_token":"e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"BankAccountNumber"}},"x-tags":["Attribute"],"properties":{"token":{"type":"string","example":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"The token that represents the attribute."},"attr_set_token":{"type":"string","example":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"The token that represents the stored attributes for this payer. You would use this token in attr_set_token of `initiatePayout` if you have to specify an account number when paying a transaction out."},"label":{"type":"string","example":"Checking Account Number","description":"The label that describes that required attribute"},"validation":{"type":"string","example":"[0-9]{50}","description":"RegEx that validates that input"},"is_optional":{"type":"boolean","example":true,"description":"Flag to indicate whether this field is required or not"},"value":{"type":"string","example":"432532532","description":"The existing value that is stored. 'Null' if no existing value is stored."},"expected_value":{"type":"string","example":"Date format MM/DD/YYYY","description":"Written explanation of the value that the regex validation requires"},"type":{"type":"string","example":"BankAccountNumber","description":"The type of attribute","enum":["CardNumber","BankAccountType","BankAccountNumber","BankAccountBranchNumber","BankName","PhoneNumber","Gender","IdentificationNumber","BillReferenceNumber","BankRoutingNumber","BankAccountName","MaidenName","SocialSecurity","EmploymentName","EmploymentAddress","EmploymentPhone","EmploymentOccupation","EmploymentSupervisor","RemittanceReason","Relationship","SecondLastName","SWIFT","BirthCountry","SourceOfFunds","DateOfBirth","CardExpiration","CardZip","IdentificationType","BankCity","BankState","IDSelfieCollection","City","Country","IdentificationExpiration","Address1","IFramePaymentCollection","PostalCode","GuardianFullName","GuardianGovIDType","GuardianGovIDNumber","GuardianConsent","EIN","WalletAddress","OAuthGrant"]},"input_type":{"type":"string","enum":["text","options","date"],"example":"text","default":"text","description":"The type of input field that is suggested for this this attribute"},"last_attr_value_used":{"type":"boolean","description":"If set to true, it means this was the last value that was used and if no attr_set_token is provided to init payout, this value will be used by default"}},"required":["token","label","validation","is_optional","type","input_type"]},"AttrSetRequirement":{"type":"object","xml":{"name":"AttrsRequirement"},"x-examples":{"Attribute Set Requirement":{"attr_set_token":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","last_attr_value_used":true,"label":"JPMorgan Chase","attributes":[{"token":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","label":"Checking Account Number","validation":"[0-9]{50}","is_optional":true,"value":"432532532","expected_value":"Date format MM/DD/YYYY","type":"CardNumber","input_type":"text"}]}},"x-tags":["Attribute"],"required":["attr_set_token","last_attr_value_used"],"properties":{"attr_set_token":{"type":"string","example":"attr_set_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"The token that represents the stored attributes for this payer. You would use this token in attr_set_token of `initiatePayout` if you have to specify an account number when paying a transaction out. For attributes that are not endpoint specific, like ID, EIN, SSN, etc, `attr_set_token` will not be set."},"last_attr_value_used":{"type":"boolean","description":"If set to true, it means this was the last value that was used and if no attr_set_token is provided to init payout, this value will be used by default"},"label":{"type":"string","description":"User-defined label for identifying or naming the set of attributes. Useful for UI display or future reference.","example":"JPMorgan Chase"},"destination_currency":{"type":"string","description":"The currency that the `attr_set_token` is associated with"},"attributes":{"type":"array","items":{"type":"object","required":["token","label","validation","is_optional","value","expected_value","type","input_type"],"properties":{"token":{"type":"string","example":"attr_e2ca24e9-c546-4c64-90d2-cb8e70e7c9ba","description":"The token that represents the attribute."},"label":{"type":"string","example":"Checking Account Number","description":"The label that describes that required attribute"},"validation":{"type":"string","example":"[0-9]{50}","description":"RegEx that validates that input"},"is_optional":{"type":"boolean","example":true,"description":"Flag to indicate whether this field is required or not"},"value":{"type":"string","example":"432532532","description":"The existing value that is stored. 'Null' if no existing value is stored."},"expected_value":{"type":"string","example":"Date format MM/DD/YYYY","description":"Written explanation of the value that the regex validation requires"},"type":{"type":"string","example":"BankAccountNumber","description":"The type of attribute","enum":["CardNumber","BankAccountType","BankAccountNumber","BankAccountBranchNumber","BankName","PhoneNumber","Gender","IdentificationNumber","BillReferenceNumber","BankRoutingNumber","BankAccountName","MaidenName","SocialSecurity","EmploymentName","EmploymentAddress","EmploymentPhone","EmploymentOccupation","EmploymentSupervisor","RemittanceReason","Relationship","SecondLastName","SWIFT","BirthCountry","SourceOfFunds","DateOfBirth","CardExpiration","CardZip","IdentificationType","BankCity","BankState","IDSelfieCollection","City","Country","IdentificationExpiration","Address1","IFramePaymentCollection","PostalCode","GuardianFullName","GuardianGovIDType","GuardianGovIDNumber","GuardianConsent","EIN","WalletAddress","OAuthGrant"]},"input_type":{"type":"string","enum":["text","options","date"],"example":"text","default":"text","description":"The type of input field that is suggested for this this attribute"}}}}}},"LoadTxn":{"type":"object","xml":{"name":"LoadTxn"},"x-examples":{"LoadTxn":{"client_load_id":"aEjn345","source_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","amount":100.5,"source_currency_code":"USD","notes":"Commission payment for July"}},"x-tags":["Load"],"required":["client_load_id","source_token","amount"],"properties":{"client_load_id":{"type":"string","example":"aEjn345","description":"A client defined load identifier. This is the unique ID assigned to the load on your system. Max 50 characters."},"source_token":{"type":"string","description":"Token that represents the funding source i.e. bank account, wallet. 36 characters long","format":"uuid","example":"ba4275f2-bae1-488d-9d6f-20af1cd83574"},"amount":{"type":"number","format":"","example":100.5,"description":"The amount to credit the user's wallet in source currency"},"source_currency_code":{"type":"string","example":"USD","description":"The currency originating balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD, and therefore the defaut value if none is provided. There is a special currency case for PNTS - learn more [here] (#Points)"},"notes":{"type":"string","description":"A description for the load. Will be visible to the user receiving the load","example":"Commission payment for July","maxLength":255},"notify_user":{"type":"boolean","default":true,"description":"Should we notify the user via email that they've received a load? If the user has no existing account, they will receive instructions to establish such account."},"time_to_process":{"type":"string","description":"Future date/time to process the load on. If none is provided, it is processed right away. Time to be provided in UTC [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)","format":"YYYY-MM-DDThh:mm:ss","example":"The date/time to process the load. In UTC. 2021-02-25T23:00:00Z"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this load. Do not include PII as this object is not encrypted.\nThere are two special attributes that can be provided in the metadata field: `batch_identifier` and `batch_name`. Either of those values, would group transactions in the ledger under the same description.","example":{"group_id":541}}}},"LoadTxnResp":{"type":"object","xml":{"name":"LoadTxnResp"},"x-examples":{"LoadTxnResp":{"payout_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","status":"success"}},"x-tags":["Load"],"title":"","properties":{"load_token":{"type":"string","description":"Token that represents the load that was just created.","example":"ld_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"status":{"type":"string","enum":["COMPLETED","CANCELLED","SCHEDULED"],"description":"Status that indicates whether the transaction was successfully processed. If `COMPLETED`, the load was successfully processed. `CANCELLED` indicates a generic error. and `SCHEDULED` means the load was successfully scheduled"},"wallet_token":{"type":"string","description":"The wallet token the load was deposited into","example":"usr_wlt_3ec2d3e7-0aae-47bb-bdb9-d3413c5434d1"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this load. Do not include PII as this object is not encrypted.","example":{"group_id":541}}},"required":["load_token","status","wallet_token"]},"PayoutTxn":{"type":"object","xml":{"name":"PayoutTxn"},"x-examples":{"PayoutTxn":{"client_transfer_id":"aEjn345","source_currency_code":"USD","destination_currency_code":"MXN","source_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","destination_amount":100.5,"source_amount":100.5,"attr_set_token":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0","sender_user_token":"usr_5b54fd79-2aa8-4965-85ed-0b3ad3739752","metadata":{"batch_identifier":"Commission 10-04-2025"}}},"x-tags":["Payout"],"required":["destination_currency_code","source_token"],"properties":{"client_transfer_id":{"type":"string","example":"aEjn345","maxLength":50,"description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status."},"source_currency_code":{"type":"string","default":"USD","pattern":"^[A-Z]{3,5}$","minLength":3,"maxLength":5,"description":"The currency originating balance is stored in. Fiat currencies use [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) codes (3 characters); cryptocurrency ticker symbols (e.g. `USDT`) may be up to 5 characters. In most cases this value will be USD, and therefore the default value if none is provided","example":"USD"},"destination_currency_code":{"type":"string","pattern":"^[A-Z]{3,5}$","minLength":3,"maxLength":5,"example":"MXN","description":"The currency the funds will be deposited into. Fiat currencies use [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) codes (3 characters); cryptocurrency ticker symbols (e.g. `USDT`) may be up to 5 characters"},"source_token":{"type":"string","pattern":"^([a-z]+(_[a-z]+)*_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":45,"description":"Token that represents the funding source for the payout, i.e. a bank account or wallet. Accepted either as a bare UUID or prefixed with the source type (e.g. `clnt_wlt_` for a client wallet); both forms reference the same funding source. 36 characters long, or up to 45 with a prefix.","example":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"destination_token":{"type":"string","pattern":"^(dest_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":41,"description":"Optional. Token that represents the payout destination, i.e. MassPay->Brazil->Bank Deposit->Itau. To be retrieved from the #pricing callback. Accepted either as a bare UUID or prefixed with `dest_`; both forms reference the same destination. If not provided, the last destination that was used for this user will be used. 36 characters long, or 41 with the `dest_` prefix.","example":"dest_d2138fd0-00be-45a8-985f-4f5bde500962"},"destination_amount":{"type":"number","description":"The amount to be sent for payout in destination currency. i.e USD. Must be provided if source_amount is empty","format":"float","example":100.5},"source_amount":{"type":"number","description":"The amount to be received by the payout in source currency. i.e USD. Must be provided if destination_amount is empty","format":"float","example":100.5},"attr_set_token":{"type":"string","pattern":"^(attr_set_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":45,"description":"Optional. Token that represents the set of attributes associated with the `destination_token`, for example a bank account, mobile account, or wallet id. Accepted either as a bare UUID or prefixed with `attr_set_`; both forms reference the same attribute set. If not provided, the last `attr_set_token` used is applied. If this is the first payout that is initiated for the `user_token` and `destination_token` combination and an `attr_set_token` is not provided, the latest attributes that were stored would be used. 36 characters long, or 45 with the `attr_set_` prefix.","example":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this payout. Do not include PII as this object is not encrypted.\nThere are two special attributes that can be provided in the metadata field: `batch_identifier` and `batch_name`. Either of those values, would group transactions in the ledger under the same description.","example":{"group_id":541}},"notify_user":{"type":"boolean","default":false,"description":"Should we notify the user via email/sms about status updates for this payout?"},"auto_commit":{"type":"boolean","default":false,"description":"Auto commit would commit the payout without requiring the API call to the commit payout endpoint. This option is only available when the `source_currency` and the `destination_currency` are the same. Whenever an exchange rate is applied to a transaction, a separate commit call is required."},"statement_description":{"type":"string","description":"Optional descriptive line item that appears on the payout statement, providing details about the transaction. This field is intended to help identify the purpose or source of each payout by displaying a brief summary or itemized description. Commonly includes information such as transaction type, merchant name, or payout reason. Note: Not all countries and banks support displaying this field.","example":"Merchant 4561","maxLength":140},"sender_user_token":{"type":"string","pattern":"^(usr_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":40,"description":"Optional. Token that represents the user who is the sender (originator) of this payout. Accepted either as a bare UUID or prefixed with `usr_`; both forms reference the same user. Provide this field only when you are initiating the transaction on behalf of that sender, i.e. the transaction is not originated with you (the client) as the sender. When omitted, the client is considered the sender of record. The token must reference an existing user. Sender details are used for compliance, screening, and reporting purposes, so this value must accurately reflect the true originator of the funds. 36 characters long, or 40 with the `usr_` prefix.","example":"usr_7f8e9d0c-1b2a-4c3d-9e5f-6a7b8c9d0e1f"},"value_added_services":{"$ref":"#/components/schemas/ValueAddedServicesPayouts"}}},"PayoutTxnResp":{"type":"object","xml":{"name":"PayoutTxnResp"},"x-examples":{"PayoutTxnResp":{"payout_token":"payout_ba4275f2-bae1-488d-9d6f-20af1cd83574","client_transfer_id":"aEjn345","source_currency_code":"USD","destination_currency_code":"MXN","source_token":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574","destination_token":"dest_d2138fd0-00be-45a8-985f-4f5bde500962","destination_amount":100.5,"source_amount":100.5,"attr_set_token":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0","exchange_rate":18.55,"fee":2.99,"expiration":"2019-12-16T09:28:28.102Z","pickup_code":"54238173","status":"PENDING"}},"x-tags":["Payout"],"required":["payout_token","client_transfer_id","source_currency_code","destination_currency_code","source_token","destination_token","destination_amount","source_amount","attr_set_token","exchange_rate","fee","expiration","pickup_code","status","payer_name","delivery_type","country_code","estimated_availability","reversible_amount"],"properties":{"payout_token":{"type":"string","pattern":"^(payout_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":3,"maxLength":43,"description":"Token that represents the transaction that was just created. Returned either as a bare UUID or prefixed with `payout_`; both forms reference the same payout. Needs to be used to commit the transaction in `/payout/{user_token}/{payout_token}`. Always a token: 36 characters long, or 43 with the `payout_` prefix. A duplicate `client_transfer_id` or insufficient funds in the `source_token` is not reported here but as `400 Bad request`, with the cause in `error.details` — for example `Duplicate client id. Existing payout token: payout_<uuid>` or `Non sufficient funds in source token`.","example":"payout_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"client_transfer_id":{"type":"string","description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status.","example":"aEjn345","maxLength":50},"source_currency_code":{"type":"string","pattern":"^[A-Z]{3,5}$","minLength":3,"maxLength":5,"example":"USD","description":"The currency originating balance is stored in. Fiat currencies use [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) codes (3 characters); cryptocurrency ticker symbols (e.g. `USDT`) may be up to 5 characters. In most cases this value will be USD, and therefore the default value if none is provided"},"destination_currency_code":{"type":"string","pattern":"^[A-Z]{3,5}$","minLength":3,"maxLength":5,"example":"MXN","description":"The currency the funds will be deposited into. Fiat currencies use [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) codes (3 characters); cryptocurrency ticker symbols (e.g. `USDT`) may be up to 5 characters"},"source_token":{"type":"string","pattern":"^([a-z]+(_[a-z]+)*_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":45,"description":"Token that represents the funding source used for this payout, i.e. your bank account or the user's wallet. Returned either as a bare UUID or prefixed with the source type (e.g. `clnt_wlt_` for a client wallet); both forms reference the same funding source. 36 characters long, or up to 45 with a prefix.","example":"clnt_wlt_ba4275f2-bae1-488d-9d6f-20af1cd83574"},"destination_token":{"type":"string","pattern":"^(dest_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":41,"description":"Token that represents the payout destination, i.e. MassPay->Brazil->Bank Deposit->Itau. To be retrieved from the #pricing callback. Returned either as a bare UUID or prefixed with `dest_`; both forms reference the same destination. 36 characters long, or 41 with the `dest_` prefix.","example":"dest_d2138fd0-00be-45a8-985f-4f5bde500962"},"destination_amount":{"type":"number","description":"The amount to be sent for payout in destination currency. Must be provided if source_amount is empty","format":"float","example":100.5},"source_amount":{"type":"number","description":"The amount to be received by the payout in source currency. i.e USD. Must be provided if destination_amount is empty","format":"float","example":100.5},"attr_set_token":{"type":"string","pattern":"^(attr_set_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":45,"description":"Token that represents the set of attributes associated with the `destination_token`, for example a bank account, mobile account, or wallet id. Returned either as a bare UUID or prefixed with `attr_set_`; both forms reference the same attribute set. If not provided in the request, the last one used is applied. 36 characters long, or 45 with the `attr_set_` prefix.","example":"attr_set_b1a867c1-6e36-4525-b6d5-a20bac80e3b0"},"exchange_rate":{"type":"number","description":"The exchange rate to convert source_amount to destination_amount","format":"float","example":18.55},"fee":{"type":"number","description":"Fee to be charged for the transaction","format":"float","example":2.99},"expiration":{"type":"string","example":"2026-08-22T17:40:46.881Z","description":"The time and date at which the transaction will expire, returned in UTC ([RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)) with millisecond precision, e.g. `2026-08-22T17:40:46.881Z`. The transaction has to be finalized before this time. Transactions are valid for 2 minutes from creation time. If expired, a new transaction has to be created.","format":"date-time"},"pickup_code":{"type":"string","example":"54238173","description":"Confirmation/transaction code issued by the sending network or payout partner. For cash pickups, this is the code used to release cash to the recipient. For non-cash rails, it serves as a confirmation reference that you or banking partners can use to look up the transaction. Not the same as `trace_code`."},"trace_code":{"type":"string","description":"Receiving-institution tracking identifier for the underlying transfer. Used by the **receiving** rail/operator to locate the transaction in its ledger (e.g., blockchain, ACH operator, bank). For crypto, this is the blockchain transaction hash. For ACH, this is the 15-digit ACH Trace Number. This value is distinct from `pickup_code`.<br>\n<br>\nTrace numbers are **not supported for all transactions** and will only be set when the rail supports them. In some cases, the value may be updated up to **14 days after the transaction** as the receiving institution posts or confirms it.","example":"021214893903107"},"status":{"type":"string","description":"The status of the transaction","enum":["PENDING","EXPIRED","PROCESSING","COMPLETED","CANCELLED","SCHEDULED","READY_FOR_PICKUP","HOLD","ERROR"]},"payer_logo":{"type":"string","format":"byte","example":"U3dhZ2dlciByb2Nrcw==","description":"base64 representation of the payer logo"},"payer_name":{"type":"string","description":"Name of payer","example":"Elektra"},"delivery_type":{"type":"string","enum":["CASH_PICKUP","BANK_DEPOSIT","HOME_DELIVERY","MOBILE_WALLET","MASSPAY_CARD","PAPER_CHECK","BILL","CRYPTOCURRENCY"],"description":"The type of delivery"},"country_code":{"type":"string","example":"MEX","pattern":"^[A-Z]{3}$","minLength":3,"maxLength":3,"description":"Country code [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)"},"metadata":{"description":"Optional JSON object with attributes that can later be searched to locate this payout. Do not include PII as this object is not encrypted.","example":{"group_id":541},"type":"object"},"estimated_availability":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Estimated availability of funds. When funds would be available to pickup/deposited"},"status_reason":{"type":"string","description":"Optional. The reason for a CANCELLED or ERROR status, as text for people rather than a code: for example `Requested cancellation`, `Validation error`, `Payer no longer available`, a bank return code and description such as `R01 - Insufficient Funds`, or the validation message that rejected the payout. Display or log it, but do not branch on it."},"attrs":{"type":"object","description":"The relevant attributes that were used to fulfill this payout"},"sender_user_token":{"type":"string","pattern":"^(usr_)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":36,"maxLength":40,"description":"Token that represents the user who is the sender (originator) of this payout, returned either as a bare UUID or with the `usr_` prefix. Only returned when the payout was initiated on behalf of a sender and the transaction was not originated with the client as the sender. If absent, the client is the sender of record. 36 characters long, or 40 with the `usr_` prefix.","example":"usr_7f8e9d0c-1b2a-4c3d-9e5f-6a7b8c9d0e1f"},"reversible_amount":{"type":"number","example":100.5,"minimum":0,"format":"float","description":"The total amount that can be reversed against this payout. If 0, it means that either reversals are not available for this payout `destination_token` or the full amount of the original payout was already reversed in the `destination_currency` of the original payout."}},"title":""},"PayoutTxnCommitResp":{"type":"object","xml":{"name":"PayoutTxnCommitResp"},"x-examples":{"PayoutTxnCommitResp":{"payout_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","status":"success","pickup_code":54238173,"errors":"Duplicate transfer"}},"x-tags":["Payout"],"properties":{"payout_token":{"type":"string","description":"Token that represents the transaction that was just created.","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"status":{"type":"string","description":"Status that indicates whether the transaction was successfully processed. If `success`, everything was processed correctly. `failure` indicates a generic error. `addtl_attr_req` indicates that in order to process this transaction, additional attributes are required to be updated for this customer. `ex_rate_expired` indicates that the transaction exchange rate has expired and a new transaction has to be created.","enum":["success","failure","addtl_attr_req","ex_rate_expired","nsf"]},"pickup_code":{"type":"string","example":"54238173","description":"Code/pin that is required when collecting the money. Should be provided to the recipient to present to payout location."},"errors":{"type":"string","example":"Duplicate transfer","description":"Description of errors preventing transfer from being injected."}},"required":["payout_token","status"]},"Country":{"type":"object","x-examples":{"Country":{"code":"MX","name":"Mexico","three_letter_code":"MEX","iso_numeric":484,"generic_options":["LOCAL_BANK_DEPOSIT"]}},"x-tags":["Catalog"],"required":["code","name","three_letter_code","iso_numeric","generic_options"],"properties":{"code":{"type":"string","example":"MX","description":"Country code [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)","pattern":"^[A-Z]{2}$"},"name":{"type":"string","example":"Mexico","description":"Name of country"},"three_letter_code":{"type":"string","pattern":"^[A-Z]{3}$","description":"The user's country code. ISO_3166-1_alpha-3 code","example":"MEX"},"iso_numeric":{"type":"integer","description":"ISO 3166-1 numeric country code, returned as an integer without leading zeros (e.g., 8 for Albania, not \"008\")","example":484},"generic_options":{"type":"array","description":"List of generic option services that are available in this country. Empty if no generic payers are available.","items":{"type":"string","example":"LOCAL_BANK_DEPOSIT"}}}},"CompaniesResp":{"type":"object","x-examples":{"CompaniesResp":{"companies":[{"company_logo":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABGdBTUEAALGP...","company_name":"MassPay","description":"MassPay is a top leading provider with over 10 years of industry experience","rating":4.5,"services":[{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"d2138fd0-00be-45a8-985f-4f5bde500962","payer_logo":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABGdBTUEAALGP...","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0}]}]}]}},"properties":{"companies":{"type":"array","items":{"$ref":"#/components/schemas/Company"}}},"required":["companies"],"x-tags":["Catalog"]},"Company":{"type":"object","x-examples":{"Company":{"company_logo":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABGdBTUEAALGP...","company_name":"MassPay","description":"MassPay is a top leading provider with over 10 years of industry experience","rating":4.5,"services":[{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"d2138fd0-00be-45a8-985f-4f5bde500962","payer_logo":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABGdBTUEAALGP...","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0}]}]}},"properties":{"company_logo":{"type":"string","description":"base64 representation of the company logo","format":"byte","example":"U3dhZ2dlciByb2Nrcw=="},"services":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"rating":{"type":"number","example":4.5,"description":"Overall rating of provider calculated from feedback provided by users from previous trasnactions"},"description":{"type":"string","description":"A short description of the company","example":"MassPay is a top leading provider with over 10 years of industry experience"},"company_name":{"type":"string","description":"The company name","example":"MassPay"}},"required":["company_logo","services","rating","description","company_name"],"x-tags":["Catalog"]},"Service":{"type":"object","x-examples":{"Service":{"country_code":"MEX","delivery_type":"CASH_PICKUP","payers":[{"destination_token":"d2138fd0-00be-45a8-985f-4f5bde500962","payer_logo":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAABGdBTUEAALGP...","payer_name":"Elektra","exchange_rate":[{"currency_symbol":"MXN","exchange_rate":18.37}],"fee":8,"max_limit":10000,"min_limit":0}]}},"x-tags":["Catalog"],"required":["country_code","delivery_type","payers"],"properties":{"country_code":{"type":"string","description":"Country code [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)","example":"MEX","minLength":3,"maxLength":3},"delivery_type":{"type":"string","enum":["CASH_PICKUP","BANK_DEPOSIT","HOME_DELIVERY","MOBILE_WALLET","MASSPAY_CARD","PAPER_CHECK","BILL","CRYPTOCURRENCY"],"description":"The type of service. I.e. cash pickup, home delivery, etc."},"payers":{"type":"array","items":{"type":"object","required":["destination_token","payer_name","exchange_rate","fee","max_limit","min_limit","is_dynamic_token","is_variable_fee","is_generic"],"properties":{"destination_token":{"type":"string","description":"Token that represents the payout destination. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"payer_logo":{"type":"string","format":"byte","description":"base64 representation of the payer logo","example":"U3dhZ2dlciByb2Nrcw=="},"payer_name":{"type":"string","example":"Elektra","description":"Name of payer"},"exchange_rate":{"type":"array","description":"Lists all available currencies and their estimated rates","items":{"type":"object","required":["currency_symbol","exchange_rate"],"properties":{"currency_symbol":{"type":"string","example":"MXN","description":"Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format."},"exchange_rate":{"type":"number","description":"Estimated rate","format":"double","example":18.37}}}},"fee":{"type":"number","description":"Service fee","format":"double","example":8},"max_limit":{"type":"number","description":"The maximum amount (inclusive) the user can send with this service. 0 if no upper limit","format":"double","example":10000},"min_limit":{"type":"number","description":"The minimum amount (inclusive) the user can send with this service. 0 if no lower limit","format":"double","example":0},"source_amount":{"type":"number","description":"Optional return field. Will only show if `limit` parameter is provided","format":"double","example":104.3},"number_of_locations":{"type":"integer","default":0,"description":"Total number of locations. Mostly relevant for cash pickup services. 0 if unknown or irrelevant","format":"int32","example":13007,"minimum":0},"estimated_availability":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Estimated availability of funds. When funds would be available to pickup/deposited"},"additional_description":{"type":"string","example":"Requires drivers license to pickup funds","description":"When available, additional description that explains the service offered or requirements for funds delivery."},"is_dynamic_token":{"type":"boolean","description":"When set to true, it indicates that this destination_token will auto retry the transaction for a set time until it is successful or timesout. False value means the transaction will be processed by the payer in real-time with instant feedback on success/failure."},"is_variable_fee":{"type":"boolean","description":"Indicates whether the fee is variable. When set to true, you can expect the fee to change based on the `source_amount`. Although certain crypto currencies's fee can vary due to network fee flactuation, they are not considered a variable fee as MassPay's fee is not variable based on the `source_amount`."},"is_generic":{"type":"boolean","description":"Indicates whether the payer is generic. When true, institution-specific details are provided dynamically via attributes rather than being tied to a predefined institution configuration."}}}}}},"FoundUser":{"title":"FoundUser","type":"object","description":"Response object when a user is found","x-tags":["User"],"required":["user_token","first_name","last_name","internal_user_id","status"],"properties":{"user_token":{"type":"string","description":"The token of the found user","example":"usr_f4741aa2-9f39-4358-8247-2409e3fc2715"},"first_name":{"type":"string","description":"First name of the user"},"last_name":{"type":"string","description":"Last name of the user"},"internal_user_id":{"type":"string","example":"4324-rOzk","description":"A client-defined identifier for the user. This is the unique ID assigned to the user on your system. Max 75 characters. Allows letters, numbers, and + , - . / _ ~ |"},"status":{"enum":["ACTIVE","LOCKED","DEACTIVE","CLOSED"],"description":"The status of the user"}}},"SpendBackTxnResp":{"title":"SpendBackTxnResp","type":"object","x-tags":["Spend Back"],"properties":{"spendback_token":{"type":"string","description":"Token that represents the spend back that was just created.","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"client_spendback_id":{"type":"string","example":"aEjn345","maxLength":50,"description":"A client defined spend back identifier. This is the unique ID assigned to the load on your system. Max 50 characters."},"status":{"type":"string","enum":["success","failure"],"description":"Status that indicates whether the transaction was successfully processed. If `success`, everything was processed correctly. `failure` indicates a generic error.","example":"success"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this load. Do not include PII as this object is not encrypted.","example":{"group_id":541}}},"required":["spendback_token","client_spendback_id","status"]},"SpendBackTxn":{"title":"SpendBackTxn","type":"object","x-tags":["Spend Back"],"required":["client_spendback_id","source_token","source_currency_code","amount"],"properties":{"client_spendback_id":{"type":"string","example":"aEjn345","maxLength":50,"description":"A client defined spend back identifier. This is the unique ID assigned to the load on your system. Max 50 characters."},"source_token":{"type":"string","description":"Token that represents the funding source i.e. bank account, wallet. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"source_currency_code":{"type":"string","default":"USD","description":"The currency originating balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD, and therefore the defaut value if none is provided","example":"USD"},"amount":{"type":"number","example":100.5,"description":"The amount to debit the user's wallet in source currency"},"notes":{"type":"string","description":"A description for the spend back","example":"Purchase of Candles. Order #14930","maxLength":255},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this spendback. Do not include PII as this object is not encrypted.\nThere are two special attributes that can be provided in the metadata field: `batch_identifier` and `batch_name`. Either of those values, would group transactions in the ledger under the same description.","example":{"group_id":541}}}},"TxnHistoryRecordResp":{"title":"TxnHistoryRecordResp","type":"object","description":"Record that represents a transaction","x-tags":["User"],"required":["token","type","time_of_txn","source_amount","source_currency_code","destination_amount","destination_currency_code","fee","status","destination_token"],"properties":{"token":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Token represnting the transaction"},"type":{"type":"string","enum":["load","payout","spend back","info","payin"],"example":"payout","description":"Type of transaction"},"time_of_txn":{"type":"string","format":"date-time","description":"Time of this history entry, in UTC. For most entries this is when the transaction was created; for the CANCELLED entry of a cancelled payout it is when the cancellation happened and the funds came back."},"source_amount":{"type":"number","format":"float","example":50.1,"description":"Source amount"},"source_currency_code":{"type":"string","default":"USD","description":"The currency originating balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD, and therefore the defaut value if none is provided","example":"USD","minLength":3,"maxLength":3},"destination_amount":{"type":"number","format":"float","example":44.99,"description":"The amount that was received in `destination_currency_code`"},"destination_currency_code":{"type":"string","minLength":3,"maxLength":3,"description":"The currency of the funds received. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format"},"fee":{"type":"number","format":"float","example":2.98,"description":"Fee of the transaction"},"status":{"type":"string","description":"Status of the transaction. A cancelled payout appears twice in the history: the original entry with `CANCELLED_AT_LATER_TIME` at the time it was created, and a second entry with `CANCELLED` at the time the cancellation happened and the funds came back. The payout itself has the single status `CANCELLED`, which is what the payout status endpoint and the payout webhook report.","example":"READY_FOR_PICKUP","enum":["PENDING","EXPIRED","PROCESSING","COMPLETED","CANCELLED","SCHEDULED","READY_FOR_PICKUP","HOLD","ERROR","CANCELLED_AT_LATER_TIME","RETURNED"]},"notes":{"type":"string","description":"Notes of the transaction when load or spend back","example":"Purchase of Candles. Order #14930"},"payer_name":{"type":"string","description":"Name of the payer when payout transaction","example":"Elektra"},"pickup_code":{"type":"string","description":"Code/pin that is required when collecting the money when payout transaction","example":"343432"},"source_token":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Token that represents the funding source i.e. bank account, wallet. 36 characters long"},"destination_token":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Token that represents the payout destination i.e. MassPay->Brazil->Bank Deposit->Itau. To be retrieved from the #pricing callback. If not provided, the last destination that was used for this user will be used. 36 characters long"},"delivery_type":{"type":"string","enum":["CASH_PICKUP","BANK_DEPOSIT","HOME_DELIVERY","MOBILE_WALLET","MASSPAY_CARD","PAPER_CHECK","BILL","CRYPTOCURRENCY"],"description":"The type of service. I.e. cash pickup, home delivery, etc. Only provided for payouts"},"client_transfer_id":{"type":"string","description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status.","maxLength":50},"status_reason":{"type":"string","description":"The reason for the status change. Usually would include reason for an ERROR or CANCEL status"},"client_id":{"type":"integer","description":"Optional client id"},"user_token":{"type":"string","description":"User token representing the user this transaction belongs to"},"destination_country":{"type":"string","description":"3 letters ISO code for destination country"},"sender_user_token":{"type":"string","pattern":"^usr_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","minLength":40,"maxLength":40,"description":"Token that represents the user who is the sender (originator) of this payout, prefixed with `usr_`. Only returned for `payout` entries that were initiated on behalf of a sender (with a `sender_user_token`); absent when the client is the sender of record and for every other entry type.","example":"usr_7f8e9d0c-1b2a-4c3d-9e5f-6a7b8c9d0e1f"},"sender_first_name":{"type":"string","description":"First name of the sender. Only returned together with `sender_user_token`.","example":"John"},"sender_last_name":{"type":"string","description":"Last name of the sender. Only returned together with `sender_user_token`.","example":"Doe"},"sender_business_name":{"type":"string","description":"Business name of the sender, when the sender is a business. Only returned together with `sender_user_token`.","example":"Acme Inc."}}},"SpendBacks":{"type":"object","xml":{"name":"Loads"},"x-examples":{"Loads":{"load_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","time_of_load":"2019-10-24T22:54:54.793Z","client_load_id":"aEjn345","source_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","wallet_token":"ba4275f2-bae1-488d-9d6f-20af1cd83574","amount":100.5,"source_currency_code":"USD","notes":"Commission payment for July"}},"x-tags":["Spend Back"],"description":"","properties":{"spendback_token":{"type":"string","description":"Token representing the load token","example":"spnd_bk_4275f2-bae1-488d-9d6f-20af1cd83574"},"time_of_spendback":{"type":"string","example":"2019-07-07T23:03:05","description":"The timestamp the spend back was created in the system. Using UTC timestamp.[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)","format":"YYYY-MM-DDThh:mm:ss"},"client_spendback_id":{"type":"string","example":"aEjn345","description":"A client defined spend back identifier. This is the unique ID assigned to the spend back on your system. Max 50 characters."},"source_token":{"type":"string","description":"Token that represents the funding source i.e. bank account, wallet. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"wallet_token":{"type":"string","description":"Token that represents the wallet that received the funds. 36 characters long","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"amount":{"type":"number","format":"","example":100.5,"description":"The amount to credit the user's wallet in source currency"},"source_currency_code":{"type":"string","example":"USD","description":"The currency originating balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD, and therefore the defaut value if none is provided"},"notes":{"type":"string","example":"Commission payment for July","description":"A description for the load. Will be visible to the user receiving the load"},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this spendback. Do not include PII as this object is not encrypted.","example":{"group_id":541}}},"required":["spendback_token","time_of_spendback","client_spendback_id","source_token","wallet_token","amount","source_currency_code","notes"]},"Exception":{"title":"Exception","type":"object","properties":{"Exception":{"type":"string","description":"Type of exception"},"Errors":{"type":"array","description":"List of errors","items":{"type":"string"}}},"required":["Exception","Errors"]},"AutopayRule":{"title":"AutopayRule","type":"object","properties":{"destination_token":{"type":"string","description":"The destination_token to autopay (send payout to)","example":"dest_d2138fd0-00be-45a8-985f-4f5bde500962"},"percentage":{"type":"number","format":"float","default":100,"example":50,"description":"The percent of incoming load that should be autopaid to the destination_token"},"attr_set_token":{"type":"string","description":"The token that represents a set of attributes for a specific payer. Optional, specify the value if you''re trying to update a value of a specific attributes set."}},"required":["destination_token","percentage"],"x-tags":["Wallet"]},"AutopayoutResp":{"title":"AutopayoutResp","type":"object","x-tags":["Wallet"],"properties":{"token":{"type":"string","example":"autopayout_3684cc43-fe3b-4994-8ca1-7dc0db94430f","description":"Autopayout token"},"destination_token":{"type":"string","description":"The destination_token to autopayout (send payout to)","example":"dest_d2138fd0-00be-45a8-985f-4f5bde500962"},"percentage":{"type":"number","format":"float","default":100,"example":50,"description":"The percent of incoming load that should be autopaid to the destination_token"},"attr_set_token":{"type":"string","description":"The token that represents a set of attributes for a specific payer. Optional, specify the value if you''re trying to update a value of a specific attributes set."}},"required":["token","destination_token","percentage"]},"AttrVelocityRequest":{"title":"AttrVelocityRequest","type":"array","description":"List of conditions to search for. Multiple conditions would be treated as AND","items":{"type":"object","properties":{"type":{"type":"string","enum":["CardNumber","BankAccountType","BankAccountNumber","BankAccountBranchNumber","BankName","PhoneNumber","Gender","IdentificationNumber","BillReferenceNumber","BankRoutingNumber","BankAccountName","MaidenName","SocialSecurity","EmploymentName","EmploymentAddress","EmploymentPhone","EmploymentOccupation","EmploymentSupervisor","RemittanceReason","Relationship","SecondLastName","SWIFT","BirthCountry","SourceOfFunds","DateOfBirth","CardExpiration","CardZip","IdentificationType","BankCity","BankState","IDSelfieCollection","City","Country","IdentificationExpiration","Address1","IFramePaymentCollection","PostalCode","GuardianFullName","GuardianGovIDType","GuardianGovIDNumber","GuardianConsent","EIN","WalletAddress","OAuthGrant"],"description":"The type of attribute to look for"},"value":{"type":"string","description":"The value to search for"}},"required":["type","value"]},"x-examples":{"Example 1":[{"type":"CardNumber","value":"4111222233334444"}]}},"IDUpload":{"title":"IDUpload","type":"object","properties":{"type":{"type":"string","description":"The type of image being uploaded","enum":["face","document-front","document-back"],"example":"document-front"},"content":{"type":"string","description":"Base64 encoded image (png|jpg|jpeg). Maximum total images size is 10MB"}},"required":["type","content"]},"Form1099KUpdateRequest":{"type":"object","description":"Request body for updating or correcting Form 1099-K. The system automatically detects whether to Update (pre-IRS acceptance) or Correct (post-IRS acceptance).","allOf":[{"$ref":"#/components/schemas/Form1099KRequest"},{"type":"object","properties":{"submission_id":{"type":"string","description":"The original submission ID to update or correct","example":"abc123-def456-ghi789"},"is_void":{"type":"boolean","description":"Set to true to VOID the original filing (zeros out all amounts). Use this when the form should not have been filed at all.","example":false}},"required":["submission_id"]}]},"Form1099NECUpdateRequest":{"type":"object","description":"Request body for updating or correcting Form 1099-NEC. The system automatically detects whether to Update (pre-IRS acceptance) or Correct (post-IRS acceptance).","allOf":[{"$ref":"#/components/schemas/Form1099NECRequest"},{"type":"object","properties":{"submission_id":{"type":"string","description":"The original submission ID to update or correct","example":"abc123-def456-ghi789"},"is_void":{"type":"boolean","description":"Set to true to VOID the original filing (zeros out all amounts). Use this when the form should not have been filed at all.","example":false}},"required":["submission_id"]}]},"Form1099UpdateCorrectionResponse":{"type":"object","description":"Response from Form 1099 update or correction","properties":{"submission_id":{"type":"string","description":"The new submission ID"},"record_id":{"type":"string","description":"The new record ID"},"operation":{"type":"string","enum":["UPDATE","CORRECTION"],"description":"Whether this was an update (pre-IRS acceptance) or correction (post-IRS acceptance)"},"original_submission_id":{"type":"string","description":"The original submission ID that was updated/corrected"},"status":{"description":"Status of the operation","enum":["SUCCESS","FAILURE"]}}},"TaxYearUserResp":{"title":"TaxYearUserResp","type":"object","required":["address1","city","country","first_name","last_name","date_of_birth","balance"],"properties":{"user_token":{"type":"string","description":"The user token that needs to be fetched.","example":"123e4567-e89b-12d3-a456-426614174000"},"address1":{"type":"string","description":"The user's street address.","example":"2000 main st"},"address2":{"type":"string","description":"The user's street address, line 2.","example":"apt D"},"city":{"type":"string","description":"The user's city.","example":"Santa Monica"},"state_province":{"type":"string","description":"The user's state/province.","example":"CA"},"postal_code":{"type":"number","description":"The user's postal code.","example":90405},"country":{"type":"string","description":"The user's country code. [ISO_3166-1_alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) code.","example":"USA"},"first_name":{"type":"string","description":"The user's first name. If Business account, the first name of the representative.","example":"John"},"middle_name":{"type":"string","description":"The user's middle name. If Business account, the middle name of the representative."},"last_name":{"type":"string","description":"The user's last name. If Business account, the last name of the representative.","example":"Doe"},"email":{"type":"string","description":"The user's e-mail address. Must be unique. Cannot have two users with the same e-mail address.","example":"jdoe@gmail.com"},"mobile_number":{"type":"string","description":"Mobile phone number in [international format](https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers#).","example":"16502000226"},"business_name":{"type":"string","description":"Name of business","example":"ABC Company"},"date_of_birth":{"type":"string","format":"date","description":"Date of birth. Minimum 18 years old.","example":"1975-03-24"},"balance":{"type":"number","description":"Current user balance","example":1500},"payout_count":{"type":"integer","description":"Total count of payouts"},"tax_id":{"type":"string","description":"User Tax ID. This can be a Taxpayer Identification Number (TIN), Social Security Number (SSN), Individual Taxpayer Identification Number (ITIN) or Employer Identification Number (EIN).","example":"123-45-678"}}},"Error400":{"description":"Bad request.","type":"object","additionalProperties":false,"properties":{"title":{"type":"string","description":"Error title.","enum":["Bad request."],"example":"Bad request."},"message":{"type":"string","description":"Error description.","enum":["The request was invalid or malformed. Please ensure that the request body conforms to the required format and that all required parameters are included."],"example":"The request was invalid or malformed. Please ensure that the request body conforms to the required format and that all required parameters are included."},"code":{"type":"integer","description":"Error code.","enum":[400],"example":400},"error":{"type":"object","properties":{"reason":{"type":"string","example":"Error initiating payout","description":"Reason for error"},"details":{"type":"array","description":"Specific details of the cause of the error","items":{"type":"string","example":"Source amount cannot be $0"}}}}},"required":["message","code"]},"Error401":{"description":"Unauthorized.","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Unauthorized."],"example":"Unauthorized."},"message":{"type":"string","description":"Error description.","enum":["Authentication failed or credentials were not provided. Please ensure that you have provided valid API credentials and that they are authorized to access the MassPay API."],"example":"Authentication failed or credentials were not provided. Please ensure that you have provided valid API credentials and that they are authorized to access the MassPay API."},"code":{"type":"integer","description":"Error code.","enum":[401],"example":401}},"additionalProperties":false,"required":["error","message","code"]},"Error403":{"description":"Forbidden.","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Forbidden."],"example":"Forbidden."},"message":{"type":"string","description":"Error description.","enum":["The requested action is not allowed or the API credentials do not have sufficient permissions. Please ensure that the API credentials used for the request have the necessary permissions to perform the requested action."],"example":"The requested action is not allowed or the API credentials do not have sufficient permissions. Please ensure that the API credentials used for the request have the necessary permissions to perform the requested action."},"code":{"type":"integer","description":"Error code.","enum":[403],"example":403}},"additionalProperties":false,"required":["error","message","code"]},"Error404":{"description":"Not found.","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Not found."],"example":"Not found."},"message":{"type":"string","description":"Error description.","enum":["The requested resource was not found. Please ensure that the URL for the request is correct and that the requested resource exists."],"example":"The requested resource was not found. Please ensure that the URL for the request is correct and that the requested resource exists."},"code":{"type":"integer","description":"Error code.","enum":[404],"example":404}},"additionalProperties":false,"required":["error","message","code"]},"Error409":{"description":"Conflict.","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Conflict."],"example":"Conflict."},"message":{"type":"string","description":"Error description.","example":"A MXN wallet already exists for this user with a different fee-paying wallet configuration"},"code":{"type":"integer","description":"Error code.","enum":[409],"example":409}},"additionalProperties":false,"required":["title","message","code"]},"Error405":{"description":"Method not allowed.","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Method not allowed."],"example":"Method not allowed."},"message":{"type":"string","description":"Error description.","enum":["The HTTP method used for the request is not supported by the MassPay API. Please ensure that you are using the correct HTTP method (e.g., POST) for the specific MassPay API endpoint."],"example":"The HTTP method used for the request is not supported by the MassPay API. Please ensure that you are using the correct HTTP method (e.g., POST) for the specific MassPay API endpoint."},"code":{"type":"integer","description":"Error code.","enum":[405],"example":405}},"additionalProperties":false,"required":["error","message","code"]},"Error500":{"description":"Internal server error","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Internal server error."],"example":"Internal server error."},"message":{"type":"string","description":"Error description.","enum":["An unexpected error occurred on the server-side while processing the request. Please try again later or contact support if the issue persists."],"example":"An unexpected error occurred on the server-side while processing the request. Please try again later or contact support if the issue persists."},"code":{"type":"integer","description":"Error code.","enum":[500],"example":500}},"additionalProperties":false,"required":["error","message","code"]},"Error504":{"description":"Gateway Time-out.","type":"object","properties":{"title":{"type":"string","description":"Error title.","enum":["Gateway Time-out."],"example":"Gateway Time-out."},"message":{"type":"string","description":"Error description.","enum":["The request timed out while waiting for a response from the server. Please try again later or contact support if the issue persists."],"example":"The request timed out while waiting for a response from the server. Please try again later or contact support if the issue persists."},"code":{"type":"integer","description":"Error code.","enum":[500],"example":500}},"additionalProperties":false,"required":["error","message","code"]},"CardResp":{"title":"CardResp","type":"object","description":"MassPay Card Information","properties":{"card_number":{"type":"string","example":"4016483301928344","description":"16 Digits card number"},"cvv":{"type":"string","example":"123","description":"3 Digits cvv code","pattern":"^[0-9]{3}$","minLength":3,"maxLength":3},"expiration_date":{"type":"string","description":"Card expiration date","format":"date","example":"2023-08-21"},"pin_number":{"type":"string","description":"Card pin number (used in ATM machines)","example":"1234","minLength":4,"maxLength":4,"pattern":"^[0-9]{4}$"},"balance":{"type":"number","description":"Available balance on the card","format":"float","example":103,"minimum":0},"type":{"type":"string","description":"Card type","enum":["VISA","MASTERCARD","DISCOVER","AMEX","UNIONPAY"],"example":"VISA"},"status":{"type":"string","description":"Status of the card","enum":["ACTIVE","INACTIVE","CLOSED"],"default":"ACTIVE","example":"ACTIVE"}},"required":["card_number","cvv","expiration_date","pin_number","balance","type","status"]},"KYCSession":{"type":"object","x-examples":{"Example 1":{"provider":"","session_id":"","session_time":"","status":"","resp":{}}},"required":["provider","session_id","session_time","status","fee"],"properties":{"provider":{"type":"string","enum":["Veriff","Au10tix","TaxIdentity","Ondato","ShuftiPro","SumSub","Stripe","Yoti","Persona","TaxBandits","Plaid"],"description":"The provider of the KYC service"},"session_id":{"type":"string","example":"20ea33e3-fb0c-4387-944d-511bd605b0d5","description":"The ID of the session"},"session_time":{"type":"string","format":"date-time","description":"The time the session was started"},"status":{"type":"string","enum":["Started","Submitted","Abandoned","Expired","Resubmitted","Declined","Approved","Resubmission requested","Review"],"description":"The status of the session"},"resp":{"type":"object"},"fee":{"type":"number","format":"float","description":"The fee amount charged to this session in USD"}}},"CreateBusinessTxn":{"type":"object","description":"Creates a new business, or merchant, entity for risk review, underwriting, and boarding.","x-examples":{"Business Creation":{"reference_id":"ref-apple-inc","legal_name":"Apple Inc.","type":"Ccorp","category":"COMPUTER SOFTWARE STORE","mcc_sic":"5744","country":"USA","street1":"One Apple Park Way","street2":"","city":"Cupertino","state_prov":"CA","postal_code":"95014","address_type":"Residential","place_of_incorporation":"California","incorporation_date":"1977-01-03","phone_number":"4089961010","email_address":"support@apple.com","website_address":"https://www.apple.com","description":"Consumer electronics","tax_id_type":"Passport","tax_id_number":"94-2404110","registration_number":"RA000598","articles_of_incorporation":"MA==","partner_comments":"Public company, ticker: NASDAQ: AAPL","notify_user":true,"partner_pays_transaction_fees":false,"bank_details":{"first_name":"","last_name":"","name_on_account":"Apple Inc","account_type":"Checking","routing_number":"322271627","account_number":"971121121"},"dba":{"same_as_legal":true,"business_name":"","street1":"","street2":"","city":"","state_prov":"","postal_code":"","country":""},"details":{"company_annual_revenue":0,"days_to_receive_product_or_service":0,"expected_monthly_payout_transaction_volume":0,"expected_monthly_payout_transaction_count":0,"transaction_types_accepted":["Visa"],"credit_and_debit_card_accepted":true,"expected_monthly_amex_sales_volume":0,"card_acceptance_card_present":true,"card_acceptance_card_not_present":true,"card_acceptance_internet":true,"total_ach_annual_amount":0,"average_ach_ticket_amount":0,"highest_ach_ticket_amount":0,"max_monthly_ach_ticket_amount":0,"total_sales_monthly":0,"actual_or_projected_monthly_credit_debit_sales":0,"highest_amount_ticket":0,"times_year_highest_ticket_amount_expected":0,"avg_ticket_amount":0},"contact_person":{"first_name":"","last_name":"","title":"","email_address":"","phone_number":"","reference_id":""},"principal":[{"type":["Control Person"],"reference_id":"ref-tim","title":"CEO","first_name":"Tim","middle_name":"","last_name":"Cook","percentage_of_ownership":0.02,"address_same_as_legal":true,"street1":"One Apple Park Way","street2":"string","city":"Cupertino","state_prov":"CA","postal_code":"95014","country":"USA","email_address":"tcook@apple.com","phone_number":"4089961010","dob":"1960-11-01","tax_id_type":"Passport","tax_id_number":"D123456789","id_document":"","signing_application":true,"country_of_citizenship":"USA"}],"webhooks":[{"webhook_url":"https://api.apple.com/webhook","event_types":["user.created"]}]}},"required":["reference_id","legal_name","type","category","country","street1","city","state_prov","postal_code","place_of_incorporation","incorporation_date","phone_number","email_address","website_address","description","tax_id_type","tax_id_number","registration_number","principal"],"properties":{"reference_id":{"type":"string","description":"Reference ID for the new Merchant (Business) being enrolled. Value is set by the integrator for their own correlation; MassPay does not currently persist or echo it back. It is **not** enforced to be unique and is not used for duplicate detection: re-using a `reference_id` does not return the previously created business. Duplicate detection is based on `legal_name` (compared case-insensitively, ignoring punctuation): a request whose legal name matches an existing business is rejected with `400` and the detail `Business already exists. Only one instance is allowed per Legal Name.` A request with a new legal name always creates a new business, even if the `reference_id` was used before. Persist the returned `business_token` as the durable identifier of the business.","example":"ref-apple-inc"},"legal_name":{"type":"string","description":"Legal name of the business being enrolled.","example":"Apple Inc."},"type":{"description":"The legal structure of the business. Options are \"Ccorp\", \"LLC\", \"Partnership\", \"Nonprofit\", \"Scorp\", \"Soleprop\", or \"Other\"","example":"Ccorp","enum":["Ccorp","LLC","Partnership","Nonprofit","Scorp","Soleprop","Other"]},"category":{"type":"string","description":"Category, or industry, the business operates within.","example":"COMPUTER SOFTWARE STORE"},"mcc_sic":{"type":"string","description":"The Merchant Category Code (MCC) or Standard Industrial Classfication (SIC) of the business.","example":"5744"},"country":{"type":"string","description":"The country where the business is domiciled.  For United States, use \"USA\"","minLength":3,"maxLength":3,"example":"USA"},"street1":{"type":"string","description":"The legal street one address of the business.","example":"One Apple Park Way"},"street2":{"type":"string","description":"The legal street two address of the business."},"city":{"type":"string","description":"The legal address city of the business.","example":"Cupertino"},"state_prov":{"type":"string","description":"The legal address state or province of the business.","example":"CA"},"postal_code":{"type":"string","description":"The legal address zip, or postal code, of the business.","example":"95014"},"address_type":{"description":"The type of business address submitted.","enum":["Residential","Commercial","Other"],"example":"Commercial"},"place_of_incorporation":{"type":"string","description":"The place where the business was incorporated. State, province and country","example":"California"},"incorporation_date":{"type":"string","format":"date","description":"The date of business incorporation.  Formatted as, \"YYYY-MM-DD\"","example":"1977-01-03"},"phone_number":{"type":"string","description":"The phone number of the business.","example":"4089961010"},"email_address":{"type":"string","description":"The email address of the business.","example":"support@apple.com"},"website_address":{"type":"string","description":"The business website address.","example":"https://www.apple.com"},"description":{"type":"string","description":"A description of the business and its goods and services sold.","example":"Consumer electronics"},"tax_id_type":{"description":"The Tax ID type submitted.","enum":["Passport","National Identification Card","Driving License","Social Security Card/Number","Tax Payer Identification Card/Number","Senior Citizen Identification Card","Birth Certificate","Village Elder Identification Card","Permanent Residency Identification Card","Alien Registration Certificate/Card","PAN Card","Voter’s Identification Card","Health Insurance Card/Number","Employer Identification Card","Others not listed"],"example":"Employer Identification Card"},"tax_id_number":{"type":"string","description":"The Tax ID number of the business.","example":"94-2404110"},"registration_number":{"type":"string","description":"The business registration number.","example":"RA000598"},"articles_of_incorporation":{"type":"string","description":"If required, a file upload of the articles of incorporation.\r\n\r\nBase-64 format","example":"MA=="},"partner_comments":{"type":"string","description":"Any additional information to pass to our underwriting team.","example":"Public company, ticker: NASDAQ: AAPL"},"notify_user":{"type":"boolean","default":true,"description":"Whenever set to true, we send an email to the Control person with the credentials to access the MassPay Dashboard. When set to false, no email notification would be sent."},"partner_pays_transaction_fees":{"type":"boolean","default":false,"description":"Determines who is responsible for transaction fees incurred by this business. When set to true, the partner (the entity enrolling this business) assumes responsibility and will be billed for all transaction fees generated by this business's activity. When set to false, the business is responsible for paying its own transaction fees.","example":false},"bank_details":{"type":"object","description":"The bank details section is used to obtain business bank account details.","required":["name_on_account","routing_number","account_number"],"properties":{"first_name":{"type":"string","description":"The first name listed on the bank account."},"last_name":{"type":"string","description":"The last name listed on the bank account."},"name_on_account":{"type":"string","description":"The full name associated with the bank account.","example":"Apple Inc"},"account_type":{"description":"The bank account type.","enum":["Checking","Savings"],"example":"Checking"},"routing_number":{"type":"string","description":"The designated routing number for the financial institution holding the bank account.","example":"322271627"},"account_number":{"type":"string","description":"The account number of the bank account.","example":"971121121"}}},"dba":{"type":"object","description":"The DBA section represents the operating location details.","required":["same_as_legal"],"properties":{"same_as_legal":{"type":"boolean","description":"Is the DBA, or operating address the same as the business legal address?  Y or N. ","default":true},"business_name":{"type":"string","description":"The DBA, or operating, business name."},"street1":{"type":"string","description":"The street one address of the operating business location."},"street2":{"type":"string","description":"The street two address of the operating business location."},"city":{"type":"string","description":"The operating business location city."},"state_prov":{"type":"string","description":"The operating business location state or province."},"postal_code":{"type":"string","description":"The operating business location zip, or postal, code."},"country":{"type":"string","description":"The operating business location country.  For United States, use \"USA\"","maxLength":3,"minLength":3}}},"details":{"type":"object","description":"Additional details of the business profile.","properties":{"company_annual_revenue":{"type":"number","description":"The annual revenue of the business."},"days_to_receive_product_or_service":{"type":"integer","description":"The number of days it typically takes for the business customers to receive their goods or services."},"expected_monthly_payout_transaction_volume":{"type":"number","description":"The expected total monthly payout amount, in $, for the business."},"expected_monthly_payout_transaction_count":{"type":"integer","description":"The expected total number of monthly payouts (transaction count) for the business."},"transaction_types_accepted":{"type":"array","description":"The transaction types accepted by the business for customer payment.  Multiple values can be selected.","items":{"enum":["Visa","Mastercard","Discover","Amex","ACH"]}},"credit_and_debit_card_accepted":{"type":"boolean","description":"Are credit and debit cards accepted by the business."},"expected_monthly_amex_sales_volume":{"type":"number","description":"If American Express is accepted for paymnet, what is the expected total monthly sales amount?"},"card_acceptance_card_present":{"type":"number","description":"Are credit or debit cards accepted in person? Specify their percent of volume. 0 if not accepted","example":50},"card_acceptance_card_not_present":{"type":"number","description":"Are credit or debit cards accepted where the cardholder is not present? Specify their percent of volume. 0 if not accepted"},"card_acceptance_internet":{"type":"boolean","description":"Are credit or debit cards accepted via the internet? Y or N."},"total_ach_annual_amount":{"type":"number","description":"If ACH payments are accepted, was is the total annual ACH amount?"},"average_ach_ticket_amount":{"type":"number","description":"If ACH payments are accepted, was is the average ACH ticket amount?"},"highest_ach_ticket_amount":{"type":"number","description":"If ACH payments are accepted, was is the highest ACH ticket amount?"},"max_monthly_ach_ticket_amount":{"type":"number","description":"The highest monthly ACH ticket amount."},"total_sales_monthly":{"type":"number","description":"The total monthly amount of sales."},"actual_or_projected_monthly_credit_debit_sales":{"type":"number","description":"The actual or projected monthly amount of sales paid for by credit or debit cards."},"highest_amount_ticket":{"type":"number","description":"The highest purchase ticket amount."},"times_year_highest_ticket_amount_expected":{"type":"integer","description":"The number of times in a year the highest ticket amount is expected."},"avg_ticket_amount":{"type":"number","description":"The average ticket amount."}}},"contact_person":{"type":"object","description":"The contact person is the submitter of the business enrollment.","properties":{"first_name":{"type":"string","description":"First name of the enrollment contact person."},"last_name":{"type":"string","description":"Last name of the enrollment contact person."},"title":{"type":"string","description":"Title of the enrollment contact person."},"email_address":{"type":"string","description":"Email address of the enrollment contact person."},"phone_number":{"type":"string","description":"Phone number of the enrollment contact person."},"reference_id":{"type":"string","description":"Business contact reference ID."}}},"principal":{"type":"array","description":"Fill in at least one owner officer","items":{"type":"object","description":"Owner/officer details.","required":["type","title","first_name","last_name","percentage_of_ownership","address_same_as_legal","street1","city","state_prov","postal_code","country","email_address","phone_number","dob","tax_id_type","tax_id_number","signing_application","country_of_citizenship"],"properties":{"type":{"type":"array","description":"Type of principal, i.e Owner and Officer","items":{"enum":["Control Person","Owner","Officer"],"example":"Control Person"}},"reference_id":{"type":"string","description":"Owner/officer reference ID.","example":"ref-tim"},"title":{"type":"string","description":"Owner/officer title.","example":"CEO"},"first_name":{"type":"string","description":"Owner/officer first name.\r\n","example":"Tim"},"middle_name":{"type":"string","description":"Owner/officer middle name."},"last_name":{"type":"string","description":"Owner/officer last name.","example":"Cook"},"percentage_of_ownership":{"type":"number","description":"Owner/officer percentage of business ownership, 0-100%.","example":0.02},"address_same_as_legal":{"type":"boolean","description":"Owner/officer address same as the business legal address"},"street1":{"type":"string","description":"Owner/officer address street one.","example":"One Apple Park Way"},"street2":{"type":"string","description":"Owner/officer address street two."},"city":{"type":"string","description":"Owner/officer address city.","example":"Cupertino"},"state_prov":{"type":"string","description":"Owner/officer address state or province.","example":"CA"},"postal_code":{"type":"string","description":"Owner/officer address zip, or postal code.","example":"95014"},"country":{"type":"string","description":"Owner/officer address country, For United States use \"USA\".","minLength":3,"maxLength":3,"example":"USA"},"email_address":{"type":"string","description":"Owner/officer email address.","example":"tcook@apple.com"},"phone_number":{"type":"string","description":"Owner/officer phone number.","example":"4089961010"},"dob":{"type":"string","format":"date","description":"Owner/officer date of birth. Format: \"YYYY-MM-DD\"","example":"1960-11-01"},"tax_id_type":{"description":"The Tax ID type submitted.","enum":["Passport","National Identification Card","Driving License","Social Security Card/Number","Tax Payer Identification Card/Number","Senior Citizen Identification Card","Birth Certificate","Village Elder Identification Card","Permanent Residency Identification Card","Alien Registration Certificate/Card","PAN Card","Voter’s Identification Card","Health Insurance Card/Number","Employer Identification Card","Others not listed"],"example":"Driving License"},"tax_id_number":{"type":"string","description":"Owner/officer social security number.  Format: \"#########\"","example":"D123456789"},"id_document":{"type":"string","description":"An image of an ID document for the Owner/officer. Base64 encoded"},"signing_application":{"type":"boolean","description":"Denotes if the Owner/officer is signing the application"},"country_of_citizenship":{"type":"string","description":"Owner/officer country of citizenship.  For United States, use \"USA\"","minLength":3,"maxLength":3,"example":"USA"}}}},"webhooks":{"type":"array","items":{"type":"object","properties":{"webhook_url":{"type":"string","description":"The URL that will receive the webhook payloads"},"event_types":{"type":"array","description":"The type of events the webhook will receive notifications for","items":{"enum":["user.created","user.status","payout.created","payout.status","payin.created","payin.status","load.created","load.status","load.reversed","spendback.created","spendback.status","spendback.inactivity","kyc.id","kyc.tax","attributes.stored","deposit_account.created","business.created","business.status","balance.credit","payout_reversal.created","payout_reversal.status","avs.completed","payin_deposit.return_completed","payin_deposit.returned","file_upload_req.created","file_upload_req.status","file_upload_req.verified"]}}}}}}},"TxnHistoryResp":{"title":"TxnHistoryResp","type":"object","properties":{"transactions":{"type":"array","description":"List of all matching transactions","items":{"$ref":"#/components/schemas/TxnHistoryRecordResp"}},"metadata":{"type":"object","properties":{"current_page":{"type":"integer","description":"Current page that is returned"},"total_results":{"type":"integer","description":"Total number of transactions"},"results_per_page":{"type":"integer","description":"How many transactions per page"},"total_pages":{"type":"integer","description":"Total number of available pages"}},"required":["current_page","total_results","results_per_page","total_pages"]}},"required":["transactions"]},"PayoutReversalResp":{"title":"PayoutReversalResp","type":"object","x-examples":{"Payout Reversal Response":{"payout_reversal_token":"payout_rev_1df1fccd-6f15-4838-8cc0-3c0bd380042a","source_amount":100,"source_currency_code":"USD","exchange_rate":1.1,"destination_amount":110,"destination_currency_code":"EUR","status":"COMPLETED","payout_token":"payout_f249d725-e24d-4fa0-aaf5-449aeb65089d","metadata":{"key":"value"},"fee":1.1}},"required":["payout_reversal_token","source_amount","source_currency_code","exchange_rate","destination_amount","destination_currency_code","status","payout_token","metadata","fee","original_destination_amount","total_reversed_amount","created"],"properties":{"payout_reversal_token":{"type":"string","description":"Payout Reversal Token"},"source_amount":{"type":"number","description":"The amount that was reversed in this transaction.\nThis can be a full or partial reversal of the original payout, depending on the requested reversal amount. The value is expressed in the same currency as the original payout."},"source_currency_code":{"type":"string","description":"Currency code for the amount that will be loaded onto the `source_token`"},"exchange_rate":{"type":"number","description":"Exchange rate between the source and destination amounts"},"destination_amount":{"type":"number","description":"The amount that will be debited from the `attr_set_token`"},"destination_currency_code":{"type":"string","description":"The currency in which the funds were received and will be debited from the `attr_set_token` associated with the original `payout_token`"},"status":{"description":"Status of Payout Reversal","enum":["PENDING","EXPIRED","PROCESSING","COMPLETED","CANCELLED","SCHEDULED","READY_FOR_PICKUP","HOLD","ERROR"]},"status_reason":{"type":"string","description":"When available, contains the reason code for the reversal status","example":"R01 - Insufficient Funds"},"payout_token":{"type":"string","description":"Token of the Payout the reversal is applied to"},"metadata":{"type":"object","description":"Optional JSON object with attributes that are attached to the payout reversal transaction"},"fee":{"type":"number","description":"Fee associated with the payout reversal"},"client_transfer_id":{"type":"string","description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status."},"original_destination_amount":{"type":"number","description":"The original `destination amount` that was deposited in the payout","minimum":0,"example":1000.34},"total_reversed_amount":{"type":"number","description":"The total amount that was reversed against the original payout so far","minimum":0,"example":10.2},"created":{"type":"string","format":"date-time","description":"Datetime of when the reversal was created. Provided in UTC"},"completed":{"type":"string","format":"date-time","description":"Datetime of when the payout reversal was completed and credited to the `source_token` of the original payout. Provided in UTC"}}},"PayoutReversalReq":{"title":"PayoutReversalReq","type":"object","x-examples":{"Payout Reversal Request":{"amount":100.5,"metadata":{"key":"value"},"client_transfer_id":"Chargeback 5004"}},"properties":{"amount":{"type":"number","description":"A positive number representing the amount to reverse from the original payout.\nYou may reverse the full amount or a partial amount, up to the remaining unreversed balance of the payout.\nIf omitted, the full available amount will be reversed.\nPartial reversals are supported. The value should be specified in the `destination_currency` of the original payout.","example":100.5,"minimum":0},"metadata":{"type":"object","description":"Optional JSON object with attributes that are attached to the payout reversal transaction"},"client_transfer_id":{"type":"string","description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status."},"statement_description":{"type":"string","description":"Optional descriptive line item that appears on the payout reversal statement, providing details about the transaction. This field is intended to help identify the purpose or source of each payout by displaying a brief summary or itemized description. Commonly includes information such as reversal reason. Note: Not all countries and banks support displaying this field."},"notify_user":{"type":"boolean","description":"Should we notify the user via email and SMS that a payout reversal was initiated aginst their account","default":false}}},"FileUploadResp":{"title":"FileUploadResp","type":"object","x-examples":{"File upload request":{"file_upload_token":"file_req_06944559-812c-4c41-a344-767591c57c5d","files_types_accepted":["Bank Statement","Paper Check"],"time_of_request":"2025-05-26 07:22:56","is_required":true,"ref_attributes":{"Account Number":"************4242"},"is_completed":true,"time_completed":"2025-08-24T14:15:22Z","is_verified":true,"is_rejected":false,"status":"verified"}},"required":["file_upload_token","files_types_accepted","time_of_request","is_required","ref_attributes","is_completed","is_verified","is_rejected","status"],"properties":{"file_upload_token":{"type":"string","description":"File upload request token. Need to reference this token when uploading files.","example":"file_req_f8d2f013-58cd-4ccc-b12d-c373f4d89eab"},"files_types_accepted":{"type":"array","description":"Types of files that can be accepted","items":{"type":"string","example":"Bank Deposit"}},"time_of_request":{"type":"string","format":"date-time","description":"Date and time the file upload request was created"},"is_required":{"type":"boolean","description":"Indication whether this file upload is required in order to initiate payouts"},"ref_attributes":{"type":"object","description":"An object with referenced attributes that this document collection is related to. For example, it may contain the bank account and bank routing numbers for which we require a bank statement."},"is_completed":{"type":"boolean","description":"Indicate whether the file request was completed"},"time_completed":{"type":"string","format":"date-time","description":"If completed, the date and time when it was completed"},"is_verified":{"type":"boolean","description":"Indicate wether the file request was verified and is considered completed"},"is_rejected":{"type":"boolean","description":"Indicate whether the uploaded files were rejected (`time_rejected` is set); a rejected request no longer counts toward any requirement"},"status":{"type":"string","enum":["pending","uploaded","verified","rejected"],"description":"Status of the file upload request: `rejected` when the uploaded files were rejected (`time_rejected` is set); otherwise `verified` when `is_verified` is true; otherwise `uploaded` when files were received (`time_completed` is set); otherwise `pending`"},"time_rejected":{"type":"string","format":"date-time","description":"Set when the uploaded files were rejected"},"rejection_reason":{"type":"string","description":"Reason given when the files were rejected, when one was provided"},"replacement_file_upload_token":{"type":"string","description":"When rejected, the token of the replacement request opened for the same requirement"},"replacement_file_upload_link":{"type":"string","format":"uri","description":"Only on the single-request endpoint: upload link for the replacement request"},"note":{"type":"string","description":"Optional note that will provide additional context about the file upload request","example":"Enter all pages of the utility bill"},"file_upload_link":{"type":"string","description":"If the request has not yet been completed, this field contains a URL where the user can upload the required files."}}},"W9FormRequest":{"type":"object","required":["tin_type","tin","federal_tax_classification"],"properties":{"tin_type":{"type":"string","enum":["SSN","EIN","ITIN"],"description":"Type of Taxpayer Identification Number"},"tin":{"type":"string","description":"Taxpayer Identification Number (format: XXX-XX-XXXX for SSN/ITIN or XX-XXXXXXX for EIN)","pattern":"^(\\d{3}-?\\d{2}-?\\d{4}|\\d{2}-?\\d{7})$"},"federal_tax_classification":{"type":"string","enum":["Individual","Sole Proprietor","Single Member LLC Not Elected","Single Member LLC Elected","C Corporation","S Corporation","Partnership","Trust or Estate","LLC C Corporation","LLC S Corporation","LLC Partnership","Others"],"description":"Federal tax classification of the person"},"business_name":{"type":"string","maxLength":40,"description":"Business name/disregarded entity name, if different from name on file"},"is_backup_withholding":{"type":"boolean","default":false,"description":"Whether the person is subject to backup withholding"},"exempt_payee_code":{"type":"string","enum":["1","2","3","4","5","6","7","8","9","10","11","12","13"],"description":"Exempt payee code 1-13 (if applicable); spelled-out numbers such as 'One' are translated"},"exempt_fatca_code":{"type":"string","enum":["A","B","C","D","E","F","G","H","I","J","K","L","M"],"description":"Exemption from FATCA reporting code (if applicable)"},"account_numbers":{"type":"string","maxLength":50,"description":"Account number(s) for reference"},"is_line_3b":{"type":"boolean","default":false,"description":"Check if partnership/trust/estate with foreign partners/owners/beneficiaries"},"other_description":{"type":"string","maxLength":50,"description":"Description when 'Others' is selected as federal tax classification"}}},"W8BENFormRequest":{"type":"object","required":["citizen_of_country","signature_name"],"properties":{"citizen_of_country":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter IRS country code of citizenship (e.g. UK, SP, GM); ISO codes that differ from the IRS code are not accepted by the tax provider"},"us_tin_type":{"type":"string","enum":["SSN","ITIN"],"description":"Type of US TIN (if applicable)"},"us_tin":{"type":"string","description":"US Taxpayer Identification Number (if applicable)"},"foreign_tin":{"type":"string","maxLength":25,"description":"Foreign Tax Identification Number"},"is_ftin_not_legally_required":{"type":"boolean","default":false,"description":"Check if FTIN is not legally required"},"reference_number":{"type":"string","maxLength":50,"description":"Reference number for your records"},"tax_treaty_benefits":{"$ref":"#/components/schemas/W8TaxTreatyBenefits"},"signature_name":{"type":"string","maxLength":65,"description":"Name of the person signing the form"}}},"W8TaxTreatyBenefits":{"type":"object","properties":{"beneficiary_country":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter IRS country code of the treaty country (e.g. UK, SP, GM)"},"claiming_article_paragraph":{"type":"string","maxLength":25,"description":"Article and paragraph of the treaty"},"rate_of_withholding":{"type":"string","maxLength":5,"description":"Rate of withholding (percentage)"},"type_of_income":{"type":"string","enum":["Paid by US Obligors—General","Paid by US Corporations","Qualifying for Direct Dividend Rate","Pensions and Annuities","Social Security","Industrial Equipment","Know-How/ Other Industrial Royalties","Patents","Film & TV","Copyrights","Others"],"description":"Type of income for treaty benefits"},"additional_conditions":{"type":"string","maxLength":40,"description":"Additional conditions from the treaty"}}},"W8BENEFormRequest":{"type":"object","required":["organization_name","country_of_organization","chapter_3_status","chapter_4_status","certification"],"properties":{"organization_name":{"type":"string","maxLength":40,"description":"Name of the organization"},"country_of_organization":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter country code of organization"},"disregarded_entity_name":{"type":"string","maxLength":80,"description":"Disregarded entity name (if applicable)"},"chapter_3_status":{"type":"string","description":"Chapter 3 status. FOREIGN CONTROLLED ENTITY and FOREIGN INTERGRAL PART are the IRS 'Foreign government - controlled entity' and 'Foreign government - integral part' statuses. DISREGARDED ENTITY requires `disregarded_entity_branch`.","enum":["SIMPLE TRUST","CENTRAL BANK OF ISSUE","GRANTOR TRUST","TAX EXEMPT ORGANIZATION","PRIVATE FOUNDATION","DISREGARDED ENTITY","CORPORATION","COMPLEX TRUST","ESTATE","INTERNATIONAL ORGANIZATION","PARTNERSHIP","FOREIGN CONTROLLED ENTITY","FOREIGN INTERGRAL PART"]},"chapter_4_status":{"type":"string","enum":["NONPARTICIPATING FFI","PARTICIPATING FFI","REPORTING MODEL1 FFI","REPORTING MODEL2 FFI","REGISTERED FFI","SPONSORED FFI","NONREGISTERING LOCALBANK","FFI LOWVALUE ACCOUNT","SPONSORED INVESTMENT VEHICLE","LIMITED LIFEDEBT INVESTMENT","NO FINANCIAL ACCOUNT","OWNER DOCUMENTED FFI","RESTRICTED DISTRIBUTOR","NONREPORTING IGA FFI","FOREIGN GOVERNMENT","INTERNATIONAL ORGANIZATION","EXEMPT RETIREMENT PLANS","EXEMPT BENEFICIAL OWNERS","TERRITORY FINANCIAL INSTITUTION","EXCEPTED NONFINANCIAL GROUP","EXCEPTED NONFINANCIAL STARTUP","EXCEPTED NONFINANCIAL LIQUIDATION BANKRUPTCY","501C ORGANIZATION","NONPROFIT ORGANIZATION","PUBLICLY TRADED NFFE","EXCEPTED TERRITORY NFFE","ACTIVE NFFE","PASSIVE NFFE","EXCEPTED INTER AFFILIATE FFI","DIRECT REPORTING NFFE","SPONSORED DIRECT REPORTING FFI","NON FINANCIAL ACCOUNT"],"description":"Chapter 4 (FATCA) status. The certification part the IRS form requires for the selected status is filled automatically; statuses that certify extra facts take them from `chapter_4_certification`: SPONSORED FFI (sponsoring_entity_name, sponsored_ffi_type), OWNER DOCUMENTED FFI (certification_line 24b-24d), RESTRICTED DISTRIBUTOR (certification_line 25b-25c), NONREPORTING IGA FFI (iga_country, iga_model, iga_treated_as), INTERNATIONAL ORGANIZATION (certification_line 28a-28b), EXEMPT RETIREMENT PLANS (certification_line 29a-29f), EXCEPTED NONFINANCIAL STARTUP (formed_on), 501C ORGANIZATION (irs_determination_letter_date), PUBLICLY TRADED NFFE (securities_market_name, or affiliate_entity_name + affiliate_securities_market_name), SPONSORED DIRECT REPORTING FFI (sponsoring_entity_name). DIRECT REPORTING NFFE and the participating / reporting / registered / sponsored FFI statuses require `giin`. The tax provider currently rejects NONREPORTING IGA FFI, NONREGISTERING LOCALBANK, FFI LOWVALUE ACCOUNT, SPONSORED INVESTMENT VEHICLE, LIMITED LIFEDEBT INVESTMENT, NO FINANCIAL ACCOUNT, FOREIGN GOVERNMENT and EXCEPTED NONFINANCIAL LIQUIDATION BANKRUPTCY; submissions with those values return 400 before reaching the provider."},"us_tin_type":{"type":"string","enum":["SSN","ITIN"],"description":"Type of US TIN (if applicable)"},"us_tin":{"type":"string","description":"US Taxpayer Identification Number (if applicable)"},"giin":{"type":"string","maxLength":19,"pattern":"^[A-Z0-9]{6}\\.[A-Z0-9]{5}\\.[A-Z]{2}\\.[0-9]{3}$","example":"98Q96B.00000.LE.724","description":"Global Intermediary Identification Number in the IRS format XXXXXX.XXXXX.XX.XXX: 6 alphanumerics (FATCA ID), 5 alphanumerics (financial institution type), a 2-letter category code (LE, SL, ME, BR, SP, SD, SF, SS or SB) and the 3-digit ISO numeric country code. Required for DIRECT REPORTING NFFE and the participating / reporting / registered / sponsored FFI statuses."},"foreign_tin":{"type":"string","maxLength":25,"description":"Foreign Tax Identification Number"},"is_ftin_not_legally_required":{"type":"boolean","default":false,"description":"Check if FTIN is not legally required"},"reference_number":{"type":"string","maxLength":50,"description":"Reference number for your records"},"is_hybrid_entity_treaty_claim":{"type":"boolean","default":false,"description":"Is entity a hybrid making a treaty claim"},"tax_treaty_benefits":{"$ref":"#/components/schemas/W8BENETaxTreatyBenefits"},"limitation_on_benefits":{"type":"string","enum":["GOVERNMENT","TAX-EXEMPT PENSION TRUST OR PENSION FUND","OTHER TAX-EXEMPT ORGANIZATION","PUBLICLY TRADED CORPORATION","SUBSIDIARY OF A PUBLICLY TRADED CORPORATION","COMPANY THAT MEETS THE OWNERSHIP AND BASE EROSION TEST","COMPANY THAT MEETS THE DERIVATIVE BENEFITS TEST","COMPANY WITH AN ITEM OF INCOME THAT MEETS ACTIVE TRADE OR BUSINESS TEST","FAVORABLE DISCRETIONARY DETERMINATION BY THE U.S. COMPETENT AUTHORITY RECEIVED","NO LOB ARTICLE IN TREATY","OTHER"],"description":"Limitation on benefits provision (Part III line 14b). Accepted here or inside `tax_treaty_benefits`. OTHER requires `limitation_on_benefits_other_detail`."},"limitation_on_benefits_other_detail":{"type":"string","maxLength":35,"description":"Article and paragraph relied on when `limitation_on_benefits` is OTHER"},"disregarded_entity_branch":{"$ref":"#/components/schemas/DisregardedEntityBranch"},"chapter_4_certification":{"$ref":"#/components/schemas/W8BENEChapter4Certification"},"substantial_us_owners":{"type":"array","items":{"$ref":"#/components/schemas/SubstantialUSOwner"},"description":"List of substantial US owners (for passive NFFE)"},"certification":{"$ref":"#/components/schemas/W8Certification"}}},"W8BENETaxTreatyBenefits":{"type":"object","properties":{"is_claiming_treaty_benefits":{"type":"boolean","default":false,"description":"Whether claiming treaty benefits"},"beneficiary_country":{"type":"string","minLength":2,"maxLength":2,"description":"Country claiming treaty benefits"},"claiming_article_paragraph":{"type":"string","maxLength":25,"description":"Article and paragraph of the treaty"},"rate_of_withholding":{"type":"string","maxLength":5,"description":"Rate of withholding (percentage)"},"type_of_income":{"type":"string","enum":["Paid by US Obligors—General","Paid by US Corporations","Qualifying for Direct Dividend Rate","Pensions and Annuities","Social Security","Industrial Equipment","Know-How/ Other Industrial Royalties","Patents","Film & TV","Copyrights","Others"],"description":"Type of income for treaty benefits"},"additional_conditions":{"type":"string","maxLength":40,"description":"Additional conditions from the treaty"},"limitation_on_benefits":{"type":"string","description":"Same values as `W8BENEFormRequest.limitation_on_benefits`; accepted here as well"},"limitation_on_benefits_other_detail":{"type":"string","maxLength":35,"description":"Article and paragraph relied on when `limitation_on_benefits` is OTHER"}}},"W8BENEChapter4Certification":{"type":"object","description":"Facts certified in the W-8BEN-E Part IV-XXVIII that matches `chapter_4_status`. Only the fields for the selected status are read.","properties":{"sponsoring_entity_name":{"type":"string","maxLength":80,"description":"Parts IV, VII and XXVIII: name of the sponsoring entity"},"sponsored_ffi_type":{"type":"string","enum":["INVESTMENT_ENTITY","CONTROLLED_FOREIGN_CORPORATION"],"description":"Part IV: line 17a (investment entity) or 17b (controlled foreign corporation)"},"certification_line":{"type":"string","description":"The form line being certified for OWNER DOCUMENTED FFI (24b, 24c, 24d), RESTRICTED DISTRIBUTOR (25b, 25c), INTERNATIONAL ORGANIZATION (28a, 28b) or EXEMPT RETIREMENT PLANS (29a to 29f)","example":"24b"},"iga_country":{"type":"string","maxLength":40,"description":"Part XII: jurisdiction whose IGA is treated as in effect"},"iga_model":{"type":"string","enum":["MODEL1IGA","MODEL2IGA"],"description":"Part XII: IGA model"},"iga_treated_as":{"type":"string","maxLength":40,"description":"Part XII: provisions under which the entity is treated as a nonreporting financial institution"},"trustee_or_sponsor_name":{"type":"string","maxLength":30,"description":"Part XII: trustee or sponsor name (trustee-documented trust or sponsored entity)"},"is_trustee_us":{"type":"boolean","description":"Part XII: whether the trustee is a U.S. person"},"formed_on":{"type":"string","format":"date","description":"Part XIX: date the start-up company was formed (YYYY-MM-DD)"},"bankruptcy_date":{"type":"string","format":"date","description":"Part XX: date the liquidation or bankruptcy plan was filed (YYYY-MM-DD)"},"irs_determination_letter_date":{"type":"string","format":"date","description":"Part XXI: effective date of the IRS determination letter (YYYY-MM-DD)"},"securities_market_name":{"type":"string","maxLength":35,"description":"Part XXIII line 37a: securities market on which the entity's stock is regularly traded"},"affiliate_entity_name":{"type":"string","maxLength":35,"description":"Part XXIII line 37b: publicly traded affiliate whose stock is regularly traded"},"affiliate_securities_market_name":{"type":"string","maxLength":40,"description":"Part XXIII line 37b: securities market on which the affiliate's stock is traded"}}},"SubstantialUSOwner":{"type":"object","properties":{"name":{"type":"string","maxLength":30,"description":"Name of the substantial US owner"},"address":{"type":"string","maxLength":40,"description":"Address of the substantial US owner"},"tin_type":{"type":"string","enum":["SSN","EIN"],"description":"TIN type of the US owner"},"tin":{"type":"string","maxLength":10,"description":"TIN of the US owner"}}},"W8Certification":{"type":"object","required":["has_capacity_to_sign","signer_name"],"properties":{"has_capacity_to_sign":{"type":"boolean","description":"Certifies capacity to sign for the entity"},"signer_name":{"type":"string","maxLength":65,"description":"Name of the person signing"}}},"W8ECIFormRequest":{"type":"object","required":["organization_country","entity_type","tin_type","tin","us_business_address","item_of_income","signature_name"],"properties":{"trade_name":{"type":"string","maxLength":75,"description":"Trade name (DBA)"},"organization_country":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter country code of organization"},"entity_type":{"type":"string","enum":["PARTNERSHIP","FOREIGN GOVT-CONTROLLED ENTITY","FOREIGN GOVT-INTERGRAL PART","PRIVATE FOUNDATION","SIMPLE TRUST","GRANTOR TRUST","INTERNATIONAL ORGANIZATION","INDIVIDUAL","COMPLEX TRUST","CENTRAL BANK OF ISSUE","CORPORATION","ESTATE","TAX-EXEMPT ORGANIZATION"],"description":"Type of entity"},"tin_type":{"type":"string","enum":["EIN","SSN","ITIN"],"description":"Type of US TIN"},"tin":{"type":"string","description":"US Taxpayer Identification Number"},"foreign_tin":{"type":"string","maxLength":25,"description":"Foreign Tax Identification Number"},"is_ftin_not_legally_required":{"type":"boolean","default":false,"description":"Check if FTIN is not legally required"},"us_business_address":{"$ref":"#/components/schemas/USAddress"},"reference_number":{"type":"string","maxLength":50,"description":"Reference number for your records"},"item_of_income":{"type":"string","maxLength":200,"description":"Description of income items effectively connected with US trade/business"},"is_dealer_securities_or_ptp":{"type":"boolean","default":false,"description":"Is dealer in securities or transferor of PTP interest"},"signature_name":{"type":"string","maxLength":65,"description":"Name of the person signing the form"}}},"W8IMYFormRequest":{"type":"object","required":["chapter_3_status","chapter_4_status","certification"],"properties":{"disregarded_entity_name":{"type":"string","maxLength":80,"description":"Disregarded entity name (if applicable)"},"chapter_3_status":{"type":"string","enum":["QI_INCLUDING_A_QDD","NONQUALIFIED_INTERMEDIARY","TERRITORY_FINANCIAL_INSTITUTION","US_BRANCH","WITHHOLDING_FOREIGN_PARTNERSHIP","WITHHOLDING_FOREIGN_TRUST","NONWITHHOLDING_FOREIGN_PARTNERSHIP","NONWITHHOLDING_FOREIGN_SIMPLE_TRUST","NONWITHHOLDING_FOREIGN_GRANTOR_TRUST"],"description":"Chapter 3 status for withholding"},"chapter_4_status":{"type":"string","enum":["NONPARTICIPATING_FFI","PARTICIPATING_FFI","REPORTING_MODEL1_FFI","REPORTING_MODEL2_FFI","REGISTERED_DEEMED_COMPLIANT_FFI","TERRITORY_FINANCIAL_INSTITUTION","SPONSORED_FFI","CERTIFIED_DEEMED_COMPLIANT_NONREGISTERING_LOCAL_BANK","CERTIFIED_DEEMED_COMPLIANT_FFI_WITH_ONLY_LOW_VALUE_ACCOUNTS","CERTIFIED_DEEMED_COMPLIANT_SPONSORED_CLOSELY_HELD_INVESTMENT_VEHICLE","CERTIFIED_DEEMED_COMPLIANT_LIMITED_LIFE_DEBT_INVESTMENT_ENTITY","CERTAIN_INVESTMENT_ENTITIES_THAT_DO_NOT_MAINTAIN_FINANCIAL_ACCOUNTS","OWNER_DOCUMENTED_FFI","RESTRICTED_DISTRIBUTOR","FOREIGN_CENTRAL_BANK_OF_ISSUE","NONREPORTING_IGA_FFI","EXEMPT_RETIREMENT_PLANS","EXCEPTED_NONFINANCIAL_GROUP_ENTITY","EXCEPTED_NONFINANCIAL_START_UP_COMPANY","EXCEPTED_NONFINANCIAL_ENTITY_IN_LIQUIDATION_OR_BANKRUPTCY","PUBLICLY_TRADED_NFFE_OR_NFFE_AFFILIATE_OF_A_PUBLICLY_TRADED_CORPORATION","EXCEPTED_TERRITORY_NFFE","ACTIVE_NFFE","PASSIVE_NFFE","DIRECT_REPORTING_NFFE","SPONSORED_DIRECT_REPORTING_NFFE"],"description":"Chapter 4 (FATCA) status"},"us_tin_type":{"type":"string","enum":["QI-EIN","WP-EIN","WT-EIN","EIN"],"description":"Type of US TIN"},"us_tin":{"type":"string","description":"US Taxpayer Identification Number"},"giin":{"type":"string","maxLength":19,"description":"Global Intermediary Identification Number"},"foreign_tin":{"type":"string","maxLength":25,"description":"Foreign Tax Identification Number"},"is_ftin_not_legally_required":{"type":"boolean","default":false,"description":"Check if FTIN is not legally required"},"reference_number":{"type":"string","maxLength":50,"description":"Reference number for your records"},"qualified_intermediary":{"$ref":"#/components/schemas/QualifiedIntermediaryInfo"},"disregarded_entity_branch":{"$ref":"#/components/schemas/DisregardedEntityBranch"},"certification":{"$ref":"#/components/schemas/W8Certification"}}},"QualifiedIntermediaryInfo":{"type":"object","properties":{"is_qi":{"type":"boolean","description":"Is a Qualified Intermediary"},"assumes_primary_withholding_responsibility":{"type":"boolean","description":"Assumes primary withholding responsibility for chapters 3 and 4"},"assumes_primary_1446f_responsibility":{"type":"boolean","description":"Assumes primary withholding for section 1446(f)"},"assumes_primary_nominee_responsibility":{"type":"boolean","description":"Assumes primary withholding as nominee"},"is_qualified_securities_lender":{"type":"boolean","description":"Is QI acting as qualified securities lender"},"assumes_primary_1099_reporting":{"type":"boolean","description":"Assumes primary Form 1099 reporting and backup withholding"},"does_not_assume_1099_reporting":{"type":"boolean","description":"Does not assume primary Form 1099 reporting"}}},"DisregardedEntityBranch":{"type":"object","properties":{"chapter_4_status":{"type":"string","description":"Chapter 4 status of the disregarded entity or branch receiving the payment: PARTICIPATING FFI, REPORTING MODEL1 FFI, REPORTING MODEL2 FFI, US BRANCH or BRANCH TREATED AS NONPARTICIPATING FFI"},"address":{"$ref":"#/components/schemas/ForeignAddress"},"giin":{"type":"string","maxLength":19,"description":"GIIN of the disregarded entity/branch"}}},"USAddress":{"type":"object","required":["address1","city","state","zip_code"],"properties":{"address1":{"type":"string","maxLength":46,"description":"Street address"},"address2":{"type":"string","maxLength":46,"description":"Suite/apartment number"},"city":{"type":"string","maxLength":50,"description":"City"},"state":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter state code"},"zip_code":{"type":"string","pattern":"^\\d{5}(-\\d{4})?$","description":"ZIP code (XXXXX or XXXXX-XXXX)"}}},"ForeignAddress":{"type":"object","properties":{"address1":{"type":"string","maxLength":50,"description":"Street address"},"address2":{"type":"string","maxLength":50,"description":"Suite/apartment number"},"city":{"type":"string","maxLength":50,"description":"City"},"state":{"type":"string","maxLength":50,"description":"Province or state name"},"country":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter country code"},"postal_code":{"type":"string","maxLength":16,"description":"Postal code"}}},"TaxFormSubmissionResponse":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Unique identifier for the submission"},"form_type":{"type":"string","enum":["W9","W8BEN","W8BENE","W8ECI","W8IMY"],"description":"Type of form submitted"},"status":{"type":"string","enum":["Submitted","Pending","Validated","Error"],"description":"Current status of the submission"},"submitted_at":{"type":"string","format":"date-time","description":"Timestamp of submission"},"errors":{"type":"array","description":"List of validation errors (if any)","items":{"$ref":"#/components/schemas/TaxFormError"}},"pdf_content":{"type":"string","description":"Base64 encoded byte representing the content of the file"}}},"TaxFormError":{"type":"object","properties":{"id":{"type":"string","description":"Error code"},"name":{"type":"string","description":"Field name with the error"},"message":{"type":"string","description":"Error description"}}},"Form1099KTransmitRequest":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Optional. The submission ID of the 1099-K form to transmit. If not provided, the latest untransmitted form for the user will be transmitted."}}},"Form1099KTransmitResponse":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Unique identifier for the submission"},"status":{"type":"string","enum":["Transmitted","Error"],"description":"Status of the transmission"},"transmitted_at":{"type":"string","format":"date-time","description":"Timestamp of transmission"},"state_returns":{"type":"array","description":"State return statuses","items":{"$ref":"#/components/schemas/Form1099KTransmitStateReturn"}},"errors":{"type":"array","description":"List of errors (if any)","items":{"$ref":"#/components/schemas/TaxFormError"}}}},"Form1099KTransmitStateReturn":{"type":"object","properties":{"state_code":{"type":"string","description":"State code"},"status":{"type":"string","description":"Status of the state return"}}},"Form1099NECTransmitRequest":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Optional. The submission ID of the 1099-NEC form to transmit. If not provided, the latest untransmitted form for the user will be transmitted."}}},"Form1099NECTransmitResponse":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Unique identifier for the submission"},"status":{"type":"string","enum":["Transmitted","Error"],"description":"Status of the transmission"},"transmitted_at":{"type":"string","format":"date-time","description":"Timestamp of transmission"},"state_returns":{"type":"array","description":"State return statuses","items":{"$ref":"#/components/schemas/Form1099NECTransmitStateReturn"}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/TaxFormError"},"description":"List of errors (if any)"}}},"Form1099NECTransmitStateReturn":{"type":"object","properties":{"state_code":{"type":"string","description":"State code"},"status":{"type":"string","description":"Status of the state return"}}},"Form1099NECRequest":{"type":"object","required":["tax_year"],"properties":{"tax_year":{"type":"string","enum":["2023","2024","2025"],"description":"Tax year of the Form 1099-NEC"},"supplemental_nonemployee_compensation":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 1: Supplemental Nonemployee compensation amount. When provided, this amount will be added to the total amount of payouts and loads (deducting spendbacks) that were initiated in the tax year\nEither this or nonemployee_compensation is required"},"nonemployee_compensation":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 1: Nonemployee compensation amount. When provided, this will be the total amount reported.\nEither this or supplemental_nonemployee_compensation is required"},"is_direct_sales":{"type":"boolean","default":false,"description":"Box 2: Check if $5,000 or more of consumer products sold for resale"},"excess_golden_parachute":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 3: Excess golden parachute payments"},"federal_tax_withheld":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 4: Federal income tax withheld"},"account_number":{"type":"string","minLength":4,"maxLength":20,"description":"Account number for reference when multiple 1099-NEC forms are filed for the same recipient"},"state_filing":{"type":"array","description":"State filing information","items":{"$ref":"#/components/schemas/Form1099NECStateFiling"}},"is_postal":{"type":"boolean","default":false,"description":"When set to true, once the return is transmitted, the 1099-NEC form copy will be mailed to the recipient's address via USPS.\n\nNote: Postal Orders for Foreign Address will not be created."},"email_address":{"type":"string","description":"Optional email address to receive the tax form link; if provided, the form link will be sent to this address, and if omitted, no email will be sent.","format":"email"},"address":{"$ref":"#/components/schemas/ForeignAddress"}}},"Form1099NECStateFiling":{"type":"object","properties":{"state_code":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter state code"},"state_id_number":{"type":"string","maxLength":20,"description":"State identification number"},"state_tax_withheld":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"State income tax withheld"},"state_income":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"State income amount"}}},"Form1099NECSubmissionResponse":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Unique identifier for the submission"},"form_type":{"type":"string","enum":["1099-NEC"],"description":"Type of form submitted"},"tax_year":{"type":"string","description":"Tax year of the submission"},"status":{"type":"string","enum":["Created","Pending","Validated","Error"],"description":"Current status of the submission"},"federal_return":{"$ref":"#/components/schemas/Form1099NECReturnStatus"},"state_returns":{"type":"array","items":{"$ref":"#/components/schemas/Form1099NECStateReturnStatus"}},"submitted_at":{"type":"string","format":"date-time","description":"Timestamp of submission"},"pdf_content":{"type":"string","description":"Base64 encoded byte representing the content of the file"},"gross_amount":{"type":"number","description":"Total gross amount reported. This amount includes the total payouts through MassPay in addition to the supplemental gross amount provided."}}},"Form1099NECReturnStatus":{"type":"object","properties":{"status":{"type":"string","description":"Status of the federal return"},"status_timestamp":{"type":"string","format":"date-time","description":"Timestamp of the status"},"info":{"type":"string","description":"Additional information"}}},"Form1099NECStateReturnStatus":{"type":"object","properties":{"state_code":{"type":"string","description":"State code"},"status":{"type":"string","description":"Status of the state return"},"status_timestamp":{"type":"string","format":"date-time","description":"Timestamp of the status"},"info":{"type":"string","description":"Additional information"}}},"TaxFormSubmission":{"type":"object","properties":{"provider":{"type":"string","enum":["TaxBandits"],"description":"Tax form provider"},"submission_id":{"type":"string","format":"uuid","description":"Unique submission identifier"},"tax_year":{"type":"string","pattern":"^[0-9]{4}$","description":"Tax year (4 digits)"},"tax_form":{"type":"string","enum":["1099K","1099NEC","1099MISC"],"description":"Type of tax form"},"status":{"type":"string","enum":["CREATED","TRANSMITTED","SENT_TO_AGENCY","ACCEPTED","REJECTED","ACCEPTED_WITH_ERRORS","YET_TO_RETRANSMIT"],"description":"Submission status"},"fee":{"type":"number","format":"float","description":"Fee charged for the submission"},"currency":{"type":"string","description":"Currency of the fee"},"gross_amount":{"type":"number","format":"float","description":"Gross amount reported"},"supplemental_gross_amount":{"type":"number","format":"float","description":"Supplemental gross amount"},"is_postal":{"type":"boolean","description":"Whether postal delivery was used"},"time_created":{"type":"string","format":"date-time","description":"Timestamp of submission creation"},"files_content":{"$ref":"#/components/schemas/TaxFormFileContent"}}},"TaxFormFileContent":{"type":"object","properties":{"file_name":{"type":"string","description":"Name of the tax form file"},"content":{"type":"string","description":"Base64 encoded content of the file"}}},"ValueAddedServicesPayouts":{"type":"object","title":"ValueAddedServicesPayouts","description":"Optional per-transaction overrides for payout value added services. Omitted properties default to the account's configuration.","properties":{"account_validation":{"$ref":"#/components/schemas/AccountValidationVAS"}}},"AccountValidationVAS":{"type":"object","title":"AccountValidationVAS","description":"Controls whether account validation runs for this transaction.","properties":{"validation":{"type":"string","enum":["RUN","SKIP","ACCOUNT_DEFAULT"],"default":"ACCOUNT_DEFAULT","example":"SKIP","description":"`RUN` always runs account validation for this transaction, even if the account configuration has it disabled. `SKIP` never runs account validation for this transaction, even if the account configuration has it enabled. `ACCOUNT_DEFAULT` (the default when omitted) defers to the account's configuration."}}},"ReversePayinReq":{"type":"object","title":"ReversePayinReq","description":"Optional details for a pay-in reversal.","properties":{"reason":{"type":"string","maxLength":255,"example":"Customer requested cancellation before depositing funds","description":"Optional free-text reason for the reversal, stored for audit purposes"}}},"PayinsService":{"type":"object","x-tags":["Catalog"],"required":["country_code","delivery_type","payers"],"properties":{"country_code":{"type":"string","description":"Country code [ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3)","example":"MEX","minLength":3,"maxLength":3},"delivery_type":{"type":"string","enum":["CASH_PICKUP","BANK_DEPOSIT","HOME_DELIVERY","MOBILE_WALLET","MASSPAY_CARD","PAPER_CHECK","BILL","CRYPTOCURRENCY"],"description":"The type of service. I.e. cash pickup, home delivery, etc."},"payers":{"type":"array","items":{"type":"object","required":["source_token","payer_name","exchange_rate","fee","max_limit","min_limit","is_dynamic_token","is_variable_fee","is_generic"],"properties":{"source_token":{"type":"string","description":"Token that represents the payin source. orgn prefix followed by 36 characters long","format":"uuid","example":"orgn_123e4567-e89b-12d3-a456-426614174000"},"payer_logo":{"type":"string","format":"byte","description":"base64 representation of the payer logo","example":"U3dhZ2dlciByb2Nrcw=="},"payer_name":{"type":"string","example":"Elektra","description":"Name of payer"},"exchange_rate":{"type":"array","description":"Lists all available currencies and their estimated rates","items":{"type":"object","required":["currency_symbol","exchange_rate"],"properties":{"currency_symbol":{"type":"string","example":"MXN","description":"Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format."},"exchange_rate":{"type":"number","description":"Estimated rate","format":"double","example":18.37}}}},"fee":{"type":"number","description":"Service fee","format":"double","example":8},"max_limit":{"type":"number","description":"The maximum amount (inclusive) the user can send with this service. 0 if no upper limit","format":"double","example":10000},"min_limit":{"type":"number","description":"The minimum amount (inclusive) the user can send with this service. 0 if no lower limit","format":"double","example":0},"source_amount":{"type":"number","description":"Optional return field. Will only show if `limit` parameter is provided","format":"double","example":104.3},"number_of_locations":{"type":"integer","default":0,"description":"Total number of locations. Mostly relevant for cash pickup services. 0 if unknown or irrelevant","format":"int32","example":13007,"minimum":0},"estimated_availability":{"type":"string","format":"date-time","example":"2020-07-21T17:32:28Z","description":"Estimated availability of funds. When funds would be available to pickup/deposited"},"additional_description":{"type":"string","example":"Requires drivers license to pickup funds","description":"When available, additional description that explains the service offered or requirements for funds delivery."},"is_dynamic_token":{"type":"boolean","description":"When set to true, it indicates that this source_token will auto retry the transaction for a set time until it is successful or timesout. False value means the transaction will be processed by the payer in real-time with instant feedback on success/failure."},"is_variable_fee":{"type":"boolean","description":"Indicates whether the fee is variable. When set to true, you can expect the fee to change based on the `source_amount`."},"is_generic":{"type":"boolean","description":"Indicates whether the payer is generic. When true, institution-specific details are provided dynamically via attributes rather than being tied to a predefined institution configuration."}}}}}},"PayinsCompany":{"type":"object","required":["company_logo","services","rating","description","company_name"],"x-tags":["Catalog"],"properties":{"company_logo":{"type":"string","description":"base64 representation of the company logo","format":"byte","example":"U3dhZ2dlciByb2Nrcw=="},"services":{"type":"array","items":{"$ref":"#/components/schemas/PayinsService"}},"rating":{"type":"number","example":4.5,"description":"Overall rating of provider calculated from feedback provided by users from previous transactions"},"description":{"type":"string","description":"A short description of the company","example":"MassPay is a top leading provider with over 10 years of industry experience"},"company_name":{"type":"string","description":"The company name","example":"MassPay"}}},"PayinsCompaniesResp":{"type":"object","required":["companies"],"x-tags":["Catalog"],"properties":{"companies":{"type":"array","items":{"$ref":"#/components/schemas/PayinsCompany"}}}},"NetworkResponse":{"type":"object","description":"Network-level response details from the underlying card/network partner. Fields populated vary by partner and by which value-added checks were requested.","properties":{"action_code":{"type":"string","description":"Network action/response code. '00' indicates approval; non-zero values indicate decline or error reasons.","example":"00"},"approval_code":{"type":"string","description":"Authorization/approval code returned by the network on a successful authorization.","example":"123456","nullable":true},"address_verification":{"type":"string","description":"AVS result code returned when AVS was set to RUN or RUN_AND_VALIDATE. Typical values include Y (full match), A (address only), Z (postal only), N (no match), U (unavailable).","example":"Y","nullable":true},"cvv2_result_code":{"type":"string","description":"CVV2 result code returned when a CVV was supplied. Typical values: M (match), N (no match), P (not processed), U (unavailable), S (should be present).","example":"M","nullable":true},"cavv_result_code":{"type":"string","description":"CAVV verification result code returned by the network when 3DS authentication data was supplied.","example":"2","nullable":true},"ani_result":{"type":"string","description":"Outcome of the Account Name Information match, populated when ANI was set to RUN or RUN_AND_VALIDATE. Absent when ANI was skipped.","enum":["MATCH","PARTIAL_MATCH","NO_MATCH","NOT_CHECKED","UNAVAILABLE"],"example":"MATCH","nullable":true},"account_number":{"type":"string","description":"Account number of the bank account created for this transaction.","example":"1234567890","nullable":true},"routing_number":{"type":"string","description":"Bank routing number (ABA) of the account created for this transaction.","example":"021000021","nullable":true},"swift_bic":{"type":"string","description":"Bank swift BIC code of the account created for this transaction.","example":"CSRVUS33XXX","nullable":true},"bank_name":{"type":"string","description":"Bank name of the account created for this transaction.","example":"Cross River Bank","nullable":true},"bank_address":{"type":"string","description":"Bank address of the account created for this transaction.","example":"885 Teaneck Road, Teaneck, NJ 07666 USA","nullable":true},"name_on_account":{"type":"string","description":"Name on the bank account created for this transaction.","example":"Jane Doe","nullable":true},"network_id":{"type":"string","description":"Identifier of the card network/partner that processed the transaction.","example":"VISA","nullable":true},"response_reason_code":{"type":"string","description":"Network reason code providing additional detail about the response.","example":"00","nullable":true},"exemption_reason_code":{"type":"string","description":"Code indicating any SCA (Strong Customer Authentication) exemption applied to the transaction.","nullable":true}}},"InitiatePayinResp":{"type":"object","description":"Response returned when initiating a pay-in transaction.","properties":{"payin_token":{"type":"string","description":"Token representing the initiated pay-in transaction. Use this for subsequent commit/status calls.","example":"payin_ba4275f2-bae1-488d-9d6f-20af1cd83574","nullable":true},"funding_code":{"type":"string","description":"Funding code for tracking the payment source (e.g. cash deposit reference shown to the user).","example":"CASH-9F2J7L","nullable":true},"client_transfer_id":{"type":"string","description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status."},"destination_token":{"type":"string","description":"Token representing the destination wallet/account where funds will be deposited.","example":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692"},"payment_reference":{"type":"string","description":"Payment reference identifier from the partner/network.","example":"REF-2025-04823","nullable":true},"required_action":{"type":"string","enum":["CASH_DEPOSIT_AT_STORE","TRANSFER","BANK_AUTHORIZATION","CARD_CAPTURE","NONE"],"default":"NONE","description":"Additional action required from the user/system to complete the pay-in. NONE means no further action is needed."},"instructions":{"type":"string","description":"Human-readable instructions for completing the required action.","example":"Commit payin to finalize transaction"},"status":{"type":"string","enum":["INITIATED","PROCESSING","COMPLETED","ERROR","CANCELLED"],"default":"INITIATED","description":"Current status of the pay-in. INITIATED = created and awaiting action; PROCESSING = in flight at partner; COMPLETED = funds settled; ERROR = failed."},"requires_commit":{"type":"boolean","default":false,"description":"Whether a separate commit call is required to finalize the transaction."},"source_amount":{"type":"number","format":"double","description":"Amount in source currency.","example":100.5,"nullable":true},"destination_amount":{"type":"number","format":"double","description":"Amount in destination currency (after FX, if applicable).","example":100.5,"nullable":true},"exchange_rate":{"type":"number","format":"double","description":"Exchange rate applied between source and destination currencies.","nullable":true},"fee":{"type":"number","format":"double","description":"Fee charged for the pay-in, in source currency.","example":2.99,"nullable":true},"source_currency_code":{"type":"string","description":"Source currency code (ISO 4217, or asset code for crypto).","example":"USD","nullable":true},"destination_currency_code":{"type":"string","description":"Destination currency code (ISO 4217, or asset code for crypto).","example":"USD","nullable":true},"network_response":{"$ref":"#/components/schemas/NetworkResponse"},"deposits":{"type":"array","description":"Deposits made toward this pay-in. A pay-in may be funded by multiple deposits.","items":{"$ref":"#/components/schemas/PayinDeposit"}},"error":{"type":"string","description":"Error message when the pay-in fails. Format for partner failures: '<reason> [<action_code>] <network message>'.","example":"Insufficient funds or limit exceeded [51] Not sufficient funds","nullable":true},"error_type":{"type":"string","enum":["VALIDATION","PARTNER","GENERIC"],"description":"Category of the error. VALIDATION = client request issue; PARTNER = upstream partner/network failure; GENERIC = unclassified.","nullable":true},"source_token":{"type":"string","description":"Token that represent the rail through which the pay-in will be collected from. I.e. Crypto Deposit, Cash Deposit, Bank Debit, etc. List of available service can be obtained through the catalog pay-ins endpoint"}}},"Form1099KRequest":{"type":"object","required":["tax_year","merchant_category_code","number_of_payment_transactions","transactions_reported_type"],"properties":{"tax_year":{"type":"string","enum":["2023","2024","2025"],"description":"Tax year of the Form 1099-K"},"supplemental_gross_amount":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 1a: Supplemental Gross amount of total reportable payment card/third party network transactions. When provided, this amount will be added to the total amount of payouts and loads (deducting spendbacks) that were initiated in the tax year\nEither this or gross_amount is required"},"gross_amount":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 1: Gross amount. When provided, this will be the total amount reported.\nEither this or supplemental_gross_amount is required"},"merchant_category_code":{"type":"string","minLength":4,"maxLength":4,"description":"Box 2: Four-digit merchant category code (MCC)"},"number_of_payment_transactions":{"type":"integer","minimum":0,"maximum":9999999,"description":"Box 3: Number of payment transactions processed"},"federal_tax_withheld":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 4: Federal income tax withheld (backup withholding)"},"monthly_amounts":{"$ref":"#/components/schemas/Form1099KMonthlyAmounts"},"account_number":{"type":"string","minLength":4,"maxLength":20,"description":"Account number for reference when multiple 1099-K forms are filed for the same recipient"},"filer_indicator":{"type":"string","enum":["PSE","EPF"],"description":"Type of filer: PSE (Payment Settlement Entity) or EPF (Electronic Payment Facilitator)"},"transactions_reported_type":{"type":"string","enum":["Payment_Card","Third_Party_Network"],"description":"Type of transactions being reported"},"pse_details":{"$ref":"#/components/schemas/Form1099KPSEDetails"},"state_filing":{"type":"array","description":"State filing information","items":{"$ref":"#/components/schemas/Form1099KStateFiling"}},"is_postal":{"type":"boolean","default":false,"description":"When set to true, once the return is transmitted, the 1099-K form copy will be mailed to the recipient's address via USPS.\n\nNote: Postal Orders for Foreign Address will not be created."},"email_address":{"type":"string","format":"email","description":"Optional email address to receive the tax form link; if provided, the form link will be sent to this address, and if omitted, no email will be sent."},"address":{"$ref":"#/components/schemas/ForeignAddress"}}},"Form1099KMonthlyAmounts":{"type":"object","description":"Box 5a-5l: Monthly breakdown of gross amounts","properties":{"january":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5a: January gross amount"},"february":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5b: February gross amount"},"march":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5c: March gross amount"},"april":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5d: April gross amount"},"may":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5e: May gross amount"},"june":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5f: June gross amount"},"july":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5g: July gross amount"},"august":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5h: August gross amount"},"september":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5i: September gross amount"},"october":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5j: October gross amount"},"november":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5k: November gross amount"},"december":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"Box 5l: December gross amount"}}},"Form1099KPSEDetails":{"type":"object","description":"Payment Settlement Entity details","properties":{"pse_name":{"type":"string","maxLength":75,"description":"Name of the Payment Settlement Entity"},"pse_phone":{"type":"string","maxLength":15,"description":"Phone number of the Payment Settlement Entity"}}},"Form1099KStateFiling":{"type":"object","properties":{"state_code":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter state code"},"state_id_number":{"type":"string","maxLength":20,"description":"State identification number"},"state_tax_withheld":{"type":"number","minimum":0,"maximum":9999999999.99,"description":"State income tax withheld"}}},"Form1099KSubmissionResponse":{"type":"object","properties":{"submission_id":{"type":"string","format":"uuid","description":"Unique identifier for the submission"},"form_type":{"type":"string","enum":["1099-K"],"description":"Type of form submitted"},"tax_year":{"type":"string","description":"Tax year of the submission"},"status":{"type":"string","enum":["Created","Pending","Validated","Error"],"description":"Current status of the submission"},"federal_return":{"$ref":"#/components/schemas/Form1099KReturnStatus"},"state_returns":{"type":"array","items":{"$ref":"#/components/schemas/Form1099KStateReturnStatus"}},"submitted_at":{"type":"string","format":"date-time","description":"Timestamp of submission"},"pdf_content":{"type":"string","description":"Base64 encoded byte representing the content of the file"},"gross_amount":{"type":"string","description":"Total gross amount reported. This amount includes the total payouts through MassPay in addition to the supplemental gross amount provided."}}},"Form1099KReturnStatus":{"type":"object","properties":{"status":{"type":"string","description":"Status of the federal return"},"status_timestamp":{"type":"string","format":"date-time","description":"Timestamp of the status"},"info":{"type":"string","description":"Additional information"}}},"Form1099KStateReturnStatus":{"type":"object","properties":{"state_code":{"type":"string","description":"State code"},"status":{"type":"string","description":"Status of the state return"},"status_timestamp":{"type":"string","format":"date-time","description":"Timestamp of the status"},"info":{"type":"string","description":"Additional information"}}},"ValueAddedServices":{"type":"object","description":"Optional value-added verification services to run alongside the pay-in. Any field omitted defaults to no action (checks default to SKIP).","additionalProperties":false,"properties":{"cvv":{"type":"string","description":"Card verification value to validate with the network. Omit to skip CVV validation.","pattern":"^[0-9]{3,4}$","example":"123"},"account_updater":{"type":"boolean","default":false,"description":"Whether to run Account Updater (VAU/ABU) to refresh stored card details before authorization. Defaults to false (skip) when omitted."},"avs":{"allOf":[{"$ref":"#/components/schemas/VasCheckMode"}],"description":"Address Verification Service mode. Billing address is taken from the user token. Defaults to SKIP when omitted."},"ani":{"allOf":[{"$ref":"#/components/schemas/VasCheckMode"}],"description":"Account Name Information matching mode. Defaults to SKIP when omitted.\nThe name in the user profile will be used for this matching."},"three_ds":{"$ref":"#/components/schemas/ThreeDs"}}},"VasCheckMode":{"type":"string","description":"Controls how a verification check is applied.\n- `SKIP`: do not run the check.\n- `RUN`: run the check and return the result, but never decline the transaction based on it.\n- `RUN_AND_VALIDATE`: run the check and decline the transaction if it does not match.","enum":["SKIP","RUN","RUN_AND_VALIDATE"],"default":"SKIP","example":"RUN_AND_VALIDATE"},"WalletToken":{"type":"string","description":"Prefixed wallet identifier. User wallets use the `usr_wlt_` prefix and client wallets use the `clnt_wlt_` prefix.","pattern":"^(usr|clnt)_wlt_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","example":"usr_wlt_9e5a349e-8d10-4a0b-9d8f-6b3f2a1c4d7e"},"LedgerEntryToken":{"type":"string","description":"Prefixed ledger entry identifier.","pattern":"^ltx_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","example":"ltx_3f2c9b1a-77aa-4c3e-b2c4-1d2e3f4a5b6c"},"LedgerEntryType":{"type":"string","description":"The kind of ledger movement.","enum":["payout","payout_cancel","payout_reversal","payin","payin_reversal","payin_deposit_return","topup","topup_reversal","service_fee","wallet_credit","wallet_debit","spendback","load","load_reversal","spendback_reversal"]},"LedgerEntry":{"type":"object","required":["token","wallet_token","amount","currency_code","timestamp","notes","type"],"properties":{"token":{"allOf":[{"$ref":"#/components/schemas/LedgerEntryToken"}],"description":"Unique identifier for the ledger entry."},"wallet_token":{"allOf":[{"$ref":"#/components/schemas/WalletToken"}],"description":"Token of the wallet this entry belongs to."},"user_token":{"allOf":[{"$ref":"#/components/schemas/UserToken"}],"nullable":true,"description":"Token of the user associated with this ledger entry. Populated only for entry types that reference a user, such as `load`, `payout`, or `spendback` (and their reversals). Null otherwise."},"metadata":{"type":"object","description":"Optional JSON object with attributes associated with the transaction","example":{"group_id":541}},"amount":{"type":"number","format":"double","multipleOf":0.01,"description":"Signed amount of the entry in the wallet's currency, with up to two decimal places. Negative values decrease the wallet balance.","example":125.75},"currency_code":{"type":"string","pattern":"^[A-Z0-9]{3,5}$","description":"Currency code of the wallet in which the entry is denominated. Three-letter ISO 4217 codes for fiat currencies (e.g. `USD`) and up to five characters for cryptocurrencies (e.g. `USDC`, `MATIC`).","example":"USD","minLength":3,"maxLength":5},"timestamp":{"type":"string","format":"date-time","description":"Time at which the entry was recorded, ISO 8601 with millisecond precision.\n","example":"2024-06-15T13:45:30.123Z"},"notes":{"type":"string","maxLength":255,"description":"Free-form notes attached to the entry."},"type":{"$ref":"#/components/schemas/LedgerEntryType"},"ref_token":{"allOf":[{"$ref":"#/components/schemas/SourceTransactionToken"}],"nullable":true,"description":"Token of the source transaction that produced this ledger entry, such as a payout, payin, top-up, load, or spendback. Null for entries with no associated source object."},"ref_tokens":{"allOf":[{"items":{"$ref":"#/components/schemas/SourceTransactionToken"}}],"description":"Tokens of the source transactions that produced this ledger entry, such as a payout, payin, top-up, load, or spendback. Null for entries with no associated source object.","type":"array"}}},"SourceTransactionToken":{"type":"string","description":"Prefixed token of a source transaction object, such as a payout, payin, top-up, load, or spendback. The prefix identifies the resource type.","pattern":"^[a-z]+(_[a-z]+)*_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","example":"payout_7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f"},"LedgerHistoryResp":{"type":"object","required":["ledger_entries","metadata"],"properties":{"ledger_entries":{"type":"array","items":{"$ref":"#/components/schemas/LedgerEntry"}},"metadata":{"type":"object","properties":{"current_page":{"type":"integer"},"total_results":{"type":"integer"},"results_per_page":{"type":"integer"},"total_pages":{"type":"integer"}}}}},"UserToken":{"type":"string","description":"Prefixed user identifier.","pattern":"^usr_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","example":"usr_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"},"DepositReturnReason":{"type":"string","title":"DepositReturnReason","description":"Normalized reason for returning a deposit. MassPay translates the reason into the network-specific return code for the rail the deposit was received on; the code actually transmitted is surfaced on the deposit as `network_return_code`. Mappings: <ul><li>`REFUSED_BY_BENEFICIARY` — Beneficiary refuses to accept the credit (ACH `R23` · Wire `CUST`)</li><li>`UNEXPECTED_PAYMENT` — No matching obligation or invoice; undue payment (ACH `R23` · Wire `UPAY`)</li><li>`DUPLICATE_DEPOSIT` — Deposit is a duplicate of one already received (ACH `R24` · Wire `AM05`)</li><li>`ACCOUNT_CLOSED` — Deposit account has been closed (ACH `R02` · Wire `AC04`)</li><li>`ACCOUNT_NOT_FOUND` — No account located for the credit (ACH `R03` · Wire `AC01`)</li><li>`INVALID_ACCOUNT_NUMBER` — Account number fails structural validation (ACH `R04` · Wire `AC01`)</li><li>`BENEFICIARY_NAME_MISMATCH` — Beneficiary name does not match the account (ACH `R03` · Wire `BE01`)</li><li>`ACCOUNT_FROZEN` — Account is frozen or blocked (ACH `R16` · Wire `AC06`)</li><li>`NON_TRANSACTION_ACCOUNT` — Account type does not accept this kind of entry (ACH `R20` · Wire `AG01`)</li><li>`SUSPECTED_FRAUD` — Deposit is suspected to be fraudulent or unauthorized (ACH `R17` · Wire `FRAD`)</li><li>`REGULATORY_COMPLIANCE` — Returned for sanctions/OFAC or other regulatory reasons (ACH `R16` · Wire `RR04`)</li><li>`SENDER_RECALL_REQUEST` — Returned in response to the originator's recall/cancellation request (ACH `R06` · Wire `FOCR`)</li><li>`BENEFICIARY_DECEASED` — Beneficiary or account holder is deceased (ACH `R15` · Wire `MD07`)</li><li>`OTHER` — Reason not covered above; requires a free-text `reason` (ACH `R23` · Wire `MS03`)</li></ul>","enum":["REFUSED_BY_BENEFICIARY","UNEXPECTED_PAYMENT","DUPLICATE_DEPOSIT","ACCOUNT_CLOSED","ACCOUNT_NOT_FOUND","INVALID_ACCOUNT_NUMBER","BENEFICIARY_NAME_MISMATCH","ACCOUNT_FROZEN","NON_TRANSACTION_ACCOUNT","SUSPECTED_FRAUD","REGULATORY_COMPLIANCE","SENDER_RECALL_REQUEST","BENEFICIARY_DECEASED","OTHER"],"example":"REFUSED_BY_BENEFICIARY"},"ReturnPayinDepositReq":{"type":"object","title":"ReturnPayinDepositReq","description":"Details for returning (reversing) a single deposit made toward a pay-in.","required":["reason_code"],"properties":{"reason_code":{"$ref":"#/components/schemas/DepositReturnReason"},"reason":{"type":"string","maxLength":255,"example":"Sender not recognized; customer refused the credit","description":"Free-text reason for the return, stored for audit purposes and forwarded to the partner/network where supported. Optional unless `reason_code` is `OTHER`, in which case it is required."},"fee_payer":{"type":"string","enum":["CLIENT","DEPOSITOR"],"default":"CLIENT","description":"Who absorbs the return fee. `CLIENT` (default): the sender receives the full deposit back and the fee is debited from the destination wallet on top of `fiat_amount`; valid for every deposit method. `DEPOSITOR`: the fee is withheld from the returned funds — the sender receives the deposit amount minus the fee and the wallet is debited `fiat_amount` only. Modifying the returned amount is only supported for wire deposits, so `DEPOSITOR` is rejected with a `400` for ACH/RTP deposits."}}},"DepositStatus":{"type":"string","description":"Current status of the deposit. PENDING = deposit expected but not yet received; PROCESSING = deposit received and being processed; COMPLETED = deposit settled; FAILED = deposit failed; EXPIRED = deposit window elapsed without receiving funds; RETURNED = settled deposit returned to the sender through the originating network. ACH and wire deposits auto-fund on receipt and move directly to COMPLETED.","enum":["PENDING","PROCESSING","COMPLETED","FAILED","EXPIRED","RETURNED"]},"PayinDeposit":{"type":"object","description":"A deposit made toward a pay-in transaction. A pay-in may be funded by one or more deposits.","properties":{"token":{"type":"string","description":"Token representing the deposit.","example":"payin_dep_1f7c9a2e-3b41-4c8d-9e5f-8a6b2c4d7e90"},"external_id":{"type":"string","description":"External identifier of the deposit at the partner/network.","nullable":true},"status":{"$ref":"#/components/schemas/DepositStatus"},"deposit_amount":{"type":"number","format":"double","description":"Amount deposited, in the deposit currency.","example":0.0025,"nullable":true},"deposit_currency":{"type":"string","description":"Currency/asset code of the deposit (ISO 4217, or asset code for crypto).","example":"BTC","nullable":true},"fiat_amount":{"type":"number","format":"double","description":"Equivalent fiat amount of the deposit.","example":100.5,"nullable":true},"fiat_currency":{"type":"string","description":"Fiat currency code of the equivalent amount (ISO 4217).","example":"USD","nullable":true},"fee":{"type":"string","description":"Fee that was applied to the deposit in fiat currency"},"transaction_reference":{"type":"string","description":"Reference for the deposit transaction (e.g. blockchain tx hash or bank reference).","nullable":true},"metadata":{"type":"object","description":"Optional JSON object with attributes.","properties":{"group_id":{"type":"integer"}}},"return_reason_code":{"type":"string","description":"Normalized reason the deposit was returned (see `DepositReturnReason` for values). Null unless the deposit status is RETURNED.","example":"REFUSED_BY_BENEFICIARY","nullable":true},"network_return_code":{"type":"string","description":"Network-specific return code transmitted on the rail the deposit was received on (e.g. ACH `R23`, wire `CUST`), translated from `return_reason_code`. Null unless the deposit status is RETURNED.","example":"R23","nullable":true},"return_reason":{"type":"string","description":"Free-text reason supplied when the deposit was returned. Null unless the deposit status is RETURNED.","nullable":true},"return_fee":{"type":"number","description":"Fee charged for returning the deposit; see `fee_payer` for whether it was debited from the destination wallet or withheld from the returned funds. Null unless the deposit status is RETURNED.","example":15,"nullable":true},"fee_payer":{"type":"string","enum":["CLIENT","DEPOSITOR"],"description":"Who absorbed the return fee. `CLIENT`: the wallet was debited `fiat_amount` plus the fee and the sender received the full deposit. `DEPOSITOR` (wire deposits only): the fee was withheld from the returned funds. Null unless the deposit status is RETURNED.","nullable":true},"returned_at":{"type":"string","format":"date-time","description":"Timestamp when the deposit was returned.","nullable":true},"created_at":{"type":"string","format":"date-time","description":"Timestamp when the deposit was created."},"completed_at":{"type":"string","format":"date-time","description":"Timestamp when the deposit was completed.","nullable":true},"updated_at":{"type":"string","format":"date-time","description":"Timestamp when the deposit was last updated.","nullable":true}}},"ThreeDs":{"type":"object","description":"3-D Secure authentication artifacts passed through to the network for authorization and liability shift. Omit the entire object to authorize without 3DS data.","additionalProperties":false,"required":["cavv","eci"],"properties":{"cavv":{"type":"string","description":"Cardholder Authentication Verification Value produced during 3DS authentication.","example":"jJ81HADVRtXfCBATEp01CJUAAAA="},"eci":{"type":"string","description":"Electronic Commerce Indicator returned by the 3DS authentication, indicating the authentication outcome and resulting liability.","example":"05"},"ds_transaction_id":{"type":"string","format":"uuid","description":"Directory Server transaction ID assigned during 3DS authentication. Required by some networks for 3DS 2.x.","example":"f38e6948-5388-41a6-bca4-b49723c19437"}}},"PayinTxn":{"title":"PayinTxn","type":"object","x-examples":{"Pay-in Example":{"client_transfer_id":"aEjn345","source_currency_code":"USDT_ERC20","destination_currency_code":"USD","destination_token":"clnt_wlt_fd407907-4913-4a99-b653-5e868743a692","source_token":"orgn_2417e63a-a491-4fbd-89f9-daa19e7a836c","attr_set_token":"attr_set_7f1ead42-84cd-4cea-a19a-b4f1dbac867f","source_amount":100.5,"metadata":{"group_id":5},"statement_description":"Invoice #1403"}},"required":["source_currency_code","source_token"],"properties":{"value_added_services":{"$ref":"#/components/schemas/ValueAddedServices"},"client_transfer_id":{"type":"string","description":"A client defined transfer identifier. This is the unique ID assigned to the transfer on your system. Max 50 characters. A value another payout of yours already carries is rejected with `400 Bad request` and `Duplicate client id. Existing payout token: payout_<uuid>` in `error.details`. By default a value becomes reusable once the earlier payout is `ERROR` or `EXPIRED` (or is a `PENDING` quote past its expiration); any other status, including `CANCELLED`, keeps it reserved. Accounts configured for strict uniqueness never allow reuse, whatever the earlier payout's status.","example":"Invoice531"},"source_currency_code":{"type":"string","description":"Currency from which the pay-in originates — the currency in which funds are collected ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) for fiat, e.g. USD; may include network suffix for crypto, e.g. USDT_ERC20; for cards, this is the currency charged to the payer’s card).","example":"USDC"},"destination_currency_code":{"type":"string","description":"The currency that will be loaded into your MassPay wallet. In [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. It needs to match the currency of the `destination_token`","example":"USD"},"destination_token":{"type":"string","description":"Token representing the destination wallet - where the pay-in funds will be credited, either into the user's wallet or the client's wallet. If none is provided, it will deposit into the client wallet with `destination_currency`. If such wallet does not already exist, it will be auto-created.","format":"uuid"},"source_token":{"type":"string","description":"Token that represent the rail through which the pay-in will be collected from. I.e. Crypto Deposit, Cash Deposit, Bank Debit, etc. List of available service can be obtained through the catalog pay-ins endpoint","format":"uuid"},"attr_set_token":{"type":"string","description":"Token that represent the funding account that will be used for the pay-in transaction. Only required for pull transactions. For push transactions, like Cash Deposit or Crypto Deposit, this is an optional field. For Crypto Deposits, if `attr_set_token` is provided, deposits will only be accepted if they originated from the provided wallet address.","format":"uuid"},"source_amount":{"type":"number","format":"float","description":"The amount to be collected from the `source_token` in `source_currency`. i.e USDT. Must be provided if `destination_amount` is empty","minimum":0,"example":100.5},"destination_amount":{"type":"number","format":"float","minimum":0,"description":"The amount to be deposited into the `destination_token` in `destination_currency`. i.e USD. Must be provided if `source_amount` is empty","example":100.5},"metadata":{"type":"object","description":"Optional JSON object with attributes that can later be searched to locate this pay-in. Do not include PII as this object is not encrypted.\nThere are two special attributes that can be provided in the metadata field: `batch_identifier` and `batch_name`. Either of those values, would group transactions in the ledger under the same description.","properties":{"group_id":{"type":"integer"}}},"statement_description":{"type":"string","description":"Optional descriptive line item that appears on the pay-in statement, providing details about the transaction. This field is intended to help identify the purpose or source of each pay-in by displaying a brief summary or itemized description. Commonly includes information such as transaction type, merchant name, or payin reason. Note: Not all countries and banks support displaying this field.","example":"Invoice #531"}}},"ValidateBankAccountRequest":{"type":"object","title":"ValidateBankAccountRequest","description":"Bank account details to validate. The user is identified by the `user_token` path parameter.","x-tags":["Account"],"required":["attrs"],"properties":{"country_code":{"type":"string","description":"ISO alpha-2 country code of the bank account.","minLength":2,"maxLength":2,"example":"US"},"attrs":{"type":"array","description":"Bank account attributes to validate. `BankAccountNumber` is required.","minItems":1,"items":{"$ref":"#/components/schemas/AccountValidationAttribute"}}}},"AccountValidationAttribute":{"type":"object","title":"AccountValidationAttribute","description":"A single bank account attribute supplied for validation.","x-tags":["Account"],"required":["type","value"],"properties":{"type":{"type":"string","description":"Attribute type.","enum":["BankAccountNumber","BankRoutingNumber","SWIFT","BankAccountType","IdentificationNumber","IdentificationType"],"example":"BankAccountNumber"},"value":{"type":"string","description":"Value of the attribute.","example":"31742287"}}},"ValidationResult":{"type":"object","title":"ValidationResult","description":"Finalized account validation result.","x-tags":["Account"],"properties":{"status":{"type":"string","description":"Finalized validation status.\n- `MATCH`: the account exists and the account holder name matches the user on record.\n- `CLOSE_MATCH`: the account exists and the account holder name is a partial match.\n- `NO_MATCH`: the account holder name does not match the user on record.\n- `UNSUPPORTED`: no provider was able to verify this account. Not charged.","enum":["MATCH","CLOSE_MATCH","NO_MATCH","UNSUPPORTED"],"example":"MATCH"},"ownership_verified":{"type":"boolean","description":"Whether account ownership was verified by the provider.","example":true},"first_name_match":{"type":"string","nullable":true,"description":"First name match outcome, when returned by the validating provider.","example":"MATCH"},"last_name_match":{"type":"string","nullable":true,"description":"Last name match outcome, when returned by the validating provider.","example":"MATCH"},"match_score":{"type":"integer","nullable":true,"description":"Name match score (0-100) when provided by the validating provider.","minimum":0,"maximum":100,"example":100},"score_value":{"type":"integer","nullable":true,"description":"Provider-specific risk score, when returned."},"score_rag":{"type":"string","nullable":true,"description":"Provider-specific red/amber/green rating for the score, when returned."},"score_description":{"type":"string","nullable":true,"description":"Human readable explanation of the provider score, when returned."}}},"ValidationProcessing":{"type":"object","title":"ValidationProcessing","description":"Returned when a finalized result is not available within the synchronous window. The finalized result is delivered via the `avs.completed` webhook event.","x-tags":["Account"],"properties":{"status":{"type":"string","enum":["PROCESSING"],"example":"PROCESSING"},"user_token":{"type":"string","description":"Token of the user the validation was requested for.","example":"usr_9a542efe-6060-11f1-b042-02a06bb795f5"}}}},"securitySchemes":{"api_key":{"type":"apiKey","name":"x-api-key","in":"header"},"AUTHORIZER_NAME":{"name":"Authorization","in":"header","type":"apiKey"}}}}