External Production Partner API 1.0.0

This AsyncAPI document specifies the message formats and communication channels between Nexus Go Cards 2.0 (NGOC) and the External Production Partner.

NGOC functions as both a message producer and consumer, depending on the operation:

  • SEND Operations: Messages sent by NGOC to the External Production Partner.
  • RECEIVE Operations: Messages received by NGOC from the External Production Partner.

The communication is handled through Azure Service Bus, with de-duplication detection enabled and configured for a 5-day window.

To kickstart your integration you can generate client code using one of the supported AsyncAPI generator templates listed here. The example below generates a nodejs application based on this AsyncAPI specification.

Download the AsyncAPI CLI

npm install -g @asyncapi/cli

Download the generator

npm install @asyncapi/generator@2.4.1    

Generate client code

asyncapi generate fromTemplate https://prodpartner.cards.nxsas.com/asyncapi.yml --output ./generated-project @asyncapi/nodejs-template -p server=production

Guidelines for message handling:

  • Set the message type (e.g., EXTERNAL_PRODUCTION_REQUEST_SENT) as the subject/label of the Service Bus message.
  • For idempotency, generate a unique UUID to use as the messageId.

For additional information on publishing and subscribing to Azure Service Bus messages, refer to the official Azure Service Bus documentation.

Queue credentials will be provided during the integration setup process.

Servers

  • amqp://sbns-pubservicebusnamespacepub-prod-03241.servicebus.windows.net/amqpproduction

    NGOC managed Azure Service Bus instance used for messaging.

Operations

  • SEND EXTERNAL_PRODUCTION_REQUEST_SENT

    Operation IDproduction-request.publish

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionData]

    Examples

  • RECEIVE EXTERNAL_PRODUCTION_CARD_PRODUCED

    Operation IDcard-produced.subscribe

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionCardProduced]

    Examples

  • SEND EXTERNAL_PRODUCTION_REPORT_OK

    Operation IDreport-ok.publish

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionReportOk]

    Examples

  • RECEIVE EXTERNAL_PRODUCTION_SHIPPED

    Operation IDshipped.subscribe

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionShipped]

    Examples

  • SEND EXTERNAL_PRODUCTION_SHIPPED_OK

    Operation IDshipped-ok.publish

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionShippedOk]

    Examples

  • RECEIVE EXTERNAL_PRODUCTION_ERROR

    Operation IDerror.subscribe

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionError]

    Examples

  • SEND EXTERNAL_PRODUCTION_ERROR

    Operation IDerror.publish

    Available only on servers:

    Accepts the following message:

    idempotency-uuid
    Message IDidempotency-uuid
    object [ExternalProductionError]

    Examples

Messages

  • #1production-request-msg
    Message IDproduction-request-msg
    object [ExternalProductionData]
  • #2card-produced-msg
    Message IDcard-produced-msg
    object [ExternalProductionCardProduced]
  • #3report-ok-msg
    Message IDreport-ok-msg
    object [ExternalProductionReportOk]
  • #4shipped-msg
    Message IDshipped-msg
    object [ExternalProductionShipped]
  • #5shipped-ok-msg
    Message IDshipped-ok-msg
    object [ExternalProductionShippedOk]
  • #6error-msg
    Message IDerror-msg
    object [ExternalProductionError]