- [HTTP request](https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#body.request_body)
  - [JSON representation](https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#body.response_body)
- [GenerateReferenceNumberResponse](https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#GenerateReferenceNumberResponse)
  - [JSON representation](https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#GenerateReferenceNumberResponse.SCHEMA_REPRESENTATION)

Creates a reference number and registers payment information (description, timestamp) with the integrator.

The combination of the `paymentIntegratorAccountId` from the request and the `referenceNumber` from the response form a unique key that identifies the transaction for subsequent operations on this transaction.

The `amount` field is defined in *micro currency units* (micros), which means that $2 would be represented with the digit `2` followed by six digits `0`, resulting in `2000000`.

If the endpoint encounters an error while processing the request, the response body from this endpoint should be of type `https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/ErrorResponse`.

An example request looks like:


    {
      "requestHeader": {
        "protocolVersion": {
          "major": 1,
          "minor": 0,
          "revision": 0
        },
        "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
        "requestTimestamp": "1502220196077"
      },
      "paymentIntegratorAccountId": "InvisiCashUSA_USD",
      "transactionDescription": "Google - Music",
      "userInfo": {
        "noUserInfo": {}
      },
      "currencyCode": "USD",
      "amount": "2000000"
    }

An example response looks like:


    {
      "responseHeader": {
        "responseTimestamp": "1502220197000"
      },
      "displayableReferenceNumber": {
        "barcodeWithPrintableString": {
          "printableString": "1122334455",
          "barcodeContents": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
        }
      }
    }

### HTTP request

`POST https://www.integratorhost.example.com/integrator-base-path/refundable-one-time-payment-code-v1/generateReferenceNumber`

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requestHeader": { object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/RequestHeader`) }, "paymentIntegratorAccountId": string, "transactionDescription": string, "currencyCode": string, "amount": string, "userInfo": { object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/UserInfo`) } } ``` |

| Fields ||
|---|---|
| `requestHeader` | ``object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/RequestHeader`)`` **REQUIRED**: Common header for all requests. |
| `paymentIntegratorAccountId` | `string` **REQUIRED**: This is the payment integrator account identifier that identifies contractual constraints around this transaction. |
| `transactionDescription` | `string` **REQUIRED** : This is the description of the transaction that can be put on the customer's statement. Localized to the userLocale found in the `requestHeader`. This format can be changed without notice and must never be parsed. |
| `currencyCode` | `string` **REQUIRED**: ISO 4217 3-letter currency code. |
| `amount` | `string (https://developers.google.com/discovery/v1/type-format format)` **REQUIRED** : The amount of the purchase, in [micros](https://developers.google.com/pay/refundable-one-time-payment-code-v1/reference/glossary#micros "What are micros?") of the currency unit. |
| `userInfo` | ``object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/UserInfo`)`` **REQUIRED**: Information about the user making the request. |

### Response body

This method supports multiple return types. For additional information about what 4XX or 5XX HTTP status code to return with an `ErrorResponse`, consult the `ErrorResponse` object and [HTTP status codes documentation](https://developers.google.com/pay/refundable-one-time-payment-code-v1/guides/connectivity/protocol-standards#http_status_codes).

| Possible response messages ||
|---|---|
| HTTP 200 Status | ``object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/generateReferenceNumber#GenerateReferenceNumberResponse`)`` |
| HTTP 4XX / 5XX Status | ``object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/ErrorResponse`)`` |
| End of mutually exclusive fields. ||

## GenerateReferenceNumberResponse

Response object for the generate reference number method.

| JSON representation |
|---|
| ``` { "responseHeader": { object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/ResponseHeader`) }, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "referenceNumber": string, "displayableReferenceNumber": { object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/DisplayableReferenceNumber`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `responseHeader` | ``object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/ResponseHeader`)`` **REQUIRED**: Common header for all responses. |
| **REQUIRED**: The reference number created by the integrator. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `referenceNumber (deprecated)` | `string` > [!WARNING] > Instead of this field, all new integrations should use displayableReferenceNumber. **DEPRECATED**: Reference number created by the integrator. |
| `displayableReferenceNumber` | ``object (`https://developers.google.com/pay/refundable-one-time-payment-code-v1/payment-integrator-refundable-one-time-payment-code-api/DisplayableReferenceNumber`)`` Reference number created by the integrator. |
| End of mutually exclusive fields. ||