Gr4vy Apple Pay Certificates API

Apple Pay payment processing certificates are used by Apple to encrypt Apple Pay tokens. You must register and upload an Apple Pay payment processing certificate if you wish to use Apple Pay with Gr4vy's mobile SDKs. The Apple Pay certificates API can be used to: * Start a new Apple Pay certificate registration, providing you with a Certificate Signing Request (CSR). * Update the Apple Pay certificate record with the certificate received from Apple after creating a new payment processing certificate on your Apple Developer console and uploading a CSR. * List all Apple Pay certificates.

Operations 4

GET /apple-pay-certificates List Apple Pay certificates #
POST /apple-pay-certificates New Apple Pay certificate #
PUT /apple-pay-certificates/{apple_pay_certificate_id} Update Apple Pay certificate #
DELETE /apple-pay-certificates/{apple_pay_certificate_id} Remove Apple Pay certificate #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gr4vy:gr4vy-apple-pay-certificates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gr4vy-apple-pay-certificates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gr4vy Apple Pay Certificates API
  version: 1.1.0-beta
  contact:
    name: Gr4vy Support
    email: code@gr4vy.com
    url: https://gr4vy.com
  termsOfService: https://gr4vy.com
  license:
    name: MIT
    url: https://raw.githubusercontent.com/gr4vy/gr4vy-openapi/main/LICENSE
  description: 'Welcome to the Gr4vy API reference documentation.

    Our API is still very much a work in product and subject to change.'
servers:
- url: https://api.sandbox.{id}.gr4vy.app
  x-speakeasy-server-id: sandbox
  variables:
    id:
      default: example
      description: The subdomain for your Gr4vy instance.
- url: https://api.{id}.gr4vy.app
  x-speakeasy-server-id: production
  variables:
    id:
      default: example
      description: The subdomain for your Gr4vy instance.
security:
- bearerAuth: []
tags:
- name: Apple Pay Certificates
  description: 'Apple Pay payment processing certificates are used by Apple to encrypt Apple

    Pay tokens.'
  x-internal: true
paths:
  /apple-pay-certificates:
    get:
      operationId: list-apple-pay-certificates
      summary: List Apple Pay certificates
      description: Returns a list of Apple Pay certificate records.
      tags:
      - Apple Pay Certificates
      x-internal: true
      x-speakeasy-ignore: true
      parameters:
      - schema:
          type: integer
          default: 20
          example: 1
          minimum: 1
          maximum: 100
          format: int32
        in: query
        name: limit
        description: Defines the maximum number of items to return for this request.
      - schema:
          type: string
          format: ''
          example: ZXhhbXBsZTE
        in: query
        name: cursor
        description: 'A cursor that identifies the page of results to return. This is used to

          paginate the results of this API.


          For the first page of results, this parameter can be left out.

          For additional pages, use the value returned by the API in

          the `next_cursor` field. Similarly the `previous_cursor` can be used to

          reverse backwards in the list.'
      responses:
        '200':
          description: Returns a list of Apple Pay certificate records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplePayCertificates'
              examples:
                A list of Apple Pay certificate records:
                  value:
                    items:
                    - type: apple-pay-certificate
                      id: fe26475d-ec3e-4884-9553-f7356683f7f9
                      display_name: iPad App v2
                      status: active
                      apple_merchant_id: merchant.com.gr4vy.demo
                      public_key_hash: WSOIlV70592m1ah1sm0mcmhJPQsAIWGSg7FSe+uzHtc=
                      certificate_signing_request: null
                      expires_at: '2024-12-12T10:53:43+00:00'
                      created_at: '2022-12-12T10:53:43+00:00'
                      updated_at: '2022-12-12T10:53:43+00:00'
                    - type: apple-pay-certificate
                      id: c81bdcfd-00c2-4897-b220-06ff0e95685a
                      display_name: iPhone App v2
                      status: incomplete
                      apple_merchant_id: null
                      public_key_hash: null
                      certificate_signing_request: '-----BEGIN CERTIFICATE REQUEST-----\nMIHTMHsCAQAwGTEXMBUG

                        A1UEAwwOc3BpZGVyLnNhbmRib3gwWTATBgcqhkjOPQIB\nBggqhkjOPQM

                        BBwNCAAQZgRE56Evtf6f9fD4Hn1zOMwyrgXU4CQXuyPXoIjiMwKXE\nV/

                        Hx9NX7vZbOSXhyzPaU/b6HdLMfx2+UP/GZ48jYoAAwCgYIKoZIzj0EAwI

                        DSAAw\nRQIgPhcfepIaX9s8E8WI/T+GEUqwuYIoVUQV+F8KlaYGukACIQ

                        CLeLocEFWFYPHN\n+QsLoyXvbbqmEjSPB4vQKmXQZ8I2DA==\n-----EN

                        D CERTIFICATE REQUEST-----\n'
                      expires_at: null
                      created_at: '2022-12-12T10:53:43+00:00'
                      updated_at: '2022-12-12T10:53:43+00:00'
        '401':
          description: Returns an error if no valid authentication was provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401Unauthorized'
    post:
      operationId: new-apple-pay-certificate
      summary: New Apple Pay certificate
      description: 'Starts a new Apple Pay payment processing certificate registration. The

        Apple digital wallet must be registered before you can register an Apple

        Pay certificate.


        You will be given a Certificate Signing Request (CSR) value in the response

        to upload to Apple when creating a new payment processing certificate on

        the Apple Developer console.'
      tags:
      - Apple Pay Certificates
      x-internal: true
      x-speakeasy-ignore: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplePayCertificateRequest'
      responses:
        '201':
          description: Returns the Apple Pay certificate record that was added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplePayCertificate'
              examples:
                An Apple Pay certificate record:
                  value:
                    type: apple-pay-certificate
                    id: c81bdcfd-00c2-4897-b220-06ff0e95685a
                    display_name: iPad App v2
                    status: incomplete
                    apple_merchant_id: null
                    public_key_hash: null
                    certificate_signing_request: '-----BEGIN CERTIFICATE REQUEST-----\nMIHTMHsCAQAwGTEXMBUG

                      A1UEAwwOc3BpZGVyLnNhbmRib3gwWTATBgcqhkjOPQIB\nBggqhkjOPQM

                      BBwNCAAQZgRE56Evtf6f9fD4Hn1zOMwyrgXU4CQXuyPXoIjiMwKXE\nV/

                      Hx9NX7vZbOSXhyzPaU/b6HdLMfx2+UP/GZ48jYoAAwCgYIKoZIzj0EAwI

                      DSAAw\nRQIgPhcfepIaX9s8E8WI/T+GEUqwuYIoVUQV+F8KlaYGukACIQ

                      CLeLocEFWFYPHN\n+QsLoyXvbbqmEjSPB4vQKmXQZ8I2DA==\n-----EN

                      D CERTIFICATE REQUEST-----\n'
                    expires_at: null
                    created_at: '2022-12-12T10:53:43+00:00'
                    updated_at: '2022-12-12T10:53:43+00:00'
        '401':
          description: Returns an error if no valid authentication was provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401Unauthorized'
        '409':
          description: Returns an error if duplicate resource has been found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error409DuplicateRecord'
  /apple-pay-certificates/{apple_pay_certificate_id}:
    parameters:
    - schema:
        type: string
        format: uuid
        example: 8724fd24-5489-4a5d-90fd-0604df7d3b83
      name: apple_pay_certificate_id
      in: path
      required: true
      description: The unique ID for an Apple Pay certificate record.
    put:
      operationId: update-apple-pay-certificate
      summary: Update Apple Pay certificate
      description: 'Update the Apple Pay certificate record with the payment processing

        certificate received from Apple.'
      tags:
      - Apple Pay Certificates
      x-internal: true
      x-speakeasy-ignore: true
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: 'The payment processing certificate received from Apple.

                    This file should be associated with the Certificate

                    Signing Request of this record, have a valid expiration

                    date, and be DER encoded.'
      responses:
        '200':
          description: Returns the Apple Pay certificate record that was updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AntiFraudService'
        '400':
          description: Returns an error if the request was badly formatted or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error400BadRequest'
        '401':
          description: Returns an error if no valid authentication was provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401Unauthorized'
        '404':
          description: Returns an error if the resource can not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404NotFound'
    delete:
      operationId: delete-apple-pay-certificate
      summary: Remove Apple Pay certificate
      description: Deletes an Apple Pay certificate record.
      tags:
      - Apple Pay Certificates
      x-internal: true
      x-speakeasy-ignore: true
      responses:
        '204':
          description: Returns an empty response.
        '401':
          description: Returns an error if no valid authentication was provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error401Unauthorized'
        '404':
          description: Returns an error if the resource can not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error404NotFound'
components:
  schemas:
    ApplePayCertificateRequest:
      title: Apple Pay certificate (Create)
      type: object
      description: 'A request to start the registration of a new Apple Pay payment

        processing certificate.'
      x-tags:
      - Apple Pay Certificates
      x-internal: true
      required:
      - display_name
      properties:
        display_name:
          type: string
          description: 'A name for this Apple Pay certificate which is used in the Gr4vy

            admin panel to give the Apple Pay certificate a human readable name.'
          example: iPad App v2
          minLength: 1
          maxLength: 200
    AntiFraudService:
      title: Anti-Fraud Service
      type: object
      x-tags:
      - Anti-Fraud Services
      x-internal: true
      properties:
        type:
          type: string
          description: The type of this resource. Is always `anti-fraud-service`.
          example: anti-fraud-service
          enum:
          - anti-fraud-service
        id:
          type: string
          example: fe26475d-ec3e-4884-9553-f7356683f7f9
          description: The unique Gr4vy ID for this anti-fraud service.
          format: uuid
        merchant_account_id:
          type: string
          description: The unique ID for a merchant account.
          example: default
        anti_fraud_service_definition_id:
          type: string
          description: 'The name of the Anti-Fraud service provider.

            During update request, this value is used for validation only but

            the underlying service can not be changed for an existing service.'
          example: sift-anti-fraud
          enum:
          - cybersource-anti-fraud
          - forter-anti-fraud
          - sift-anti-fraud
        display_name:
          type:
          - string
          - 'null'
          description: A unique name for this anti-fraud service which is used in the Gr4vy admin panel to give a anti-fraud service a human readable name.
          example: Sift Anti-Fraud Service.
          minLength: 1
          maxLength: 200
        active:
          type: boolean
          example: true
          default: true
          description: Defines if this service is currently active or not.
        silent:
          type: boolean
          example: false
          default: false
          description: 'Defines if this service is currently running in silent mode. In silent

            mode, a service''s decisions will be created but ignored when processing

            a transaction, allowing for warm-up and comparison of new services

            against the active service.'
        reviews_enabled:
          type: boolean
          example: false
          default: false
          description: 'Defines if this service needs to handle the review status with a proper

            review workflow. If not, the review status will be treated as any other

            one.'
        fields:
          type: array
          description: A list of fields, each containing a key-value pair for anti-fraud service decision mapping e.g. for Sift `approve_decision` will be in the response.
          items:
            type: object
            description: A key-value pair that represents a field defined in the definition for this anti-fraud service.
            required:
            - key
            - value
            properties:
              key:
                type: string
                description: The key of the field to set a value for.
                example: approve_decision
                minLength: 1
                maxLength: 50
              value:
                type: string
                description: The value of a field to set.
                example: REDACTED_STRIPE_KEY
                minLength: 1
                maxLength: 10000
        created_at:
          type: string
          description: 'The date and time

            when this anti-fraud service was created in our system.'
          format: date-time
          example: '2013-07-16T19:23:00.000+00:00'
        updated_at:
          type: string
          description: 'The date and time

            when this anti-fraud service was last updated in our system.'
          format: date-time
          example: '2013-07-16T19:23:00.000+00:00'
    ApplePayCertificates:
      title: A list of Apple Pay certificates
      type: object
      description: A list of Apple Pay certificate records.
      x-tags:
      - Apple Pay Certificates
      x-internal: true
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApplePayCertificate'
        limit:
          type: integer
          description: 'The limit applied to request. This represents the number of items that are at

            maximum returned by this request.'
          format: int32
          minimum: 1
          maximum: 100
          example: 1
          default: 20
        next_cursor:
          type:
          - string
          - 'null'
          description: 'The cursor that represents the next page of results. Use the `cursor` query

            parameter to fetch this page of items.'
          example: ZXhhbXBsZTE
          minLength: 1
          maxLength: 1000
        previous_cursor:
          type:
          - string
          - 'null'
          description: 'The cursor that represents the next page of results. Use the `cursor` query

            parameter to fetch this page of items.'
          example: null
          minLength: 1
          maxLength: 1000
    Error404NotFound:
      title: Not Found Error
      type: object
      description: Not Found Error (HTTP 404).
      x-tags:
      - Errors
      properties:
        type:
          type: string
          description: '`error`.'
          enum:
          - error
          example: error
        code:
          type: string
          description: The reason code for the error.
          example: not_found
          enum:
          - not_found
          - pending_creation
        status:
          type: integer
          description: '`404`.'
          example: 404
          enum:
          - 404
        message:
          type: string
          description: The human readable reason for the error.
          example: The resource could not be found
        details:
          type: array
          description: 'A list of detail objects that further clarify the reason for the error.

            Not every error supports more detail.'
          example: []
          items:
            $ref: '#/components/schemas/ErrorDetail'
    ErrorDetail:
      title: Error details
      description: Additional detail about the part of a request body that caused an issue.
      type: object
      x-tags:
      - Errors
      properties:
        location:
          type: string
          example: body
          description: The location where the error caused an issue.
          enum:
          - query
          - body
          - path
          - header
        type:
          type: string
          example: value_error.missing
          description: A unique identifier for the type of error that occurred.
        pointer:
          type: string
          example: /payment_method/number
          description: 'The exact item for which the validation did not succeed. This is a JSON

            pointer for request bodies, while for query, path, and header parameters

            it is the name of the parameter.'
        message:
          type: string
          example: field required
          description: A human readable message for this error detail.
    Error409DuplicateRecord:
      title: Duplicate Record Error
      type: object
      description: Duplicate Record Error (HTTP 409).
      x-tags:
      - Errors
      properties:
        type:
          type: string
          description: '`error`.'
          enum:
          - error
          example: error
        code:
          type: string
          description: '`duplicate_record`.'
          example: duplicate_record
          enum:
          - duplicate_record
        status:
          type: integer
          description: '`409`.'
          example: 409
          enum:
          - 409
        message:
          type: string
          description: Further details on the field that triggered the error.
          example: A duplicate record exists with this external_identifier value
        details:
          type: array
          description: 'A list of detail objects that further clarify the reason for the error.

            Not every error supports more detail.'
          example: []
          items:
            $ref: '#/components/schemas/ErrorDetail'
    Error401Unauthorized:
      title: Unauthorized Error
      type: object
      description: Unauthorized Error (HTTP 401).
      x-tags:
      - Errors
      properties:
        type:
          type: string
          description: '`error`.'
          enum:
          - error
          example: error
        code:
          type: string
          description: '`unauthorized`.'
          example: unauthorized
          enum:
          - unauthorized
        status:
          type: integer
          description: '`401`.'
          example: 401
          enum:
          - 401
        message:
          type: string
          description: No valid API authentication found.
          example: No valid API authentication found
          enum:
          - No valid API authentication found
        details:
          type: array
          description: 'A list of detail objects that further clarify the reason for the error.

            Not every error supports more detail.'
          example: []
          items:
            $ref: '#/components/schemas/ErrorDetail'
    ApplePayCertificate:
      title: Apple Pay Certificate
      type: object
      description: An Apple Pay certificate record.
      x-tags:
      - Apple Pay Certificates
      x-internal: true
      properties:
        type:
          type: string
          description: The type of this resource. Is always `apple-pay-certificate`.
          example: apple-pay-certificate
          enum:
          - apple-pay-certificate
        id:
          type: string
          example: fe26475d-ec3e-4884-9553-f7356683f7f9
          description: The unique identifier for this Apple Pay certificate record.
          format: uuid
        display_name:
          type: string
          example: iPad App v2
          description: 'The name for this Apple Pay certificate which is used in the Gr4vy admin

            panel to give the Apple Pay certificate a human readable name.'
        status:
          type: string
          description: The status of this Apple Pay certificate.
          example: active
          enum:
          - active
          - expired
          - incomplete
        apple_merchant_id:
          type:
          - string
          - 'null'
          description: 'The unique identifier representing a merchant for Apple Pay. This value is

            populated after the Apple Pay certificate record has been updated with

            the payment processing certificate received from Apple.'
          example: merchant.com.gr4vy.demo
        public_key_hash:
          type:
          - string
          - 'null'
          description: 'The hash value of the public key associated with this Apple Pay

            certificate. This value is populated after the Apple Pay certificate

            record has been updated with the payment processing certificate

            received from Apple.'
          example: WSOIlV70592m1ah1sm0mcmhJPQsAIWGSg7FSe+uzHtc=
        certificate_signing_request:
          type:
          - string
          - 'null'
          description: 'The Certificate Signing Request to upload to the Apple Developer console

            when creating a new payment processing certificate.'
          example: '-----BEGIN CERTIFICATE REQUEST-----\nMIHTMHsCAQAwGTEXMBUG

            A1UEAwwOc3BpZGVyLnNhbmRib3gwWTATBgcqhkjOPQIB\nBggqhkjOPQM

            BBwNCAAQZgRE56Evtf6f9fD4Hn1zOMwyrgXU4CQXuyPXoIjiMwKXE\nV/

            Hx9NX7vZbOSXhyzPaU/b6HdLMfx2+UP/GZ48jYoAAwCgYIKoZIzj0EAwI

            DSAAw\nRQIgPhcfepIaX9s8E8WI/T+GEUqwuYIoVUQV+F8KlaYGukACIQ

            CLeLocEFWFYPHN\n+QsLoyXvbbqmEjSPB4vQKmXQZ8I2DA==\n-----EN

            D CERTIFICATE REQUEST-----\n'
        expires_at:
          type:
          - string
          - 'null'
          description: 'The date and time this Apple Pay certificate expires. This value is

            populated after the Apple Pay certificate record has been updated

            with the payment processing certificate received from Apple.'
          format: date-time
          example: '2013-07-16T19:23:00.000+00:00'
        created_at:
          type: string
          description: 'The date and time this Apple Pay certificate record was created in our

            system.'
          format: date-time
          example: '2013-07-16T19:23:00.000+00:00'
        updated_at:
          type: string
          format: date-time
          description: The date and time this Apple Pay certificate record was last updated.
          example: '2013-07-16T19:23:00.000+00:00'
    Error400BadRequest:
      title: Bad Request
      type: object
      description: Bad Request (HTTP 400).
      x-tags:
      - Errors
      properties:
        type:
          type: string
          description: '`error`.'
          enum:
          - error
          example: error
        code:
          type: string
          description: A short code that describes the reason for the error.
          example: bad_request
          enum:
          - bad_request
          - incorrect_json
          - invalid_credentials
        status:
          type: integer
          description: '`400`.'
          example: 400
          enum:
          - 400
        message:
          type: string
          description: A human-readable reason for the error.
          example: Missing '****' field
        details:
          type: array
          description: A list of detail objects that further clarify the reason for the error.
          items:
            $ref: '#/components/schemas/ErrorDetail'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT