# Create a dispute

Creates a new dispute.

Endpoint: POST /disputes
Version: latest
Security: SecretApiKey, JWT

## Security:

  - `SecretApiKey` (unknown)
    apiKey in header REB-APIKEY

  - `JWT` (unknown)
    http bearer JWT

## Request body:

  - `application/json` (unknown)
    Dispute resource.

## Request fields (application/json):

  - `transactionId` (string, required)
    ID of the transaction.
    Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0

  - `currency` (string, required)
    Currency code in ISO 4217 format.
    Example: USD

  - `amount` (number, required)
    Dispute amount.

  - `acquirerReferenceNumber` (string | null)
    Acquirer reference number for the dispute.

  - `caseId` (string | null)
    Case ID of the dispute.

  - `reasonCode` (string, required)
    Code used in the chargeback that describes the reason for the dispute.
    Enum: "0", "00", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10.1", "10.2", "10.3", "10.4", "10.5", "11.1", "11.2", "11.3", "12", "12.1", "12.2", "12.3", "12.4", "12.5", "12.6", "12.6.1", "12.6.2", "12.7", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", "13.8", "13.9", "30", "31", "34", "35", "37", "40", "41", "42", "46", "47", "49", "50", "51", "53", "54", "55", "56", "57", "59", "60", "62", "63", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "85", "86", "93", "98", "004", "021", "024", "059", "062", "063", "127", "154", "155", "158", "173", "175", "176", "193", "680", "684", "691", "693", "1000", "2001", "2002", "2003", "2004", "2005", "2008", "2011", "2700", "2701", "2702", "2703", "2704", "2705", "2706", "2707", "2708", "2709", "2710", "2713", "2870", "2871", "4807", "4808", "4812", "4831", "4834", "4837", "4840", "4841", "4842", "4846", "4849", "4850", "4853", "4854", "4855", "4859", "4860", "4863", "4870", "4871", "4901", "4902", "4903", "4904", "4905", "4908", "4999", "4534", "4541", "4542", "4550", "4553", "4586", "4752", "4753", "4755", "4865", "4866", "4867", "7010", "7030", "8002", "A", "A01", "A02", "A08", "AL", "AP", "AW", "B", "C", "C02", "C04", "C05", "C08", "C14", "C18", "C28", "C31", "C32", "CA", "CD", "CR", "D", "DA", "DP", "DP1", "EX", "F10", "F14", "F22", "F24", "F29", "F30", "F31", "FR1", "FR2", "FR4", "FR6", "IC", "IN", "IS", "ITA", "LP", "M01", "M10", "M49", "N", "NA", "NC", "P", "P01", "P03", "P04", "P05", "P07", "P08", "P22", "P23", "R03", "R13", "RG", "RM", "RN1", "RN2", "SV", "TF", "TNM", "UA01", "UA02", "UA03", "UA10", "UA11", "UA12", "UA18", "UA20", "UA21", "UA22", "UA23", "UA28", "UA30", "UA31", "UA32", "UA38", "UA99", "bank_cannot_process", "credit_not_processed", "customer_initiated", "debit_not_authorized", "duplicate", "fraudulent", "general", "incorrect_account_details", "insufficient_funds", "merchandise", "non_receipt", "not_as_described", "pre-chargeback-alert", "product_not_received", "product_unacceptable", "special", "subscription_canceled", "unauthorized", "unauthorized_claim", "unrecognized", "MERCHANDISE_OR_SERVICE_NOT_RECEIVED", "MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED", "UNAUTHORISED", "CREDIT_NOT_PROCESSED", "DUPLICATE_TRANSACTION", "INCORRECT_AMOUNT", "PAYMENT_BY_OTHER_MEANS", "CANCELED_RECURRING_BILLING", "PROBLEM_WITH_REMITTANCE", "OTHER"

  - `type` (string, required)
    Type of dispute.
    Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"

  - `status` (string, required)
    Status of the dispute.
    Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"

  - `postedTime` (string, required)
    Date and time when the dispute is posted.

  - `deadlineTime` (string | null)
    Latest date and time by when a merchant must submit a representment for a dispute.
If the deadline is missed, the merchant loses the dispute.

## Response 201:

  - `201` (unknown)
    Dispute created.

## Response 201 fields (application/json):

  - `id` (string)
    ID of the dispute.
    Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK

  - `customerId` (string | null)
    ID of the customer who is disputing a transaction.
    Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF

  - `transactionId` (string | null)
    ID of the disputed transaction.
    Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0

  - `currency` (string)
    Currency code in ISO 4217 format.
    Example: USD

  - `amount` (number)
    Dispute amount.

  - `acquirerReferenceNumber` (string | null)
    Acquirer reference number for the dispute.

  - `caseId` (string | null)
    Case ID of the dispute.

  - `reasonCode` (string | null)
    Code used in the chargeback that describes the reason for the dispute.

  - `reasonDescription` (string | null)
    Description of the reason for the dispute.

  - `category` (string)
    Category of dispute.
    Enum: "fraud", "authorization", "processing-errors", "consumer-disputes", "uncategorized", "bank-return"

  - `type` (string)
    Type of dispute.
    Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"

  - `status` (string)
    Status of the dispute.
    Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"

  - `postedTime` (string)
    Date and time when the dispute is posted.

  - `deadlineTime` (string | null)
    Latest date and time by when a merchant must submit a representment for a dispute.
If the deadline is missed, the merchant loses the dispute.

  - `rawResponse` (string | null)
    Raw response from the payment gateway that processed the disputed transaction.

  - `resolvedTime` (string | null)
    Date and time when the dispute is resolved.

  - `source` (string | null)
    Source of the dispute.
    Enum: null, "api", "manual", "sftp", "webhook"

  - `revision` (integer)
    Number of times the dispute data has been modified.

Use the revision number when analyzing webhook data to
determine if a change should take precedence over the current
representation.

  - `createdTime` (string)
    Date and time when the resource is created.
This value is set automatically when the resource is created.

  - `updatedTime` (string)
    Date and time when the resource is updated.
This value is set automatically when the resource is updated.

  - `_links` (array)
    Related links.

  - `_links.href` (string)
    Link URL.

  - `_links.rel` (string)
    Type of link.
    Enum: "self", "transaction", "customer", "attachments"

  - `_embedded` (object)
    Embedded objects that are requested by the `expand` query parameter.

  - `_embedded.transaction` (object)

  - `_embedded.customer` (object)

## Response 201 headers (application/json):

  - `Location` (string)
    Location of the related resource.
    Example: https://api.rebilly.com/example

  - `Rate-Limit-Limit` (integer)
    Maximum number of requests available at one time for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 500

  - `Rate-Limit-Remaining` (integer)
    Number of requests still available for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 499

## Response 401:

  - `401` (unknown)
    Unauthorized access.
Invalid credentials used.

## Response 401 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 403:

  - `403` (unknown)
    Access forbidden.
If the organization requires multi-factor authentication (MFA) and the session has not passed MFA, `error` is `mfa_required`.

## Response 403 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `error` (string)
    Message that describes why the request is forbidden.
Most responses use a descriptive message, such as `Not allowed to change security settings`.
If the organization requires multi-factor authentication (MFA) and MFA verification has not been completed for the session, this value is `mfa_required`.
If the request sets `requireMfa` to `true` and MFA verification has not been completed for the session, this value is `mfa_required_for_caller`.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 422:

  - `422` (unknown)
    Invalid data sent.

## Response 422 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

  - `invalidFields` (array)
    Invalid field details.
    Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}]

  - `invalidFields.field` (string)
    Name of the field.
Dot notation is used for nested object field names.

  - `invalidFields.message` (string)
    Message field.

## Response 429:

  - `429` (unknown)
    Request rate limit exceeded.

## Response 429 fields (application/json):

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".
    Example: about:blank

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
    Example: Rate Limit Exceeded

  - `status` (integer)
    HTTP status code.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.
    Example: A request cannot be executed because the user has sent too many requests within a certain period of time

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 429 headers (application/json):

  - `Rate-Limit-Limit` (integer)
    Maximum number of requests available at one time for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 500

  - `Rate-Limit-Remaining` (integer)
    Number of requests still available for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 0

  - `Rate-Limit-Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 1

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 1

